私は自分の(Ubuntuベースの)ルーターを実行し、デフォルトですべての着信パケットをドロップするようにiptables
を構成しています。驚いたことに、nmap
スキャンを実行すると(WAN側から))、VOIPに関連する2つの開いているポートが表示されます。
nmap -Pn -v --reason XXX.net
Starting Nmap 7.60 ( https://nmap.org ) at 2018-03-28 09:52 CEST
Initiating Parallel DNS resolution of 1 Host. at 09:52
Completed Parallel DNS resolution of 1 Host. at 09:52, 0.09s elapsed
Initiating Connect Scan at 09:52
Scanning XXX.net (XXX.XXX.XXX.XXX) [1000 ports]
Discovered open port 21/tcp on XXX.XXX.XXX.XXX
Discovered open port 22/tcp on XXX.XXX.XXX.XXX
Discovered open port 5060/tcp on XXX.XXX.XXX.XXX
Discovered open port 2000/tcp on XXX.XXX.XXX.XXX
Completed Connect Scan at 09:52, 5.17s elapsed (1000 total ports)
Nmap scan report for XXX.net (XXX.XXX.XXX.XXX)
Host is up, received user-set (0.035s latency).
Not shown: 995 filtered ports
Reason: 995 no-responses
PORT STATE SERVICE REASON
21/tcp open ftp syn-ack ttl 52
22/tcp open ssh syn-ack ttl 54
113/tcp closed ident reset ttl 254
2000/tcp open Cisco-sccp syn-ack ttl 61
5060/tcp open sip syn-ack ttl 61
Read data files from: /usr/local/bin/../share/nmap
Nmap done: 1 IP address (1 Host up) scanned in 5.33 seconds
ftp
とssh
は正しいです。これらの2つのサービスはルーターで構成されているためです。しかし、Cisco-sccp
とsip
のオープンはニュースです。
実際、両方のポートへのtelnet
接続は成功しています:
telnet XXX.net 2000
Trying XXX.XXX.XXX.XXX...
Connected to XXX.net.
Escape character is '^]'.
telnet XXX.net 5060
Trying XXX.XXX.XXX.XXX...
Connected to XXX.net.
Escape character is '^]'.
ただし、telnet
セッションがアクティブなときにルーターでnetstat -talpn
を実行すると、どちらのポートにも確立された接続がありません。そしてログはiptables
がパケットを落とすことを示しています:
Mar 27 20:52:16 router DROP INPUT IN=ppp0 OUT= MAC=MM:MM:MM:M SRC=YYY.YYY.YYY.YYY DST=XXX.XXX.XXX.XXX LEN=60 TOS=00 PREC=0x00 TTL=51 ID=39215 DF PROTO=TCP SPT=52200 DPT=2000 SEQ=106277563 ACK=0 WINDOW=42340 SYN URGP=0 MARK=0
ここで、YYY.YYY.YYY.YYY
はtelnet
が接続するIPです。
私の診断は正しいですか?
はいの場合、パケットがルーターでドロップされたとしても、どのようにしてtelnet
接続を確立できますか?誰がポート2000および5060でリッスンしていますか?
スキャナーとターゲットの間に、ターゲットの代わりに応答しているソースアドレスを偽装して、ターゲット自体のように見える何かがあります。 Nmapを実行すると、--reason -v
、各ポートの応答パケットのIP Time-to-Live(TTL)値を示しています。
ポート状態サービスの理由 21/tcp open ftp syn-ack ttl 52 22/tcp open ssh syn-ack ttl 54 113/tcp closed ident reset ttl 254 2000/tcp open Cisco-sccp syn-ack ttl 61 5060/tcp open sip syn-ack ttl 61
TTLフィールドは、ある数(通常は128または64)から始まり、介在するIPルーターまたはホップごとに減少します。受信された場合TTLフィールドが予想外に高い場合、パケットが予想よりもスキャナーの近くで、つまりホップの1つから発信されたことを意味します。
21と22は営業していると予想されていました。これらは異なるTTL=値を持っています。これは、それらの1つ(FTP)がネットワーク内のシステムにポート転送されることを意味するか、または非対称ルーティングが進行していることを意味する可能性があります毎回異なる経路ですが、実際の問題は2000と5060を超えており、最も近い予想距離より7ホップ近くです。これらはほぼ確実に傍受されています。
Tracerouteを実行することで、トラフィックをインターセプトしているホップを特定できるはずです。 Nmapは、問題の1つのポートへのトラフィックを制限する場合に使用できます。
nmap --traceroute -Pn -p 2000 example.com
これは、ターゲットの「から」の1つで最高潮に達する一連のホップを示します。実際には、このリストの最後のホップを超えるホップである可能性が最も高くなります。期待どおりに動作しているポートのtracerouteと比較してください。たとえば、スキャンが次のようになっているとします。
#nmap --traceroute -Pn -p 2000 example.com TRACEROUTE(ポート2000/tcpを使用) 1 2.04 msゲートウェイ(192.168.1.1) 2 14.37 ms 10.100.96.1 3 15.60 ms example.com(192.0.2.5) #nmap --traceroute -Pn -p 22 example.com TRACEROUTE(ポート22/tcpを使用) 1 2.04 msゲートウェイ(192.168.1.1) 2 14.37 ms 10.100.96.1 3 15.60 ms 182.23.16.88 4 10.11 ms 182.23.16.82 5 44.73 ms example.com(192.0.2.5)
最後の一般的なホップは10.100.96.1です。シーケンスの次のホップは182.23.16.88であり、これは応答を偽装している可能性が最も高いホップです。
なぜこれらのポートはスプーフィングされている可能性がありますが、SCCP(ポート2000)とSIP(ポート5060)はどちらもVoIPサービスです。ISPがサポートしていない可能性があります。 t VoIPサーバー、クライアント、またはリレーを実行し、この方法を使用してそれを防止していますか?