Linux埠轉發的幾種常用方法

安全劍客發表於2020-10-09
在一些實際的場景裡,我們需要透過利用一些埠轉發工具,比如系統自帶的 行工具或第三方小軟體,來繞過網路訪問限制觸及目標系統。本文總結了 埠轉發的一些常用方法
1. SSH 埠轉發

SSH 提供了一個非常有意思的功能,就是埠轉發,它能夠將其他 TCP 埠的網路資料透過 SSH 連結來轉發,並且自動提供了相應的加密及解密服務。

(1) 本地埠轉發
ssh -fgN -L 2222:localhost:22 localhost
(2) 遠端埠轉發
ssh -fgN -R 2222:host1:22 localhost
(3) 動態轉發
ssh -fgN -D 12345 root@host1
2. iptables 埠轉發

 7.0 以下使用的是iptables,可以透過iptables實現資料包的轉發

(1) 開啟資料轉發功能
vi /etc/sysctl.conf    
  #增加一行 net.ipv4.ip_forward=1 
//使資料轉發功能生效 
sysctl -p
(2)將本地的埠轉發到本機埠
iptables -t nat -A PREROUTING -p tcp --dport 2222 -j REDIRECT --to-port 22
(3)將本機的埠轉發到其他機器
iptables -t nat -A PREROUTING -d 192.168.172.130 -p tcp --dport 8000 -j DNAT --to-destination 192.168.172.131:80 
iptables -t nat -A POSTROUTING -d 192.168.172.131 -p tcp --dport 80 -j SNAT --to 192.168.172.130 
 
#清空nat表的所有鏈 
iptables -t nat -F PREROUTING
3. firewall 埠轉發

CentOS 7.0以上使用的是firewall,透過 行配置實現埠轉發。

(1) 開啟偽裝IP
firewall-cmd --permanent --add-masquerade
(2) 配置埠轉發,將到達本機的12345埠的訪問轉發到另一臺伺服器的22埠。
firewall-cmd --permanent --add-forward-port=port=12345:proto=tcp:toaddr=192.168.172.131:toport=22
(3) 重新載入,使其失效
firewall-cmd --reload
4. rinetd 埠轉發

rinetd是一個輕量級TCP轉發工具,簡單配置就可以實現埠對映/轉發/重定向。

(1) 原始碼下載
wget 
(2) 安裝rinetd
rpm -ivh rinetd-0.62-9.el7.nux.x86_64.rpm
(3) 編輯配置檔案
vi rinetd.conf  
    0.0.0.0 1234 127.0.0.1 22
(4) 啟動轉發
rinetd -c /etc/rinetd.conf
5. ncat 埠轉發

netcat(簡稱nc),一個簡單而有用的工具,這裡介紹一種使用netcat實現埠轉發的方法。

(1) 安裝ncat
yum install nmap-ncat -y
(2) 監聽本機 9876 埠,將資料轉發到 192.168.172.131的 80 埠
ncat --sh-exec "ncat 192.168.172.131 80" -l 9876  --keep-open
6. socat 埠轉發

socat是一個多功能的網路工具,使用socat進行埠轉發。

(1) socat安裝
yum install -y socat
(2) 在本地監聽12345埠,並將請求轉發至192.168.172.131的22埠。
socat TCP4-LISTEN:12345,reuseaddr,fork TCP4:192.168.172.131:22
7. portmap 埠轉發

Linux 版的lcx,內網埠轉發工具。

(1) 下載地址:

(2) 監聽本地1234埠,轉發給192.168.172.131的22埠

/portmap -m 1 -p1 1234 -h2 192.168.172.131 -p2 22
8. portfwd埠轉發

portfwd是meterpreter中內建的功能,也提供了單機版,用於TCP/UDP埠轉發服務

Github 專案地址:

(1) 下載編譯
git clone .git 
cd portfwd/src 
make
(2)將本地的12345埠轉發到192.168.172.131:22
./tcpfwd 0.0.0.0:12345 192.168.172.131:22
9. NATBypass埠轉發

一款lcx(htran)在golang下的實現

Gihub專案地址:

內網主機主動連線外網主機打通隧道:

  • 在目標機器上執行:nb -slave 127.0.0.1:3389 公網IP:51
  • 在公網的機器執行:nb -listen 51 3340
  • 在公網主機上連線 127.0.0.1:3340,即可連線上內網機器的3389埠。

原文地址:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2725695/,如需轉載,請註明出處,否則將追究法律責任。

相關文章