通向彼岸 之内网代理转发 [ 系统篇 iptables ]



0x01 前言
    作用和netsh差不多,这里就不废话了,直接看操作,还是同样的情况,只不过你此时拿下的是边界的一台linux服务器,依然想通过这台机器直接去访问内网的其它机器

0x02 环境大致如下:

1
2
3
边界linux机器(centos 6.8en) ip:192.168.3.40(假设为目标机器的公网ip) 192.168.32.129(假设为目标的内网ip)
要访问的内网windows机器(win 2008r2cn) ip:192.168.32.134
攻击者机器(win7cn) ip:192.168.3.251

0x03 最终目的

1
通过边界的linux机器访问内网中的windows机器上的指定服务

0x04 具体过程如下,首先,编辑边界linux机器的路由转发配置文件,开启其路由转发功能

1
2
# sed -i '/net.ipv4.ip_forward/ s/\(.*= \).*/\11/' /etc/sysctl.conf
# cat /etc/sysctl.conf | grep "net.ipv4.ip_forward"

0x05 暂时先关闭iptables服务,实际渗透渗透中,最好不要关,很容易把人网搞断,这里只是为了做实验看效果才这么干

1
# /etc/init.d/iptables status && /etc/init.d/iptables stop

0x06 利用iptables添加转发规则,这里以转发内网指定机器的rdp为例,至于别的端口都是同样的转发方法,请自行尝试

1
2
3
iptables -t nat -A PREROUTING -d [边界机器的公网地址] -p tcp -m tcp --dport [边界机器端口] -j DNAT --to-destination [内网机器的IP]:[内网机器的端口]
iptables -t nat -A POSTROUTING -d [内网机器的IP] -p tcp -m tcp --dport [内网机器端口] -j SNAT --to-source [边界机器的内网ip]
iptables -A FORWARD -o [边界机器的内网网卡编号] -d [内网机器IP] -p tcp --dport [内网机器端口] -j ACCEPT

1
2
3
4
# /sbin/iptables -P INPUT ACCEPT
# iptables -t nat -A PREROUTING -d 192.168.3.40 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.32.134:3389
# iptables -t nat -A POSTROUTING -d 192.168.32.134 -p tcp -m tcp --dport 3389 -j SNAT --to-source 192.168.32.129
# iptables -A FORWARD -o eth1 -d 192.168.32.134 -p tcp --dport 3389 -j ACCEPT

0x07 保存&&重启iptables服务

1
# /etc/init.d/iptables save && /etc/init.d/iptables restart


0x08 删除防火墙规则,实际渗透中只删除你自己的规则就好了,别的不要动,记得关闭保存并重启防火墙才可生效

1
# iptables -F

0x09 如果想实现自启动也比较简单,直接把它丢到一些系统的自启动脚本中即可,越隐蔽越好,不要放到rc.local中就行,还是那个问题,如果中间有任何防护阻断某些端口通信,基本也就废了,因为你是bind进去的,说白点,最终主动权还是在别人手里