hacktricks/network-services-pentesting/pentesting-voip/basic-voip-protocols/README.md

16 KiB

Grundlegende VoIP-Protokolle

{% hint style="success" %} Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Unterstützen Sie HackTricks
{% endhint %} {% endhint %}

Signalisierungsprotokolle

SIP (Session Initiation Protocol)

Dies ist der Industriestandard, für weitere Informationen siehe:

{% content-ref url="sip-session-initiation-protocol.md" %} sip-session-initiation-protocol.md {% endcontent-ref %}

MGCP (Media Gateway Control Protocol)

MGCP (Media Gateway Control Protocol) ist ein Signalisierungs- und Anrufkontrollprotokoll, das in RFC 3435 beschrieben ist. Es arbeitet in einer zentralisierten Architektur, die aus drei Hauptkomponenten besteht:

  1. Call Agent oder Media Gateway Controller (MGC): Das Hauptgateway in der MGCP-Architektur ist verantwortlich für die Verwaltung und Kontrolle der Medien-Gateways. Es verwaltet die Prozesse zur Anrufeinrichtung, -änderung und -beendigung. Der MGC kommuniziert mit den Medien-Gateways über das MGCP-Protokoll.
  2. Media Gateways (MGs) oder Slave Gateways: Diese Geräte konvertieren digitale Medienströme zwischen verschiedenen Netzwerken, wie traditioneller leitungsvermittelter Telefonie und paketvermittelten IP-Netzwerken. Sie werden vom MGC verwaltet und führen die von ihm empfangenen Befehle aus. Medien-Gateways können Funktionen wie Transkodierung, Paketierung und Echo-Unterdrückung umfassen.
  3. Signalisierungs-Gateways (SGs): Diese Gateways sind verantwortlich für die Umwandlung von Signalisierungsnachrichten zwischen verschiedenen Netzwerken, die eine nahtlose Kommunikation zwischen traditionellen Telefonsystemen (z. B. SS7) und IP-basierten Netzwerken (z. B. SIP oder H.323) ermöglichen. Signalisierungs-Gateways sind entscheidend für die Interoperabilität und stellen sicher, dass Anrufkontrollinformationen ordnungsgemäß zwischen den verschiedenen Netzwerken kommuniziert werden.

Zusammenfassend zentralisiert MGCP die Anrufkontrolllogik im Anrufagenten, was die Verwaltung von Medien- und Signalisierungs-Gateways vereinfacht und eine bessere Skalierbarkeit, Zuverlässigkeit und Effizienz in Telekommunikationsnetzen bietet.

SCCP (Skinny Client Control Protocol)

Skinny Client Control Protocol (SCCP) ist ein proprietäres Signalisierungs- und Anrufkontrollprotokoll, das im Besitz von Cisco Systems ist. Es wird hauptsächlich verwendet für die Kommunikation zwischen Cisco Unified Communications Manager (ehemals bekannt als CallManager) und Cisco IP-Telefonen oder anderen Cisco Sprach- und Videoendpunkten.

SCCP ist ein leichtgewichtiges Protokoll, das die Kommunikation zwischen dem Anrufkontrollserver und den Endgeräten vereinfacht. Es wird als "Skinny" bezeichnet, weil es ein minimalistisches Design und reduzierte Bandbreitenanforderungen im Vergleich zu anderen VoIP-Protokollen wie H.323 oder SIP hat.

Die Hauptkomponenten eines SCCP-basierten Systems sind:

  1. Anrufkontrollserver: Dieser Server, typischerweise ein Cisco Unified Communications Manager, verwaltet die Prozesse zur Anrufeinrichtung, -änderung und -beendigung sowie andere Telefoniefunktionen wie Anrufweiterleitung, Anrufübertragung und Anrufhalten.
  2. SCCP-Endpunkte: Dies sind Geräte wie IP-Telefone, Videokonferenzsysteme oder andere Cisco Sprach- und Videoendpunkte, die SCCP verwenden, um mit dem Anrufkontrollserver zu kommunizieren. Sie registrieren sich beim Server, senden und empfangen Signalisierungsnachrichten und befolgen die Anweisungen des Anrufkontrollservers zur Anrufbearbeitung.
  3. Gateways: Diese Geräte, wie Sprachgateways oder Medien-Gateways, sind verantwortlich für die Umwandlung von Medienströmen zwischen verschiedenen Netzwerken, wie traditioneller leitungsvermittelter Telefonie und paketvermittelten IP-Netzwerken. Sie können auch zusätzliche Funktionen wie Transkodierung oder Echo-Unterdrückung umfassen.

SCCP bietet eine einfache und effiziente Kommunikationsmethode zwischen Cisco-Anrufkontrollservern und Endgeräten. Es ist jedoch zu beachten, dass SCCP ein proprietäres Protokoll ist, was die Interoperabilität mit Nicht-Cisco-Systemen einschränken kann. In solchen Fällen können andere standardisierte VoIP-Protokolle wie SIP geeigneter sein.

H.323

H.323 ist eine Protokoll-Suite für die Multimedia-Kommunikation, einschließlich Sprache, Video und Datenkonferenzen über paketvermittelte Netzwerke, wie IP-basierte Netzwerke. Es wurde von der International Telecommunication Union (ITU-T) entwickelt und bietet einen umfassenden Rahmen für die Verwaltung von Multimedia-Kommunikationssitzungen.

Einige wichtige Komponenten der H.323-Suite sind:

  1. Terminals: Dies sind Endgeräte, wie IP-Telefone, Videokonferenzsysteme oder Softwareanwendungen, die H.323 unterstützen und an Multimedia-Kommunikationssitzungen teilnehmen können.
  2. Gateways: Diese Geräte konvertieren Medienströme zwischen verschiedenen Netzwerken, wie traditioneller leitungsvermittelter Telefonie und paketvermittelten IP-Netzwerken, und ermöglichen die Interoperabilität zwischen H.323 und anderen Kommunikationssystemen. Sie können auch zusätzliche Funktionen wie Transkodierung oder Echo-Unterdrückung umfassen.
  3. Gatekeeper: Dies sind optionale Komponenten, die Anrufkontroll- und Verwaltungsdienste in einem H.323-Netzwerk bereitstellen. Sie führen Funktionen wie Adressübersetzung, Bandbreitenmanagement und Zugangssteuerung aus, um Netzwerkressourcen zu verwalten und zu optimieren.
  4. Multipoint Control Units (MCUs): Diese Geräte erleichtern Mehrpunktkonferenzen, indem sie Medienströme von mehreren Endpunkten verwalten und mischen. MCUs ermöglichen Funktionen wie Video-Layout-Kontrolle, sprachaktiviertes Umschalten und kontinuierliche Präsenz, wodurch es möglich wird, groß angelegte Konferenzen mit mehreren Teilnehmern zu veranstalten.

H.323 unterstützt eine Reihe von Audio- und Video-Codecs sowie andere ergänzende Dienste wie Anrufweiterleitung, Anrufübertragung, Anrufhalten und Anrufwarteschleife. Trotz seiner weit verbreiteten Akzeptanz in den frühen Tagen von VoIP wurde H.323 allmählich durch modernere und flexiblere Protokolle wie das Session Initiation Protocol (SIP) ersetzt, das eine bessere Interoperabilität und einfachere Implementierung bietet. H.323 bleibt jedoch in vielen Altsystemen im Einsatz und wird weiterhin von verschiedenen Geräteanbietern unterstützt.

IAX (Inter Asterisk eXchange)

IAX (Inter-Asterisk eXchange) ist ein Signalisierungs- und Anrufkontrollprotokoll, das hauptsächlich für die Kommunikation zwischen Asterisk PBX (Private Branch Exchange) Servern und anderen VoIP-Geräten verwendet wird. Es wurde von Mark Spencer, dem Schöpfer der Asterisk Open-Source-PBX-Software, als Alternative zu anderen VoIP-Protokollen wie SIP und H.323 entwickelt.

IAX ist bekannt für seine Einfachheit, Effizienz und einfache Implementierung. Einige wichtige Merkmale von IAX sind:

  1. Einzelner UDP-Port: IAX verwendet einen einzigen UDP-Port (4569) für sowohl Signalisierungs- als auch Mediendatenverkehr, was die Firewall- und NAT-Überwindung vereinfacht und die Bereitstellung in verschiedenen Netzwerkumgebungen erleichtert.
  2. Binäres Protokoll: Im Gegensatz zu textbasierten Protokollen wie SIP ist IAX ein binäres Protokoll, das den Bandbreitenverbrauch reduziert und es effizienter macht, Signalisierungs- und Mediendaten zu übertragen.
  3. Trunking: IAX unterstützt Trunking, das es ermöglicht, mehrere Anrufe in einer einzigen Netzwerkverbindung zu kombinieren, wodurch der Overhead reduziert und die Bandbreitennutzung verbessert wird.
  4. Native Verschlüsselung: IAX hat integrierte Unterstützung für Verschlüsselung, verwendet Methoden wie RSA für den Schlüsselaustausch und AES für die Medienverschlüsselung, um eine sichere Kommunikation zwischen Endpunkten zu gewährleisten.
  5. Peer-to-Peer-Kommunikation: IAX kann für die direkte Kommunikation zwischen Endpunkten ohne die Notwendigkeit eines zentralen Servers verwendet werden, was eine einfachere und effizientere Anrufweiterleitung ermöglicht.

Trotz seiner Vorteile hat IAX einige Einschränkungen, wie den primären Fokus auf das Asterisk-Ökosystem und eine geringere Verbreitung im Vergleich zu etablierten Protokollen wie SIP. Daher ist IAX möglicherweise nicht die beste Wahl für die Interoperabilität mit Nicht-Asterisk-Systemen oder -Geräten. Für diejenigen, die im Asterisk-Umfeld arbeiten, bietet IAX jedoch eine robuste und effiziente Lösung für die VoIP-Kommunikation.

Übertragungs- & Transportprotokolle

SDP (Session Description Protocol)

SDP (Session Description Protocol) ist ein textbasiertes Format, das verwendet wird, um die Eigenschaften von Multimedia-Sitzungen, wie Sprache, Video oder Datenkonferenzen, über IP-Netzwerke zu beschreiben. Es wurde von der Internet Engineering Task Force (IETF) entwickelt und ist in RFC 4566 definiert. SDP behandelt nicht die tatsächliche Medienübertragung oder die Sitzungsherstellung, sondern wird in Verbindung mit anderen Signalisierungsprotokollen, wie SIP (Session Initiation Protocol), verwendet, um Informationen über die Medienströme und deren Attribute auszuhandeln und auszutauschen.

Einige wichtige Elemente von SDP sind:

  1. Sitzungsinformationen: SDP beschreibt die Einzelheiten einer Multimedia-Sitzung, einschließlich Sitzungsname, Sitzungsbeschreibung, Startzeit und Endzeit.
  2. Medienströme: SDP definiert die Eigenschaften von Medienströmen, wie den Medientyp (Audio, Video oder Text), das Transportprotokoll (z. B. RTP oder SRTP) und das Medienformat (z. B. Codec-Informationen).
  3. Verbindungsinformationen: SDP liefert Informationen über die Netzwerkadresse (IP-Adresse) und die Portnummer, an die die Medien gesendet oder empfangen werden sollen.
  4. Attribute: SDP unterstützt die Verwendung von Attributen, um zusätzliche, optionale Informationen über eine Sitzung oder einen Medienstrom bereitzustellen. Attribute können verwendet werden, um verschiedene Funktionen wie Verschlüsselungsschlüssel, Bandbreitenanforderungen oder Mediensteuerungsmechanismen anzugeben.

SDP wird typischerweise im folgenden Prozess verwendet:

  1. Eine initiierende Partei erstellt eine SDP-Beschreibung der vorgeschlagenen Multimedia-Sitzung, einschließlich der Einzelheiten der Medienströme und deren Attribute.
  2. Die SDP-Beschreibung wird an die empfangende Partei gesendet, normalerweise eingebettet in eine Signalisierungsprotokollnachricht wie SIP oder RTSP.
  3. Die empfangende Partei verarbeitet die SDP-Beschreibung und kann basierend auf ihren Fähigkeiten die vorgeschlagene Sitzung akzeptieren, ablehnen oder ändern.
  4. Die endgültige SDP-Beschreibung wird als Teil der Signalisierungsprotokollnachricht an die initiierende Partei zurückgesendet, um den Verhandlungsprozess abzuschließen.

Die Einfachheit und Flexibilität von SDP machen es zu einem weit verbreiteten Standard zur Beschreibung von Multimedia-Sitzungen in verschiedenen Kommunikationssystemen und spielen eine entscheidende Rolle bei der Einrichtung und Verwaltung von Echtzeit-Multimedia-Sitzungen über IP-Netzwerke.

RTP / RTCP / SRTP / ZRTP

  1. RTP (Real-time Transport Protocol): RTP ist ein Netzwerkprotokoll, das für die Bereitstellung von Audio- und Videodaten oder anderen Echtzeitmedien über IP-Netzwerke entwickelt wurde. Entwickelt von der IETF und definiert in RFC 3550, wird RTP häufig mit Signalisierungsprotokollen wie SIP und H.323 verwendet, um Multimedia-Kommunikation zu ermöglichen. RTP bietet Mechanismen für Synchronisation, Sequenzierung und Zeitstempelung von Medienströmen, um eine reibungslose und zeitgerechte Medienwiedergabe zu gewährleisten.
  2. RTCP (Real-time Transport Control Protocol): RTCP ist ein Begleitprotokoll zu RTP, das zur Überwachung der Dienstgüte (QoS) verwendet wird und Feedback zur Übertragung von Medienströmen bereitstellt. Definiert im selben RFC 3550 wie RTP, tauscht RTCP regelmäßig Steuerpakete zwischen den Teilnehmern einer RTP-Sitzung aus. Es teilt Informationen wie Paketverlust, Jitter und Round-Trip-Zeit mit, was bei der Diagnose und Anpassung an Netzwerkbedingungen hilft und die Gesamtqualität der Medien verbessert.
  3. SRTP (Secure Real-time Transport Protocol): SRTP ist eine Erweiterung von RTP, die Verschlüsselung, Nachrichtenauthentifizierung und Wiedergabeschutz für Medienströme bereitstellt und eine sichere Übertragung sensibler Audio- und Videodaten gewährleistet. Definiert in RFC 3711, verwendet SRTP kryptografische Algorithmen wie AES zur Verschlüsselung und HMAC-SHA1 zur Nachrichtenauthentifizierung. SRTP wird häufig in Kombination mit sicheren Signalisierungsprotokollen wie SIP über TLS verwendet, um End-to-End-Sicherheit in der Multimedia-Kommunikation zu gewährleisten.
  4. ZRTP (Zimmermann Real-time Transport Protocol): ZRTP ist ein kryptografisches Schlüsselvereinbarungsprotokoll, das End-to-End-Verschlüsselung für RTP-Medienströme bereitstellt. Entwickelt von Phil Zimmermann, dem Schöpfer von PGP, wird ZRTP in RFC 6189 beschrieben. Im Gegensatz zu SRTP, das auf Signalisierungsprotokollen für den Schlüsselaustausch angewiesen ist, wurde ZRTP entwickelt, um unabhängig vom Signalisierungsprotokoll zu arbeiten. Es verwendet Diffie-Hellman-Schlüsselaustausch, um ein gemeinsames Geheimnis zwischen den kommunizierenden Parteien zu etablieren, ohne vorheriges Vertrauen oder eine Public-Key-Infrastruktur (PKI) zu erfordern. ZRTP umfasst auch Funktionen wie Short Authentication Strings (SAS), um sich gegen Man-in-the-Middle-Angriffe zu schützen.

Diese Protokolle spielen eine wesentliche Rolle bei der Bereitstellung und Sicherung der Echtzeit-Multimedia-Kommunikation über IP-Netzwerke. Während RTP und RTCP die tatsächliche Medienübertragung und Qualitätsüberwachung behandeln, stellen SRTP und ZRTP sicher, dass die übertragenen Medien vor Abhören, Manipulation und Wiederholungsangriffen geschützt sind.

{% hint style="success" %} Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Unterstützen Sie HackTricks
{% endhint %} {% endhint %}