IPtables进行端口复用

文章介绍了两种通过网络协议实现远程开关控制的方法。第一种是使用ICMP包长度来开启和关闭端口复用,允许通过80端口访问SSH;第二种方法依赖于TCP数据包中的特定关键字。这两种技术涉及iptables规则设置,适用于网络安全和系统管理场景。
摘要由CSDN通过智能技术生成

第一种方式:ICMP做遥控开关

缺点在于如果目标在内网,无法直接ping到它

1、创建端口复用链

iptables -t nat -N HTTP_TO_SSH

在这里插入图片描述
我们可以查看是否创建

iptables -nvxL -t nat

在这里插入图片描述

2、创建端口复用规则,将流量转发至22端口

iptables -t nat -A HTTP_TO_SSH -p tcp -j REDIRECT --to-port 22

在这里插入图片描述

3、开启开关

如果接收到一个长为1139的ICMP包,则将来源IP添加为oupeng的列表中

iptables -t nat -A PREROUTING -p icmp --icmp-type 8 -m length --length 1139 -m recent --set --name oupeng --rsource -j  ACCEPT

在这里插入图片描述

4、关闭开关

如果接收到一个长为1140的ICMP包,则将来源IP从oupeng列表中去掉

iptables -t nat -A PREROUTING -p icmp --icmp-type 8 -m length --length 1140 -m recent --name oupeng --remove -j ACCEPT

在这里插入图片描述

5、let’s do it

如果发现SYN包的来源IP处于oupeng列表中,将跳转到LETMEIN链进行处理,有效时间为3600秒

iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name oupeng --rsource -j HTTP_TO_SSH

在这里插入图片描述
如下图我们可以看见5个链ok了
在这里插入图片描述
开启复用前,WEB是可以访问的:
开启复用

ping -c 1 -s 1111 192.168.81.130

在这里插入图片描述
向目标发送一个长度为1111的ICMP数据包(加上包头28,总长度实际为1139)
如下图,我们可以看到用ssh可以登陆到端口80上
在这里插入图片描述

关闭复用

ping -c 1 -s 1112 192.168.81.130

向目标发送一个长度为1112的ICMP数据包(加上包头28,总长度实际为1140)

第二种方式:利用tcp数据包的关键字做遥控开关

优点在于不怕目标在内网

1、端口复用链

2、端口复用规则(与上面一致)

3、开启开关

iptables -A INPUT -p tcp -m string --string 'zhimakaimen' --algo bm -m recent --set --name oupeng --rsource -j ACCEPT

4、关闭开关

iptables -A INPUT -p tcp -m string --string 'zhimaguanmen' --algo bm -m recent --name oupeng --remove -j ACCEPT

5、let’s do it

iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 -name oupeng --rsource -j LETMEIN

开机复用,开启后本机到目标80端口的流量将转发至目标的SSH,80将无法在被本机访问:

echo  threathuntercoming | socat - tcp:192.168.81.130

关闭复用,关闭后,80回复正常:

echo threathunterleaving | socat - tcp:192.168.81.130
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流年ꦿ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值