• 端口转发 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

  • 相关阅读:
    log4j的使用
    关于spring读取配置文件的两种方式
    BeanUtils组件的使用
    javaee 自定义标签实战
    javaweb中的标签的核心标签库的常用标签
    对接口的思考
    二分查找
    java抽象类
    多例集合
    js中for循环的研究
  • 原文地址:https://www.cnblogs.com/2better2/p/9827408.html
Copyright © 2020-2023  润新知