iptablesをバイパスするハッカー


9

(SOから移動)

私はsipサーバーを保護するiptablesを持っています。私が特別に開いたものを除くすべてのIPをブロックし、ほとんどすべての人で機能するようです。ホワイトリストに載っていない多くのIPアドレスからテストしましたが、すべて期待どおりにドロップされます。

しかし、私はiptablesルールを迂回できると思われる「ハッカー」を拾いました。彼の調査中のINVITEはそれを成功させ、私はそれがどのように、あるいはそれが可能であったかさえ知りません。10年間、私はこれを見たことがない。

自分がやったことだと思いますが、見えません。

このように作成された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を使用するだけで(SSHを実行できます)できます。私がそれに電話をかけると、それらはすべてドロップされます。しかし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からこれを見たところです。彼らは何か他の方法で確立され、確立されたルールでプレーするような恐ろしいことをしていますか?多分彼らはRELATEDのいくつかの穴で遊んでいますか?

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

編集2:UDPがここでの鍵です。TCPのみをリッスンするようにOpenSIPSを設定すると、問題は解消したようです。彼らはそれらの "tag-pm"メッセージをさらに送信していますが、彼らの試みはこれ以上通り抜けることはできません。パケットがopensipsに到達している理由を説明していません。iptablesは最初にそれらを停止する必要があります。ここで私が間違ったことを知りたいです。

編集3:RELATEDを削除すると、彼らへの返信が停止するので、それはそれと関係があります。しかし、私は関連が必要だと思います。回避策に関するヒントはありますか?


1
ESTABLISHEDUDPで動作するはずです。パケットフローのように見え、(発信)要求への応答を受け入れます。あなたの「ハッカー」は静的IPを持っていますか?;-)もしそうなら、/ proc / net / nf_conntrackをチェックして、それらが現在/ not /に接続されているときの状態テーブルの内容を確認してください... RELATEDよりトリッキーなことです... SIPで何が行われるかわからない。modprobe多分それは「魔法」ものをするでしょうロードさipt_sipモジュールまたは何かを示して?
Marki

@Marki-そのヒントをありがとう。/ proc / net / nf_conntrackが存在しない(centos 7)ので、何を/なぜ/どこで見つける必要があります。
David Wylie

2
「conntrack-tools」はリポジトリからインストール可能なものであり、「conntrack -L」を実行するとそれらがリストされているようです。それが何をもたらすかを見に行きます。典型的ですが、彼は立ち止まっています。うまくいけば、ただ一時停止します。
デビッドワイリー

1
可能であれば:に制限RELATEDしてみてください-p icmp。多分これはそれを解決します(またはあなたがconntrackヘルパーについて読むことをあなたに要求しない適切な回避策です)。
corny

1
チェーンを追加することで、物事を混乱させました。カスタムALLOWEDSIPの前にACCEPTチェーンがチェックされている場合、ALLOWEDSIPは役に立たない可能性があります。
オーバーマインド

回答:


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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.