web-dev-qa-db-fra.com

Connexion aux ports 2000 et 5060 réussie malgré le filtrage

J'exécute mon propre routeur (basé sur Ubuntu) et ai iptables configuré pour supprimer tous les paquets entrants par défaut. À ma grande surprise, l'exécution d'une analyse nmap (du côté WAN) montre deux ports ouverts liés à la VOIP:

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 et ssh sont corrects, car ces deux services sont configurés sur le routeur. Mais Cisco-sccp et sip étant ouvert sont des nouvelles pour moi.

En effet, une connexion telnet aux deux ports est réussie:

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 '^]'.

Mais courir netstat -talpn sur le routeur pendant que la session telnet est active ne montre aucune connexion établie pour aucun des ports. Et le journal montre que iptables supprime les paquets:

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 est l'adresse IP à partir de laquelle telnet se connecte.

Mon diagnostic est-il correct?

Si oui, comment telnet peut-il établir une connexion, même si les paquets sont abandonnés sur le routeur? Qui écoute sur les ports 2000 et 5060?

9
Christian David

Il y a quelque chose entre le scanner et la cible qui répond au nom de la cible, usurpant son adresse source de manière à sembler être la cible elle-même. Lorsque vous avez exécuté l'analyse Nmap en tant que root avec --reason -v, il a montré les valeurs IP Time-to-Live (TTL) des paquets de réponse pour chaque port:

 RAISON DU SERVICE DE L'ÉTAT DU PORT 
 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 ouvert Cisco-sccp syn-ack ttl 61 
 5060/tcp ouvert sip syn-ack ttl 61 

Le champ TTL commence à un certain nombre (généralement 128 ou 64) et est décrémenté par chaque routeur ou saut IP intervenant. Si l'un des champs reçus TTL est incroyablement élevé) , cela peut signifier que le paquet provient plus près du scanner que prévu, c'est-à-dire d'un des sauts.

Vous avez dit que 21 et 22 devaient être ouverts. Ils ont des valeurs TTL différentes, ce qui pourrait signifier que l'un d'entre eux (FTP) est redirigé vers un système à l'intérieur de votre réseau, ou cela pourrait signifier qu'il y a un routage asymétrique qui se traduit par un chemin différent à chaque fois. Mais la vraie question concerne plus de 2 000 et 5 060, soit 7 sauts de plus que la distance attendue la plus proche. Ils sont presque certainement interceptés.

Vous devriez être en mesure de déterminer le tronçon qui intercepte le trafic en effectuant un traceroute. Nmap peut être utilisé pour ce faire, si vous limitez son trafic au seul port en question:

nmap --traceroute -Pn -p 2000 example.com

Cela montrera une série de sauts aboutissant à celui "de" votre cible. Il est en fait très probablement le saut au-delà du dernier saut de cette liste. Comparez-le à la traceroute pour un port qui fonctionne comme prévu. Par exemple, si votre scan ressemble à ceci:

 # nmap --traceroute -Pn -p 2000 example.com 
 TRACEROUTE (en utilisant le port 2000/tcp) 
 1 passerelle 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 (en utilisant le port 22/tcp) 
 1 Passerelle 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) 

Le dernier saut commun est 10.100.96.1. Le saut suivant de la séquence est le 182.23.16.88, qui est probablement celui qui usurpe la réponse.

Quant à pourquoi ces ports peuvent être usurpés, je note que SCCP (port 2000) et SIP (port 5060) sont tous deux des services VoIP. Peut-être que votre FAI ne le fait pas) Vous ne souhaitez pas utiliser un serveur VoIP, un client ou un relais, et utilisez-vous cette méthode pour l'empêcher?

5
bonsaiviking