Préparation

 

Pour afficher les paquets vides envoyés par les appareils SIP, nous ne pouvons pas utiliser ngrep en prenant le numéro de compte/téléphone comme filtre. Il faut donc mettre un filtre correspondant à l’adresse IP externe de notre téléphone SIP. Pour ne pas obtenir des paquets correspondant à d’autres téléphones, la première chose à faire est de trouver un serveur SIP où aucun téléphone utilisant l’adresse IP externe de nos locaux ne s’enregistre.

1) Lister les serveurs ayant des enregistrements venant de notre adresse IP

 

Notre adresse IP externe est 81.62.117.XXX. Voici la requête sélectionnant les serveurs SIP ayant un enregistrement où contact contient 81.62.117.XXX

mysql> select domain, contact from location where contact REGEXP 'sip:[0-9]*@81.62.117.XXX:[0-9]*' group by domain;

+----------------+-------------------------------------+

| domain         | contact                             |

+----------------+-------------------------------------+

| 82.103.128.XXX | sip:4121550xxx1@81.62.117.XXX:60145 |

| 91.121.101.XXX | sip:4121550XXX2@81.62.117.XXX:59954 |

| 91.121.138.XXX | sip:4121550xxx3@81.62.117.XXX:62747 |

| 91.121.178.XXX | sip:4121550xxx4@81.62.117.XXX:62777 |

| 91.121.205.XXX | sip:4121550xxx5@81.62.117.XXX:49294 |

| 91.121.75.XXX  | sip:4121550xxx6@81.62.117.XXX:49302 |

| 94.23.225.XXX  | sip:4121550xxx7@81.62.117.XXX:49341 |

+----------------+-------------------------------------+

7 rows in set (0.02 sec)     

 

2) Sélection du serveur PortaSIP

                      

Un simple nslookup sur nos différents serveurs PortaSip (Ce simple script les liste [bash]) permet de trouver une adresse IP de serveur qui n’est pas comprise dans la liste ci-dessus.

Nous prendrons le serveur fr14.youroute.net (94.23.50.XXX)

3) Sélection du serveur Astrad

 

Nous prenons astrad4.switzernet.com (91.121.16.XXX) qui ne fait pas partie de la liste de serveur ci-dessus.

4) La commande ngrep à utiliser

 

Les détails des paquets SIP ne sont pas nécessaires pour nos tests, il nous faut seulement capturer les deux premières lignes des échanges tel que :

 

U date ip_source:port -> ip_destination:port

Seconde ligne du paquet

                                                                                

Voici la commande utilisé :

 

# ngrep -pqlt -W byline host 81.62.117.XXX and port 5060 | grep -A1 -i '^U '