Replay de stream camera
Dernière mise à jour
Cet article vous a-t-il été utile ?
Dernière mise à jour
Cet article vous a-t-il été utile ?
Dans le cas ou la caméra ne possèderait pas de vulnérabilité connue, un attaquant qui gagne une position d'homme du milieu sur le réseau pourrait capter le trafic de tout canal de communication non sécurisé potentiel. Ici le but est dans un premier temps de capturer le trafic d'un streaming puis le sauvegarder dans un fichier .pcap.
Il existe trois protocoles liées au streaming fonctionnant la plupart du temps dépendamment les uns des autres:
Le RTSP (Real-Time Streaming Protocol): Est un protocole client-serveur qui agit comme une télécommande réseau pour les serveurs multimédia avec des flux en direct et des clips stockés comme sources de données.
Le RTP (Real-Time Transport Protocol): Est le protocol qui s'occupe de la transmission des données média (Fonctionne de pair avec le RTSP).
Le RTCP (Real-Time Transport Control Protocol): Envoie périodiquement des rapports hors bande qui annoncent des statistiques (par exemple, le nombre de paquets envoyés et perdus etc) au Participants RTP. Bien que RTP soit généralement envoyé sur un numéro de port UDP pait, RTCP est envoyé sur le port UDP suivant avec le numéro impair le plus élevé.
Les protocoles RTSP et RTP fonctionnent sous forme de session. Voici les différentes étapes par lesquelles ils passent:
Le client envoie un packet RTSP OPTIONS
permettant comme pour le protocole HTTP par exemple de connaitre les méthodes qu'il peut utiliser. (exp: DESCRIBE, SETUP, TEARDOWN, PLAY, SET_PARAMETER, GET_PARAMETER, PAUSE)
Le client envoie un packet RTSP DESCRIBE
incluant l'url du stream (exp: rtsp://192.168.4.180:554/video.mp4). Avec cette requête, le client est invité à donner l'URL et le format que le client comprend en utilisant l'en-tête Accept (Accept:application/sdp)
.
Le client va ensuite envoyer une requête RTSP SETUP
qui va permettre de spécifier les deux ports du client pour la réception des données RTP (vidéo et audio) et Données RTCP (statistiques et informations de contrôle).
Puis il envoie une requête RTSP PLAY
qui va tout simplement demander au serveur de lancer le stream.
Le paquet SDP (Session Description Protocol) reçu via la réponse du serveur à la deuxième étape présentée ci-dessus contient des valeurs importantes sur la façon dont la vidéo est encodée, nous avons besoin de ces informations pour lire la vidéo. Pour l'extraire sur Wireshark, on va se rendre dans les information du packet puis faire un clic droit sur la partie "Session Description Protocol" et enfin cliquer sur "Export packet bytes..."
Une fois cela fait, en ouvrant le packet exporté on doit retrouver quelque chose comme ceci:
On va ensuite modifier le packet SDP extrait pour avoir un résultat comme celui-ci:
L' étape suivante consiste à extraire le flux RTP de Wireshark. Le flux RTP contient les données vidéo codées. Ouvrez le fichier pcap qui contient les paquets RTP capturés au tout début puis cliquez sur "Téléphonie > RTP Stream". Sélectionnez le flux affiché, cliquez dessus avec le bouton droit de la souris et sélectionnez "Prepare Filter". Cliquez à nouveau avec le bouton droit de la souris et sélectionnez "Export as RTPDump". Enregistrez ensuite la sélection RTP Stream sous forme de fichier rtpdump (extension .rtpdump).
Pour extraire la vidéo du fichier rtpdump et la lire, vous aurez besoin les outils suivants:
RTP Tools: Pour lire et rejouer la session RTP
VLC: Pour rejouer le fichier vidéo finale
FFmpeg: Pour convertir le stream
La procédure à suivre ensuite est la suivante:
Conversion du stream avec FFmpeg
$ ffmpeg -v warning -protocol_whitelist file,udp,rtp -f sdp -i <fichier SDP falsifié>.sdp -copyts -c copy -y out.mkv
Lancer la session avec rtpplay
$ ./rtpplay -T -f path/to/exemple.rtpdump 127.0.0.1/<port defini dans fichier sdp>
Notez que vous devez exécuter la commande rtpplay immédiatement après vous démarrez FFmpeg, car par défaut FFmpeg se terminera s'il n'y a pas d'incom- ing stream arrive bientôt.
L'outil FFmpeg décodera alors la lecture session RTP et générera le fichier out.mkv.
Finalement, lire le fichier mkv avec VLC
$ vlc out.mkv
RTP Tools est un ensemble de petites applications qui peuvent être utilisées pour traiter les données RTP.
Une solution complète et multiplateforme pour enregistrer, convertir et diffuser de l'audio et de la vidéo.
$ apt install ffmpeg
Ressource:
ressource: