本文以滲透的視角,總結幾種個人常用的内網穿透,内網代理工具,介紹其簡單原理和使用方法。
0x01 nps-npc
1.1 簡介
nps是一款輕量級、高性能、功能強大的内網穿透代理伺服器。目前支援tcp、udp流量轉發,可支援任何tcp、udp上層協定(通路内網網站、本地支付接口調試、ssh通路、遠端桌面,内網dns解析等等……),此外還支援内網http代理、内網socks5代理、p2p等,并帶有功能強大的web管理端。
一台有公網IP的伺服器(VPS)運作服務端(NPS)
一個或多個運作在内網的伺服器或者PC運作用戶端(NPC)
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5iY1gTYmZGZwQ2M2EWOwUDO2ETO0IDNwYGZiVmM2EmYz8CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
- Go語言編寫
- 支援跨平台
- 支援多種協定的代理
- web管理端
1.3 使用方法
https://github.com/ehang-io/nps/releasesNPS
安裝配置
找到自己伺服器相應版本的server:
cd ~wget https://github.com/cnlh/nps/releases/download/v0.23.2/linux_amd64_server.tar.gztar xzvf linux_amd64_server.tar.gzcd ~/nps
在用戶端界面可以通過
新增
的方式添加用戶端連接配接,每一個連接配接的vkey都是唯一區分的。
每一個用戶端,在建立連接配接後,都可以建立多個不同協定的隧道,這一個個隧道就是不同的代理了。
通過不同的協定和端口就可以連接配接代理的内網機器。
0x02 frp
2.1 簡介
frp 是一個專注于内網穿透的高性能的反向代理應用,支援 TCP、UDP、HTTP、HTTPS 等多種協定。可以将内網服務以安全、便捷的方式通過具有公網 IP 節點的中轉暴露到公網。![]()
常見内網穿透工具,收好了 2.2 特點
用戶端服務端通信支援 TCP、KCP 以及 Websocket 等多種協定。
端口複用,多個服務通過同一個服務端端口暴露。
跨平台,但是支援的比nps少一點
多種插件,提供很多功能
2.3 使用方法
下載下傳: https://github.com/fatedier/frp/releases
以下内容摘自: https://segmentfault.com/a/1190000021876836
1. 通過 rdp 通路家裡的機器
修改 frps.ini 檔案,為了安全起見,這裡最好配置一下身份驗證,服務端和用戶端的 common 配置中的 token 參數一緻則身份驗證通過:![]()
常見内網穿透工具,收好了 ![]()
常見内網穿透工具,收好了 ![]()
常見内網穿透工具,收好了 ![]()
常見内網穿透工具,收好了 EW 是一套便攜式的網絡穿透工具,具有 SOCKS v5服務架設和端口轉發兩大核心功能,可在複雜網絡環境下完成網絡穿透。但是,現在工具已經不更新了。。。![]()
常見内網穿透工具,收好了
3.2 特點![]()
常見内網穿透工具,收好了
輕量級,C語言編寫
可以設定多級代理
跨平台
但是隻支援Socks5代理
3.3 使用方法
以下使用方法均摘自: http://rootkiter.com/EarthWorm/
以下所有樣例,如無特殊說明代理端口均為1080,服務均為SOCKSv5代理服務.
該工具共有 6 種指令格式(ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran)。
1. 正向 SOCKS v5 伺服器
$ ./ew -s ssocksd -l 1080
2. 反彈 SOCKS v5 伺服器
這個操作具體分兩步: 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. 多級級聯
工具中自帶的三條端口轉發指令, 它們的參數格式分别為:
$ ./ew -s lcx_listen -l 1080 -e 8888 $ ./ew -s lcx_tran -l 1080 -f 2.2.2.3 -g 9999 $ ./ew -s lcx_slave -d 1.1.1.1 -e 8888 -f 2.2.2.3 -g 9999
通過這些端口轉發指令可以将處于網絡深層的基于TCP的服務轉發至根前,比如 SOCKS v5。首先提供兩個“二級級聯”本地SOCKS測試樣例:
a) lcx_tran 的用法
$ ./ew -s ssocksd -l 9999$ ./ew -s lcx_tran -l 1080 -f 127.0.0.1 -g 9999
b) lcx_listen、lcx_slave 的用法
$ ./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
再提供一個“三級級聯”的本地SOCKS測試用例以供參考
$ ./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
資料流向: SOCKS v5 -> 1080 -> 8888 -> 9999 -> 7777 -> rssocks
0x04 ngrok
4.1 簡介
ngrok 是一個反向代理,通過在公共端點和本地運作的 Web 伺服器之間建立一個安全的通道,實作内網主機的服務可以暴露給外網。ngrok 可捕獲和分析所有通道上的流量,便于後期分析和重放,是以ngrok可以很友善地協助服務端程式測試。
##
4.2 特點
官方維護,一般較為穩定
跨平台,閉源
有流量記錄和重發功能
4.3 使用方法
進入ngrok官網( https://ngrok.com/ ),注冊ngrok賬号并下載下傳ngrok;
根據官網給定的授權碼,運作如下授權指令;
./ngrok authtoken 1hAotxhmORtzCYvUc3BsxDBPh1H_******************
./ngrok http 80即可将機器的80端口http服務暴露到公網,并且會提供一個公網域名。
更多使用方法參考:
https://ngrok.com/docs0xFF 參考連結
内網滲透之内網穿透
https://xz.aliyun.com/t/7701開源内網穿透工具 frp 簡單使用教程