黑客绕过iptables


9

(从SO移开)

我有保护SIP服务器的iptables。它阻止了除我专门打开的IP之外的所有IP,并且它几乎适用于所有人。我已经从许多未列入白名单的IP地址进行了测试,并且它们都被丢弃了。

但是,我选择了一个“黑客”,他似乎能够绕过iptables规则。他的探测邀请成功了,我不知道该怎么做,甚至不知道那是可能的。十年来,我从未见过这种情况。

我想这一定是我做的,但是我看不到。

像这样创建的iptables(顶部定义了MYIP-已编辑):

iptables -F
iptables -X
iptables -N ALLOWEDSIP
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -d $MYIP --dport 22 -j ACCEPT
iptables -t filter -A INPUT -j ALLOWEDSIP

# This is my white list.
iptables -A ALLOWEDSIP -j RETURN

现在,有了ALLOWEDSIP中的NOTHING,我应该能够做的就是SSH in(我可以)。如果我打电话给他们,他们都会掉线。但是wireshark显示了这个(我的ip已编辑):

89.163.146.25 -> x.x.x.x SIP/SDP 805 Request: INVITE sip:521088972597572280@x.x.x.x |
x.x.x.x -> 89.163.146.25 SIP 417 Status: 100 Giving a try |
x.x.x.x -> 89.163.146.25 SIP 875 Status: 407 Proxy Authentication Required |

他的电话打了我的电话,尽管最终被ACL拒绝,但他们永远都不能到达那里。没有其他事情通过。拉我的头发。有人知道吗

为了完整起见,这是iptables -L的结果:

# iptables -L --line-numbers -v
Chain INPUT (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1       10   640 ACCEPT     all  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
2        0     0 ACCEPT     all  --  lo     any     anywhere             anywhere
3        0     0 ACCEPT     tcp  --  any    any     anywhere             <redacted>.com  tcp dpt:6928
4        0     0 ALLOWEDSIP  all  --  any    any     anywhere             anywhere

Chain FORWARD (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 6 packets, 544 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Chain ALLOWEDSIP (1 references)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 RETURN     all  --  any    any     anywhere             anywhere

编辑:刚刚从wireshark看到了这一点。他们会做一些可怕的事情,比如以其他方式建立既定规则,然后按照既定规则行事吗?也许他们在“相关”游戏中有漏洞吗?

89.163.146.25 -> <redacted> RTCP 806 Source port: tag-pm  Destination port: sip

编辑2:UDP是这里的关键。当我将OpenSIPS设置为仅侦听TCP时,问题似乎消失了。尽管他们正在发送更多的“ tag-pm”消息,但他们的尝试都没有成功。尽管没有说明为什么数据包甚至到达了openips。iptables应该首先停止了它们。很想知道我在这里做错了什么。

编辑3:如果我删除“相关”,我将停止回复它们,因此与此有关。但我认为我需要相关。有关变通办法的任何提示吗?


1
ESTABLISHED应该适用于UDP。看起来数据包流并接受对(发出的)请求的答复。您的“黑客”有静态IP吗?;-)如果是这样,请检查/ proc / net / nf_conntrack以查看当它们当前/未连接时状态表包含的内容... RELATED是一件比较棘手的事情...不知道它对SIP的作用。是否modprobe可能显示一个ipt_sip模块或加载的东西会做“神奇”的东西?
Marki

@Marki-感谢您的提示。/ proc / net / nf_conntrack不存在(centos 7),所以我需要找出什么/为什么/在哪里。
David Wylie

2
“ conntrack-tools”是东西,可以从仓库中安装,然后运行“ conntrack -L”似乎可以列出它们。去看看会产生什么。尽管很典型,他停了下来。希望只是一个停顿。
David Wylie

1
如果可能:尝试限制RELATED-p icmp。也许这可以解决它(或者是一项适合的工作,不需要您阅读有关conntrack帮助器的信息)。
–corny

1
您通过添加一条链子弄乱了事情。如果在自定义ALLOWEDSIP之前检查了ACCEPT链,则ALLOWEDSIP可能没有用。
主宰

Answers:


1

唯一可行的解​​释是它如何工作,就是有问题的UDP数据报以某种方式通过了--state ESTABLISHED,RELATED

鉴于UDP是无状态协议,我怀疑该state模块能否有效跟踪它。

为了解决问题,我将状态检查限制为TCP协议,方法是:

-A INPUT -m tcp -m state -p tcp --state ESTABLISHED,RELATED -j ACCEPT`

ALLOWEDSIP使用UDP协议(最好也使用目标端口)进行预过滤:

iptables -t filter -A INPUT -m udp -p udp --dport 5060 -j ALLOWEDSIP

-2

您可以使用nullroute。这应该绕过iptables。

route add 89.163.146.25 gw 127.0.0.1 lo

核实

netstat -nr

要么

route -n

他想修补任何新攻击者的漏洞,而不仅仅是阻止这一攻击者。
Zdenek
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.