VoIP/SIP 渗透测试方法论,用于对 VoIP 基础设施进行安全评估。整体按阶段划分为服务发现、SIP 枚举、认证攻击、通话劫持与窃听、安全协议分析、已知漏洞攻击与 DoS 等部分。以下为各阶段资料要点。
一、用途与整体流程 VoIP 基础设施渗透测试整体决策树包括:服务发现(SIP 端口扫描 5060 UDP/TCP、5061 TLS;svmap / SIPPTS scan / Nmap 设备发现;PBX 附属服务 TFTP/HTTP/MySQL/LDAP;Google Dorks 查找暴露的 VoIP 管理界面);SIP 枚举(方法枚举、分机枚举、响应头指纹识别、电话号码 OSINT);认证攻击(在线密码爆破、离线摘要破解、SIP Digest Leak 漏洞利用、默认凭据);通话劫持与窃听(网络嗅探、ARP 欺骗 MitM 捕获 RTP、ChanSpy/ExtenSpy、RTP 注入、DTMF 码提取);安全协议分析(TLS、SRTP、ZRTP 使用情况判断);已知漏洞与攻击(RTCPBleed、Asterisk 配置错误、分机注入、Click2Call 滥用、OS/固件漏洞);DoS 攻击(SIP INVITE Flood、RTP Flood、IAX Flood)。
二、服务发现 网络扫描示例命令:
- Nmap:sudo nmap --script=sip-methods -sU -p 5060 10.10.0.0/24
- svmap:svmap 10.10.0.0/24 -p 5060-5070 [--fp](--fp 为指纹识别;默认 User-Agent 为 "friendly-scanner",容易被阻断)
- SIPPTS scan:sippts scan -i 10.10.0.0/24 -p all -r 5060-5080 -th 200 -ua Cisco [-m REGISTER]
- Metasploit:use auxiliary/scanner/sip/options_tcp(TCP)、use auxiliary/scanner/sip/options(UDP) 附属服务检查范围:69/UDP(TFTP,固件更新文件)、80/443(HTTP/HTTPS,Web 管理界面)、389(LDAP,用户信息)、3306(MySQL,数据库)、5038(Asterisk Manager,管理接口)、5222(XMPP,即时消息)、5432(PostgreSQL,数据库)。 Google Dorks 示例:Grandstream 设备、Cisco CallManager、Elastix、FreePBX 的相关查询语法。
三、SIP 枚举
- 方法枚举:sippts enumerate -i 10.10.0.10;自定义消息发送与响应分析(sippts send,可指定 INVITE、User-Agent、主被叫号码、header、sdp);WebSocket SIP(sippts wssend)。
- 分机枚举:svwar 10.10.0.10 -p5060 -e100-300 -m REGISTER;sippts exten -i 10.10.0.10 -r 5060 -e 100-200;Metasploit 的 enumerator_tcp / enumerator;enumiax 用于 IAX 协议用户名枚举。
四、认证攻击
- 在线密码爆破:svcrack 示例(svcrack -u100 -d dictionary.txt udp://10.0.0.1:5080;svcrack -u100 -r1-9999 -z4 10.0.0.1);sippts rcrack 支持多用户/多 IP。资料注明用户名可能与分机号相同,也可能不同,取决于 PBX 配置。
- 离线摘要破解:sipdump -p net-capture.pcap sip-creds.txt 加 sipcrack -w dict.txt;SIPPTS 的 dump + dcrack;tshark 从 pcap 提取 SIP 数据。
- SIP Digest Leak 漏洞:sippts leak -i 10.10.0.10。攻击流程为:攻击者发送 INVITE 到目标电话;目标振铃,有人接听后挂断;目标发送 BYE;攻击者回复 407 要求认证;目标在第二个 BYE 中发送摘要认证;随后离线破解摘要。
五、通话劫持与窃听 前提为位于同一网络或可进行 ARP 欺骗,工具包括 Wireshark、tcpdump、ucsniff(ucsniff -i eth0)。加密检查:SIP 使用 TLS 则无法看到明文;使用 SRTP/ZRTP 则 RTP 数据包加密。Asterisk 监听功能包括 ChanSpy(监听所有通话,如 exten => 333,1,ChanSpy('all',qb),拨打 333 开始监听,按 * 切换通话)与 ExtenSpy(监听指定分机、录制通话到文件,含 MixMonitor 配置示例)。RTP 注入工具:rtpinsertsound(向通话注入音频)、rtpmixsound(混合音频到通话)。DTMF 码提取(语音信箱密码)示例:multimon -a DTMF -t wac pin.wav。
六、安全协议分析 加密状态评估:SIP 信令若为明文(UDP/TCP 5060)可嗅探所有信令,若为 TLS(5061)则加密;RTP 媒体流若为明文可捕获并播放通话,SRTP 加密媒体,ZRTP 提供端到端加密。风险评估:全明文为高风险(完全可窃听),仅 SIP TLS 为中风险(媒体仍可截获),TLS + SRTP/ZRTP 为低风险。
七、已知漏洞与攻击
- RTCPBleed:RTP 代理的 NAT 穿越学习模式缺乏认证,攻击者可发送 RTP 包劫持媒体流。检测与利用命令:sippts rtpbleed、sippts rtcpbleed、sippts rtpbleedflood、sippts rtpbleedinject。
- Asterisk 配置错误:type=friend + insecure=port,invite(任何人可连接并拨打外部号码);allowguest=true(sip.conf 默认,无认证用户可拨打);默认 context 包含外部拨号规则(include => external,含 Dial(SIP/trunk/${EXTEN}));IVRS 分机长度未校验(可输入完整电话号码拨出)。
- 分机注入:旧版 Asterisk 中 ${EXTEN} 可注入,如输入 101&SIP123123123 可同时拨打 101 和 123123123,通过绕过匹配的分机名注入外部号码。
- 未授权 INVITE 检测:sippts invite 可检测未认证拨号与呼叫转移。
八、DoS 攻击 命令示例:sippts flood(SIP INVITE Flood)、sippts ping(响应时间测试)、iaxflood、inviteflood、SIPp(sipp -sf scenario.xml <target>:5060)。
九、Asterisk 后渗透 关键文件:sip.conf(SIP 用户密码)、extensions.conf(拨号计划)、manager.conf(AMI 管理密码);FreePBX 的 amportal.conf(Web 管理员密码)与 FreePBX.conf(数据库密码);Elastix 的 Elastix.conf(MySQL root / IMAP / Web 管理密码,明文);MySQL root 可能无密码。获取配置写入权限后可实现 RCE,包括 Asterisk System() 命令与 Shell() 命令。
深入参考(SIP 协议详解、SIPVicious 工具链、RTP 注入/窃听、Asterisk 配置审计)见 references/voip-techniques.md。以上步骤与命令均为资料原文所载,未提供的具体参数、版本或环境限制暂未提供。