端口轉發 Port Forwarding (一)


0x00First

  最近發現一些好用的端口轉發工具和技巧,計划認真梳理一下

   SSH、NC、LCX、EW、FRP


 

0x01 SSH隧道端口轉發

  目前利用SSH隧道(SSH tunneling)進行端口轉發,有三種類型:本地端口轉發、遠程端口轉發、動態端口轉發。

1、本地端口轉發

   在ip1的客戶端執行如下命令:

  SSH -CfN -L 0.0.0.0:port1:ip2:port2 user3@ip3

  結果:訪問ip1:port1等同於訪問ip2:port2

  條件:ip1可以ssh訪問ip3;

     ip3可以訪問ip2的port2

 

1.5、本地轉發與遠程端口轉發的異同

  同:都是通過訪問ip1:port1來最終訪問ip2:port2

    ip3是中間必經點,ip2只能通過ip3來發起訪問

  異:前者是ip1扮演SSH Client,后者是ip3扮演SSH Client

    前者場景-公司里只有老板的ip3可以到看ip2上的片片,由於你加班表現優異,特獎勵你的ip1可以ssh他的ip3,這樣你在自己的工位上也能看ip2的片了。

    后者場景-老板把公司內網的考勤系統ip2,通過可以上網的ip3主動映射到互聯網的服務器ip1上,便於出差在外/半夜在家的你加班。

 

2、遠程端口轉發

  在ip3的客戶端執行如下命令:

  SSH -CfN -R port1:ip2:port2 user1@ip1

  結果:訪問ip1:port1等同於訪問ip2:port2

  條件:ip3可以ssh訪問ip1;

     ip3可以訪問ip2的port2

 3、動態端口轉發

  在ip1的客戶端執行如下命令:

  SSH -CfN -D 8080 user3@ip3

  在ip1上將socks5代理服務器地址設置為ip1:8080

  結果:在ip1上可以訪問ip3所有能訪問的

     條件:ip1可以ssh訪問ip3


 0x02 NetCat NC端口轉發


   目前windows版本的通用netcat沒有見到可有進行端口轉發的,Linux版的也只是能進行簡單的端口轉發。Linux端口轉發是需要同mkfifo結合起來用的:

  在ip1上:

  mkfifo /tmp/backpipe

  cat /tmp/backpipe | nc ip2 8080 | nc -l 9090 > /tmp/backpipe

  結果:訪問ip1的9090就是訪問ip2的8080了

  條件:ip1可以訪問ip2的8080

  

0x03 LCX 端口轉發


  應該說LCX是比較經典的端口轉發工具,先上一段官方說明:

   Usage of Packet Transmit:

     ./lcx -<listen|tran|slave> <option> [<-log|-hex|-text> file]
     ./lcx -about
 
  [options:]
     -listen <local port1>  <local port2>
     -tran   <local port>   <remote host>  <remote port>
     -slave  <remote host1> <remote port1> <remote host2> <remote port2>
 
     -hex   : hex mode data dump
     -text  : text mode data dump
     -log   : save transfer log
1、遠程端口轉發:
  在ip1上命令:lcx -listen  8080 9090
  在ip2上命令:lcx -slave ip1 8080 ip3 7070
  結果:訪問ip1的9090就是訪問ip3的7070
  條件:ip2可以訪問ip1的8080和ip3的7070
 
2、本地端口轉發:
  在ip2上的命令:lcx -tran 8080 ip3 7070
  結果:訪問ip2的8080就是訪問ip3的7070
  條件:ip2可以訪問ip3的7070
 
 
 

0x04 EarthWorm EW 端口轉發


   EarthWorm EW是一款跨平台的端口轉發、Socks5代理工具,自帶LCX功能,跨平台。(Earthworm 工具網址:http://rootkiter.com/EarthWorm)

  EW共有 6 種工作模式:ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran

1、正向SOCKS5 代理

  在ip1上命令:ew -s ssocksd -l 8080

  將ip2的socks5代理服務器設置為:ip1:8080

  結果:ip1能訪問的端口,ip2都能訪問

  條件:ip2能夠訪問ip1的8080

2、反彈SOCKS5 代理

  在ip1上命令:ew -s rcsocks -l 8080 -e 9090

  在ip2上命令:ew -s rssocks -d ip1 -e 9090

  將ip3的socks5代理服務器設置為:ip1:8080

  結果:ip2能訪問的端口,ip3都能訪問

  條件:ip2能夠訪問ip1的9090

     ip3能夠訪問ip1的8080

 

 

0x05 FRP 端口轉發


   FRP  是一個可用於內網穿透的高性能的反向代理應用,支持 tcp, udp, http, https 協議。(官方文檔很詳細,我都不想說了)

 


 

0xRef

1、《SSH/OpenSSH/PortForwarding 》https://help.ubuntu.com/community/SSH/OpenSSH/PortForwarding

2、《實戰 SSH 端口轉發》https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/

3、《端口轉發》https://pan.baidu.com/s/1ystFF-a0nBSDvINpzf0OZw

4、《應用netcat實現端口轉發》https://blog.csdn.net/freestyle4568world/article/details/54693306

5、《netcat的端口轉發功能的實現》https://blog.csdn.net/whackw/article/details/46414069

6、《netcat的正確打開方式》 https://www.jianshu.com/p/827f5dc79bbe

7、《PuTTY/Putty建立隧道的方法》https://blog.csdn.net/lifan5/article/details/33709271

8、《三種不同類型的ssh隧道》http://hetaoo.iteye.com/blog/2299123

9、《SSH的端口轉發:本地轉發Local Forward和遠程轉發Remote Forward》https://blog.csdn.net/a351945755/article/details/21785647

10、《ssh端口映射總結》https://blog.csdn.net/boliang319/article/details/48656985

11、《端口轉發工具lcx使用兩類》https://www.cnblogs.com/lingerhk/p/4506308.html

12、《內網端口轉發及穿透》http://www.zerokeeper.com/experience/network-port-forwarding-and-penetration.html

13、《內網穿透大殺器--EarthWorm》https://blog.csdn.net/nzjdsds/article/details/82025651

14、《FRP 中文說明文檔》https://github.com/fatedier/frp/blob/master/README_zh.md

 


 

0xApp

1、SSH 命令詳解

https://www.cnblogs.com/f-ck-need-u/archive/2017/07/05/7120669.html

2、25個常用的ssh命令

https://blog.csdn.net/u010027484/article/details/51774083

 


免責聲明!

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



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