Pentest & Bug Bounty
  • 🥷Pentest et Bug Bounty
    • 👾Pentest Methodology
    • 💸Bug Bounty Methodology
      • 📓Ecrire un bon rapport
      • ⚖️Aspect Juridique (FR)
  • 👣OSINT / Recon
    • 🧦Sock Puppet
    • 🧠Mindmaps
    • 🏢Entreprise
    • 👀Leaks
    • 👊Manuel / Dorks
      • Google dorks
      • Github dorks
      • Twitter Dorks
      • Shodan Dorks
    • 👥Réseaux sociaux (SOCMINT)
      • 🕵️Telegram OSINT
      • 👻Snapchat OSINT
      • 🤵‍♂️Linkedin OSINT
      • 🗣️Facebook OSINT
      • 🎼Tik tok OSINT
      • 📷Instagram OSINT
      • 🐦Twitter OSINT
      • 🔊Discord OSINT
    • 🖇️Domaines et Sous-domaines
    • 🚪Scan de ports / web
    • ✉️Emails
    • 🔗Réseau
    • 📷Screenshots
    • 📹Live camera
    • 🧔Reconnaissance faciale / images
    • 🌆Images
    • 🗺️Maps
    • 👁️Active Directory
    • ☁️Cloud
    • Autre
  • 🌐Pentest Web
    • ✊Brute force / Fuzzing
    • 💉Injections
      • 🍪XSS
        • PDF injection
      • 📄HTMLi
      • 📃XXE
      • 7️⃣SSTI
      • 🔢SQLi
        • 👫UNION based
        • ⏳Time based
        • 🥽Boolean based / Error Based
        • 📤Out-Of-Band
      • ↩️CRLF
      • 🐚OS injection
      • ☕Log4Shell
      • 🥠CSV
      • 🍻ESI
      • 😎XSLT
      • 💌Injections dans emails
      • 🔀ELi
        • OGNLi
    • ↪️Open redirect
    • 📁Path Traversal / LFI / RFI
    • 🔓Bypass
      • 〰️WAF / Filter bypass
      • 2️2FA
    • ☠️Charges utiles
    • 📚CMS (Content Management System)
      • WordPress
      • Joomla!
      • Magento
      • Drupal
    • 🎭SOP bypass
      • CORS
      • postMessage()
      • JSONP
    • 🖱️Clickjacking
    • ⚙️Insecure deserialization
    • ☣️Web Cache Poisoning / Deception
    • 🤝HTTP Smuggling
    • 👋OAuth
    • ⛔SAML
    • 🗝️JSON Web Token
    • 🎣CSRF
      • 🚀Cross-site WebSocket Hijacking (CSWSH)
    • 🎯IDOR
    • 🕹️SSRF
      • Cloud SSRF
      • Protocol Smuggling
    • ⚙️APIs
      • 🍽️REST
      • 📶GraphQL
    • ❓Mot de passe oublié
    • 🛒Fonctions d'achat et de facturation
    • 👽Broken authentication / register
    • 🏁Panneaux d'administration
    • ⏬Upload features
    • 🔗Broken Link Hijacking
    • 🎮Prise de contrôle de sous-domaine
    • 🛂Prise de contrôle de DNS
    • ☝️One liners
    • 🚧Misconfigurations
    • 🗿Analyse statique
      • PHP
      • Ruby On Rails
      • Perl
      • JAVA
      • Javascript
      • Python
      • Golang
      • .NET
    • 🪣AWS S3
    • 🤖Captcha
    • 🪞Race conditions
    • ☄️.git exposé
    • 💭Business logic
    • 🥡Prototype pollution
    • 💣Dependency confusion
    • 🛑DoS
      • 🤯ReDoS
      • 👏Hash flooding
      • 🧨Cookie bomb
    • Autre
      • Flask
      • Symphony
      • Spring Boot
      • Django
      • Jenkins
  • 🌩️Pentest Cloud
    • IaC (Infrastructure as Code)
      • Terraform
      • Helm
      • Kustomize
    • AWS
      • Enumeration
    • Azure
      • Entra ID
      • Azure Resource Manager (ARM)
        • Enumeration
    • GCP
      • GCP IAM
      • Authentification
      • Enumeration
    • Kubernetes
  • 🕸️Pentest Réseau
    • 🪡Protocoles réseau
    • 📡Wifi
    • 🔋BLE
    • 📍VPN
  • 🗂️Pentest AD
    • 👺GPP
    • ➡️Mouvements latéraux
      • 🔪Pass The Hash
      • 🗡️Over Pass The Hash
    • 📜ADCS
  • 📱Pentest Mobile
    • 🤖Android
      • 👾Méthodologie
      • 🌳Setup environnement
      • 🍇Collecte d'informations
      • 🔠Enumeration des données locales
      • 🔙Reverse engineering
        • 🪢Dé-obfuscation
      • ⛰️Analyse statique (Android)
      • 🐞Debug
      • 🎰Stockage de données non sécurisé
        • 📰Logs
        • 🤝Shared Preferences
        • 🔤Strings
        • 🗄️SQLite DB
        • 🗃️Realm DB
        • 🧠Mémoire
        • 📍Copy/Paste buffer caching
        • ⌨️Keyboard press caching
        • 🔙Backup
        • Carte SD
      • 🌩️Firebase/Appspot misconfig
      • 🔗Deeplinks vulns
        • Interception de contenu
        • WebView hijacking (via deeplink)
        • Invalid Digital assets links
      • 🖼️WebView vulns
        • WebView Hijacking
        • Exfiltration de données
        • RXSS
        • Vol de token
      • Guides outils
        • ⛏️Outil Drozer
          • Injections SQL (Android)
          • Path traversal (Android)
        • 🔬Outil Objection
        • 🪝Outil Frida
        • Outil Medusa / Mango
      • Bypass
        • 📲Contournement de détection d'emulateur
          • 📂Fichiers d'emulateurs
          • 🙋‍♂️Network Operator Name
        • 🦷Contournement des détections de rootage
          • 🧮Root management
          • 🗝️Clé de signature du noyau
          • 🧊Props dangereux
          • 🦸‍♂️Binaire "su"
          • ❌Permissions sur les repertoires
        • ☝️Contournement des protections biometriques
        • 📜SSL pinning bypass
        • Contournement de code PIN
      • 🔳Lecteur de code QR/EAN/Barres...
      • 💔Injection de backdoor
      • 🪧Task hijacking
      • 🎭Overlay attacks
        • Tapjacking
        • Invisible Keyboard
      • 📵Résilience
        • ⌨️Third Party Keyboards
        • ©️Allowed Copy/Paste on sensitive fields
        • 🛤️Background screen caching
        • 🖋️Schémas de signature
        • ⬆️In-App updates
      • 🤯Corruption de Mémoire
    • 🍏iOS
      • 🥅Méthodologie
      • 🧱Setup environnement (iOS)
      • ⏮️Reverse engineering (iOS)
      • 🏔️Analyse statique (iOS)
      • 🧿Contournement de détection de Jailbreak
      • 📌SSL pinning bypass (iOS)
      • 👇Contournement d'authentification biométrique
      • 🐛Contournement d'anti-Hooking/Debugging
      • 🙈Stockage de données non sécurisé (iOS)
        • 💭Mémoire (iOS)
        • 🏓Copy/Paste buffer caching (iOS)
        • 🍪Cookies (iOS)
        • 🗞️Logs (iOS)
        • ⌨️Cache du clavier (IOS)
        • Backup (IOS)
      • 📱Background screen caching
      • 🧑‍🚀WebView vulns (iOS)
      • Deeplinks vulns (iOS)
      • Lecteur de code QR
      • Firebase misc
  • 👷Pentest physique
    • 🔐Crochetage
    • 💳RFID
    • ⚙️Equipements
    • 💾Hardware Hacking
      • 📈UART
      • 🧪JTAG
      • ⚡SWD
      • 🪢SPI
      • 🚌I²C
      • 🔴Fault Injection
      • Side-Channel Attacks
    • 🐣Firmware hacking
  • 🖨️Pentest IoT
    • ⏪Replay de stream camera
    • 🗣️Assistants vocaux
    • 📹Camera IP
    • ⬇️DoS
    • 🖨️Imprimantes
    • 🎬Chromecast
  • 💀Hacking protocols
    • 😩Telnet - port 23
    • 🔐SSH - port 22
    • 📤FTP - port 21
    • ❔Whois - port 43
    • 👉DNS - port 53
    • 🐕‍🦺Kerberos - port 88
    • 💼SNMP - ports 161-162
    • 📨SMB - ports 445-139
    • 📧SMTP - ports 25-587
    • 🎦RTSP - port 554
    • 🔎MS-RPC - ports 135-593
    • ➕Rsync - port 873
    • 🔢MS-SQL - port 1433
    • 🏗️Docker - port 2375
    • 🔡MySQL - port 3306
    • 📝LDAP - ports 389, 636, 3268, 3269
    • 🖥️RDP - port 3389
    • ⌨️VNC - ports 5800,5801,5900,5901
  • 😈Ingénierie sociale
    • 🧠Concepts / Principes / Attaques
    • 🪧Ethique
    • 👤Profils comportementaux
  • 🔓Crack
  • 🛠️Autres outils utiles
    • 🚿Sandbox / Sanitizer
    • 🔤Générateurs de wordlists personnalisées
  • 🌜Post-Exploitation
    • 👔Énumération /Élévation de privilèges
      • 🐧Linux
        • CVE-2022-0847 (Dirty Pipe)
        • CVE 2021-4034 (PwnKit)
        • CVE 2021-3560 (Polkit)
      • 🪟Windows
        • 🖨️PrintNightmare
        • 🖨️SpoolFool
        • 🆔Usurpation de SAMAccountName
        • ⏲️Scheduled task/job (T1573.005)
        • 🐝HiveNightmare
        • 🔑Stored Credentials
        • 🎩SeImpersonatePrivilege
        • 🎒SeBackupPrivilege
        • 🍞Unquoted Service Path
        • 🧩DLL Hijacking
        • ©️SeBackupPrivilege
      • ⛴️Docker
    • 👻Effacement des traces
    • ⚓Persistance / Downloaders
    • 🛡️Defense evasion
    • 📦Exfiltration de Données
  • 🔎Forensic
    • 💡Méthodologie
    • 📺Live forensic
    • 💻Mémoire non volatile
    • 🕊️Mémoire volatile
    • 📄File forensic
Propulsé par GitBook
Sur cette page
  • Introduction
  • Protocoles de streaming
  • Anatomie du trafic RTSP/RTP
  • Extraire le stream vidéo
  • Falsification du SDP
  • Lecture du fichier rtpdump
  • Outils
  • RTP Tools
  • FFmpeg

Cet article vous a-t-il été utile ?

  1. Pentest IoT

Replay de stream camera

PrécédentPentest IoTSuivantAssistants vocaux

Dernière mise à jour il y a 1 an

Cet article vous a-t-il été utile ?

Introduction

Prérequis: position de MITM (Man-In-The-Middle), voir attaques et

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.

Protocoles de streaming

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é.

SRTP (Secure Real-Time Transport Protocol): Protocole RTP sécurisé avec une couche de chiffrement.

Le protocole SRTP est plus rare car la couche de chiffrement apportée ralentie considérablement la rapidité du protocole (perte de qualité) et n'est pas toujours compatible avec la caméra.

Anatomie du trafic RTSP/RTP

Les protocoles RTSP et RTP fonctionnent sous forme de session. Voici les différentes étapes par lesquelles ils passent:

  1. 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)

  2. 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).

  3. 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).

  4. Puis il envoie une requête RTSP PLAY qui va tout simplement demander au serveur de lancer le stream.

Extraire le stream vidéo

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:

v=0
o=<session owner> <session ID> IN IPV4 <IP>
s=<session name>
c=IN IPV4 <listening network address>
t=0 0
m=video <port> RTP/AVP ...
a=attribut 1
a=attribut 2
a=attribut 3

Les paramètres SDP:

V : Version du protocole SDP

O : Origine de la session

I : Information sur la session

U : URI (Uniform Ressource Identifier)

E : E-mail P : Téléphone

B : Bande passante requise

T : Timer (début et fin de la session)

M : Media ( Type, format, protocole de transport)

A : Attribut (contenant plusieurs informations : Codec, Ptime, fmtp, Silence suppression……

Falsification du SDP

On va ensuite modifier le packet SDP extrait pour avoir un résultat comme celui-ci:

v=0
c=IN IPV4 127.0.0.1
m=video <wanted port> RTP/AVP ...
a=attribut 1
a=attribut 2
a=attribut 3

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).

Lecture du fichier 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

Outils

RTP Tools

RTP Tools est un ensemble de petites applications qui peuvent être utilisées pour traiter les données RTP.

Installation

$ git clone https://github.com/cu-irt/rtptools.git
$ cd rtptools
$ ./configure && make

FFmpeg

Une solution complète et multiplateforme pour enregistrer, convertir et diffuser de l'audio et de la vidéo.

Installation

$ apt install ffmpeg

Ressource:

ressource:

🖨️
⏪
https://github.com/irtlab/rtptools/
https://ffmpeg.org/
ARP poisoning
DHCP spoofing