Analyse VoIP Wireshark

A partir de nombreux fichiers d’exemples, on trouve ici un exemple d’analyse de trafic VoIP : configuration de Wireshark, première analyse, hiérarchie de protocoles et points de terminaison, protocoles VoIP, statistiques SIP, appels VoIP, champs SIP, jouer une conversation téléphonique, affichage des utilisateurs SIP, Analyse RTP sont au menu des activités.

1. Fichiers d’exemple

2. Configuration générale

2.1. Création d’un profil de Configuration

Menu : Edit → Configuration Profiles …

Création d'un profil de Configuration

2.2. Affichage des colonnes

Menu : Edit → Preferences

Affichage des colonnes

2.3. Horodatage

Le format par défaut de l’horodatage est “Seconds Since Beginning Capture”.

Pour changer en “Moment de la journée” : Aller dans le menu View → Time Display Format → Date and Time of Day.

Avec un affichage à la “Seconds”View → Time Display Format → “Seconds: 0”

Horodatage

2.4. Alignement des colonnes à gauche

Clic droit et alignement à gauche

2.5. Champs comme colonne

Par exemple ici avec le filtre http.request, utiliser le champ HTTP Host: en colonne :

Champs comme colonne

2.6. Règles de colorisation

Menu : View → Coloring Rules

Règles de colorisation

3. Première analyse

3.1. Propriétés du fichier

Menu : Statistics → Capture File Properties

Propriétés du fichier

3.2. Hiérarchie de protocoles

Pour avoir une vue d’ensemble des protocoles de la capture.

Menu : Statistics → Protocol Hierarchy

Couche 3

Hiérarchie de protocoles Couche 3
  • LLC
  • CDP
  • STP
  • IPv4
  • ARP

Couche 4 IPv4

  • UDP (84%)
  • TCP (12%)

Couche 7 IPv4/UDP

Hiérarchie de protocoles Couche 7 IPv4/UDP
  • SNMP
  • SIP
  • RTP
  • RTCP
  • MGCP
  • H323

Couche 7 IPv4/TCP

Hiérarchie de protocoles Couche 7 IPv4/TCP
  • Yahoo Messenger
  • POP
  • MSN Messenger
  • HTTP

3.3. Points d’extrémités et conversations

Pour avoir une idée des Hôtes physiques et logiques de la capture.

Menu : Statistics → Endpoints

Menu : Statistics → Conversations

Couche 2

Points d'extrémités et conversations Couche 2

On reconnait du Cisco, du Dell, du Xircom, …

UDP

Points d'extrémités et conversations UDP

4. Analyse VoIP

4.1. Protocoles VoIP

Protocoles VoIP

4.2. Champs de références Wireshark

4.3. Statistiques SIP

Menu : Telephony → SIP Statistics

tshark -r sip-2phones-B2BUA-Asterisk.pcapng -q -z sip,stat

===================================================================
SIP Statistics

Number of SIP messages: 60
Number of resent SIP messages: 1

* SIP Status Codes in reply packets
  SIP 401 Unauthorized    :     7 Packets
  SIP 404 Not Found       :     1 Packets
  SIP 180 Ringing         :     2 Packets
  SIP 200 OK              :     9 Packets
  SIP 480 Temporarily Unavailable :     1 Packets
  SIP 489 Bad Event       :     6 Packets
  SIP 100 Trying          :     3 Packets

* List of SIP Request methods
  INVITE          :     7 Packets
  ACK             :     6 Packets
  REGISTER        :     4 Packets
  PUBLISH         :     3 Packets
  SUBSCRIBE       :     9 Packets
  BYE             :     2 Packets

* Average setup time 2430 ms
 Min 1 ms
 Max 7071 ms
===================================================================

→ SIP Flows

SIP Flows

4.4. Statistiques avec tshark

L’option -z à exploiter …

tshark -z help

Par exemple, les adresses MAC :

tshark -q -z endpoints,eth -r sip.pcapng

4.5. Menu VoIP Calls

tshark -t ud -r sip.pcapng -Y "sip.CSeq.method eq INVITE"
  1 2005-01-14 17:58:02.965944 200.57.7.195 → 200.57.7.204 SIP/SDP Request: INVITE sip:francisco@bestel.com:55060 |
  2 2005-01-14 17:58:02.973833 200.57.7.204 → 200.57.7.195 SIP Status: 100 Trying |
  3 2005-01-14 17:58:03.013468 200.57.7.204 → 200.57.7.195 SIP Status: 180 Ringing |
498 2005-01-14 17:58:11.443869 200.57.7.204 → 200.57.7.195 SIP/SDP Status: 200 Ok |
2964 2005-01-14 17:58:27.631897 200.57.7.195 → 200.57.7.204 SIP/SDP Request: INVITE sip:francisco@bestel.com:55060 |
2965 2005-01-14 17:58:27.640624 200.57.7.204 → 200.57.7.195 SIP Status: 100 Trying |
2967 2005-01-14 17:58:27.658696 200.57.7.204 → 200.57.7.195 SIP Status: 180 Ringing |
tshark -t ud -r sip-2phones-B2BUA-Asterisk.pcapng -Y "sip.CSeq.method eq INVITE"
 19 2016-05-18 18:23:15.920336  172.16.98.1 → 172.16.98.101 SIP/SDP Request: INVITE sip:2302@172.16.98.101;transport=UDP |
 20 2016-05-18 18:23:15.921110 172.16.98.101 → 172.16.98.1  SIP Status: 401 Unauthorized |
 22 2016-05-18 18:23:15.921826  172.16.98.1 → 172.16.98.101 SIP/SDP Request: INVITE sip:2302@172.16.98.101;transport=UDP |
 23 2016-05-18 18:23:15.922973 172.16.98.101 → 172.16.98.1  SIP Status: 100 Trying |
 24 2016-05-18 18:23:15.923891 172.16.98.101 → 172.16.98.145 SIP/SDP Request: INVITE sip:telephone2@172.16.98.145:40216;rinstance=98920ece8998d44b;transport=UDP |
 25 2016-05-18 18:23:16.423460 172.16.98.101 → 172.16.98.145 SIP/SDP Request: INVITE sip:telephone2@172.16.98.145:40216;rinstance=98920ece8998d44b;transport=UDP |
 26 2016-05-18 18:23:16.559683 172.16.98.145 → 172.16.98.101 SIP Status: 100 Trying |
 27 2016-05-18 18:23:16.559967 172.16.98.145 → 172.16.98.101 SIP Status: 100 Trying |
 28 2016-05-18 18:23:16.664606 172.16.98.145 → 172.16.98.101 SIP Status: 180 Ringing |
 29 2016-05-18 18:23:16.665071 172.16.98.101 → 172.16.98.1  SIP Status: 180 Ringing |
 32 2016-05-18 18:23:22.982256 172.16.98.145 → 172.16.98.101 SIP/SDP Status: 200 OK |
 34 2016-05-18 18:23:22.986781 172.16.98.101 → 172.16.98.1  SIP/SDP Status: 200 OK |
 35 2016-05-18 18:23:22.987124 172.16.98.101 → 172.16.98.145 SIP/SDP Request: INVITE sip:telephone2@172.16.98.145:40216, in-dialog |
 37 2016-05-18 18:23:22.993949 172.16.98.101 → 172.16.98.1  SIP/SDP Request: INVITE sip:telephone1@172.16.98.1:44285;transport=UDP, in-dialog |
 38 2016-05-18 18:23:23.016554  172.16.98.1 → 172.16.98.101 SIP/SDP Status: 200 OK |
 41 2016-05-18 18:23:23.173703 172.16.98.145 → 172.16.98.101 SIP/SDP Status: 200 OK |
406 2016-05-18 18:23:30.610529 172.16.98.101 → 172.16.98.145 SIP/SDP Request: INVITE sip:telephone2@172.16.98.145:40216, in-dialog |
407 2016-05-18 18:23:30.849885 172.16.98.145 → 172.16.98.101 SIP/SDP Status: 200 OK |

4.6. Afficher une charge SIP avec tshark

tshark -t ud -Y "frame.number == 1" -O sip -r sip-2phones-B2BUA-Asterisk.pcapng

4.7. Champs SIP

Ajuster les colonnes sur base des filtres ou baser des recherches sur :

sip.User-Agent
sip.Status-Line
sip.Callid
sip.Status-Code > 399
sip.Method
sip.to.user

Ces entrées peuvent servir à filtrer des paquets en fonction de valeurs, mais elles peuvent aussi servir de filtre d’affichage, comme par exemple ici pour afficher le nom d’utilisateur des messages REGISTER (-T fields -e sip.to.user) :

4.8. Affichage des utilisateurs SIP enregistrés

tshark -t ud -Y "sip.Method == REGISTER" -r capture3.cap -T fields -e sip.to.user

4.9. Jouer une conversation téléphonique

Menu : Telephony → VoIP Calls → choisir un flux → Play Stream

Jouer une conversation téléphonique

Jouer la session RTP Forensic_challenge_4.pcap

4.10. Analyse RTP

  • SSRC
  • Setup frame
  • Time Spans (s)
  • Sample Rate (Hz)
  • Payloads (Codecs)

SSRC

La valeur SSRC (Synchronization source) identifie la source de synchronisation, identifie un flux RTP. La valeur est choisie de manière aléatoire, avec l’intention qu’aucune source de synchronisation dans la même session RTP n’aura le même SSRC. Bien que la probabilité que les sources multiples choisissant le même identifiant soit faible, toutes les implémentations RTP doivent être préparées pour détecter et résoudre les collisions. Si une source change son adresse de transport source, elle doit également choisir un nouveau SSRC pour éviter d’être interprété comme une source en boucle.

Sample Rate

La famille des codecs G.711 utilisent une fréquence d’échantillonage de 8kHz (8000 Hz).

Cela signifie que le flux audio est échantilloné 8000 fois par seconde.

La longueur d’un échantillon audio est alors de 1/8000 s = 0.000125 s = 0.125 ms

4.11. Paramètres RTP

  • Paquet: ce paramètre indique le nombre de paquets dans le fichier capturé.
  • Sequence: ce paramètre indique le numéro de séquence RTP.
  • Delta (ms): c’est la différence de temps entre le paquet actuel et le paquet précédent dans le flux.
  • Filtered Jitter (ms): ce paramètre fait référence à la différence entre l’heure d’arrivée réelle et le paramètre d’horodatage RTP. Il devrait être aussi bas que possible et de préférence zéro.
  • Skew Inclinaison (ms): Ce paramètre indique le début (ou le retard) du paquet par rapport à l’endroit où il était supposé être. Par exemple, si nous disposons d’un taux de paquets de 20 paquets par seconde, nous devrions avoir 50 ms entre les paquets, et si un paquet arrive 49 ms après le précédent, ce sera une inclinaison de -1 ms.
  • IP BW (kbps): ce paramètre fait référence à la consommation de bande passante au niveau IP qui est avec tous les en-têtes jusqu’à la couche 3.
  • Marqueur: ce paramètre indique si le marqueur est SET (SET = 1, UNSET = 0). Un marqueur indique différents phénomènes tels que la fin de la période de silence et la fin de la trame vidéo, et est ajouté par l’application. Statut: ce paramètre vous permet de vérifier si le statut est correct.

4.12. Analyse de flux RTP

Menu : Telephony → RTP → RTP Streams / Stream Analysis

Telephony → RTP → RTP Streams / Stream Analysis
Telephony → RTP → RTP Streams / Stream Analysis
tshark -r sip-2phones-B2BUA-Asterisk.pcapng -q -z rtp,streams
========================= RTP Streams ========================
    Src IP addr  Port    Dest IP addr  Port       SSRC          Payload  Pkts         Lost   Max Delta(ms)  Max Jitter(ms) Mean Jitter(ms) Problems?
    172.16.98.1  8000   172.16.98.145  8000 0x44830D58 ITU-T G.711 PCMU     1     0 (0.0%)            0.00            0.00            0.00
  172.16.98.145  8000     172.16.98.1  8000 0x6AB21E82 ITU-T G.711 PCMU   355     0 (0.0%)           52.35           10.17            7.64
==============================================================
tshark -r sip.pcapng -q -z rtp,streams
========================= RTP Streams ========================
    Src IP addr  Port    Dest IP addr  Port       SSRC          Payload  Pkts         Lost   Max Delta(ms)  Max Jitter(ms) Mean Jitter(ms) Problems?
   200.57.7.204  8000    200.57.7.196 40376 0xD2BD4E3E ITU-T G.711 PCMA   548     0 (0.0%)         5843.74            7.41            2.60
   200.57.7.196 40376    200.57.7.204  8000 0x58F33DEA ITU-T G.711 PCMA   891     0 (0.0%)          379.90            0.25            0.10
   200.57.7.202 30000    200.57.7.196 40362 0x00002E3D ITU-T G.711 PCMA     6     0 (0.0%)           30.04            0.64            1.74
==============================================================

5. Captures SIP/RTP/VoIP

Captures SIP/RTP/VoIP disponibles sur : https://github.com/goffinet/sip_captures/archive/master.zip