AI学习专题库RTC 与网络 / 实操指南 ↗
TOOL FIELD GUIDE / 01

SIPVicious把 SIP 内部测试
做明白。

从发现服务,到检查分机与认证。
每条命令都说明用途、参数,以及结果能证明什么。

免费开源 OSS命令基线 0.3.8核对于 2026.09.10
05工具职责
06内部测试场景
07回环检查通过

先记住一句话:OSS 主要测 SIP 信令,
RTP 媒体质量需要另外验证。

01 / GUIDE

先搞清楚:它能测什么

SIPVicious OSS 是 Enable Security 发布的免费开源 VoIP 安全测试工具集,许可为 GPL-2.0-or-later。对产品内部测试最直接的价值,是主动发送 SIP 请求,检查“哪里有服务、哪些分机可被识别、测试账户能否被少量候选口令认证”,并保存可复查的结果。[S1][S2]

SIP · 信令

找服务、查分机、验认证

OPTIONS / REGISTER / INVITE
回答“服务怎么回应、身份怎么校验”。

OSS 的核心范围
RTP · 媒体

声音有没有到、质量怎样

音频载荷 / 序号 / 时间戳 / RTCP
回答“有没有声音、是否丢包或抖动”。

需要另外的通话与抓包工具
工具作用典型产物不能据此得出
svmap发现会响应 SIP 的地址和 UDP 端口主机、端口、User-Agent / Server 字段没有响应就一定没有服务;横幅就是真实版本
svwar比较不同分机的响应,识别可枚举的账户线索reqauth / noauth / weird 分类列出的分机一定已注册、正在通话或能拨外线
svcrack对指定测试账户尝试候选口令,处理 SIP Digest 认证找到的候选口令或未找到结果穷尽了所有口令;通过了完整账户安全验收
svreport列出、导出、统计和管理保存的测试会话CSV / TXT / XML / PDF / 屏幕输出输出包含通话质量、RTP 或完整 PCAP
svcrash向旧版 svwar / svcrack 发响应,触发其历史解析缺陷旧版扫描器中断的历史行为对 PBX 做通用崩溃测试,或长期防护方案

如果目标是“注册失败”“分机暴露”“弱口令检查”,本工具合适。如果目标是“单向音频”“杂音”“RTP 丢包”“并发通话容量”,分别配合 Sipnab / Wireshark、真实软电话与 SIPp;本文末尾给出选择路径。

02 / GUIDE

安装与版本:先让命令可复现

本指南锁定 0.3.8:PyPI 上传日期为 2026-07-10;GitHub 对应提交为 485d16cf47023da050ecd73ccb92637725fdd8da,提交说明为 Release 0.3.8。官方安装元数据要求 Python ≥ 3.6;本次源码命令验证使用 Python 3.9。未把 Python 最低版本视为推荐的长期运行环境。[S1][S2][S3]

推荐安装:独立 Python 环境

mkdir sipvicious-lab
cd sipvicious-lab
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install "sipvicious==0.3.8"
sipvicious_svmap --version
sipvicious_svmap --help

Linux / macOS 使用上述写法;Windows 优先使用你已有的 Linux 测试虚拟机或 WSL 环境,并核对 UDP 和 NAT 路径。激活环境后再运行后面的命令。固定版本方便同事复现。

怎样判断结果

版本输出应包含 0.3.8。若找不到命令,先检查是否在同一个虚拟环境里安装和运行。

Kali 安装:辨认短命令

sudo apt update
sudo apt install sipvicious
svmap --version
svmap --help

这是 Kali 官方工具页提供的安装路径;发行版命令通常是 svmap / svwar / svcrack / svreport / svcrash。当前网页仍标示 0.3.3,实际软件源版本以安装后的输出为准。[S9]

怎样判断结果

本文后续统一使用 sipvicious_sv*。如果安装包只提供 sv*,替换命令前缀,并逐项核对 --help;不要假定旧包支持 0.3.8 的全部行为。

源码复现:固定到本次核对的提交

git clone https://github.com/EnableSecurity/sipvicious.git
cd sipvicious
git checkout 485d16cf47023da050ecd73ccb92637725fdd8da
python3 -m pip install .
sipvicious_svmap --version

在已激活的专用虚拟环境中执行。源码安装与 PyPI 安装二选一即可。README 已统一为带前缀的命令;python -m sipvicious.svmap 则是模块运行方式。

安装相关问题处理方式
svcrash 提示 No module named scapyscapy 是这一历史工具的可选依赖。确实要在隔离旧版扫描器实验里使用时,再运行 python3 -m pip install scapy;基础服务发现与分机检查不需要它。
导出 PDF 提示缺少 ReportLab先导出 CSV 或 TXT。需要 PDF 时才在同一虚拟环境安装 reportlab。
externally-managed-environment创建并激活 venv;无需修改系统 Python 的包管理保护。
装了包却运行另一版本用 command -v sipvicious_svmap 和 python3 -m pip show sipvicious 对照路径;必要时直接调用 .venv/bin/sipvicious_svmap。
03 / GUIDE

第一轮:按这四步做内部测试

示例环境:你拥有并已准备好的测试 PBX 为 192.168.56.10,监听 UDP 5060;测试机可路由到它。1001 为需要认证的测试分机,1002 为对照账户,1003 为预先确认不存在的号码。这些地址和账户只是示例,执行前换成内部测试资产。svwar / svcrack 会产生认证请求,测试分机应与真实用户、付费外线隔离。

  1. 发现服务svmap → 确认目标有 SIP 响应
  2. 检查枚举svwar → 比较已知与不存在分机
  3. 验证认证svcrack → 单账户、少量候选
  4. 导出复核svreport → 对照服务端日志

第 1 步 · 对一个已知 PBX 发 OPTIONS

sipvicious_svmap -p 5060 -m OPTIONS -t 0.1 \
  -s lab-map-01 192.168.56.10

-p 指定目标 UDP 端口;-m OPTIONS 请求能力/响应;-t 是 select() 等待参数;-s 保存会话。每次实验使用一个新的会话名。

怎样判断结果

出现目标 IP:端口和 SIP 横幅,说明此路径收到了 SIP 响应。401 / 403 等响应也可说明有 SIP 服务;不等于能够注册或呼叫。

第 2 步 · 只检查三条测试分机

sipvicious_svwar -p 5060 -m REGISTER -e 1001-1003 \
  -t 0.1 --maximumtime 10 -s lab-war-01 192.168.56.10

-e 是 svwar 的分机范围;REGISTER 是其默认方法。--maximumtime 10 表示持续未收到响应时的发送时限,不是整次任务必定 10 秒结束。工具还会先发送不存在号码的探测,因此发包数不只等于三条分机。

怎样判断结果

1001 可能显示 reqauth;对照配置若不要求认证,1002 可能显示 noauth;1003 应与已知号码存在可解释差异。若所有号码都收到同样的认证挑战,工具可能停止,不应把 --force 得到的列表当成真实目录。

第 3 步 · 用两个实验候选验证一个账户

printf '%s\n' 'wrong-demo' 'lab-demo-only' > lab-passwords.txt
sipvicious_svcrack -p 5060 -u 1001 -d lab-passwords.txt \
  -t 0.1 --maximumtime 10 -s lab-auth-01 192.168.56.10

仅用于已经配置为演示口令 lab-demo-only 的测试账户。-u 是认证用户名;-d 是候选口令文件。此演示口令不可用于真实业务。工具默认还可能尝试“用户名本身作为口令”,总请求数不能机械等同于文件行数。

怎样判断结果

找到演示口令是测试夹具的阳性对照。换成正式口令策略后的受测配置时,两个候选不应成功;“未找到”只证明这组候选在本次条件下没有成功。

第 4 步 · 列出会话并导出服务清单

sipvicious_svreport list -t svmap
sipvicious_svreport export -t svmap -s lab-map-01 \
  -f csv -o lab-map-01.csv -n
sipvicious_svreport export -t svwar -s lab-war-01 \
  -f txt -o lab-war-01.txt

-t 在 svreport 中是“会话类型”,与扫描器里的等待时间不是同一个含义。-s 必须匹配已保存会话;-n 关闭 svmap 报告的反向 DNS 查询。认证结果可能包含口令,内部留档时按测试凭证处理。

怎样判断结果

能看到保存的会话,CSV 中包含目标地址与横幅。CSV 导出可能不带列名,导入表格前检查首行;文中本机验证实际得到的就是无表头 CSV。

04 / GUIDE

命令详解:按任务查用法

下面是常用命令与边界参数。浏览器只展示和复制文本,不向目标发送 SIP 请求。过滤器仅影响本节的命令卡,参数表会继续保留。

几个参数名称相同,含义却不同

参数svmap / svwar / svcrack容易用错的地方
-p / --port目标端口;svmap 还接受逗号列表和端口范围-p 5061 仍是 UDP,不会自动变成 TLS
-P / --localport测试机的源端口,默认 5060;被占用时改为未占用高端口大写 P;不要误改成目标端口
-b / --bindingip本地套接字绑定的 IP,必须是这台测试机拥有的地址它决定本机发包接口,不是 PBX 地址
-x / --externalip写入 SIP 报文的本机/外部地址,用于多网卡或 NAT 场景不创建 NAT 映射,也不开放防火墙;必须与真实回程一致
-t / --timeoutselect() 等待时间,单位秒;默认 0.005可帮助放慢空闲时发送、等待响应,但不是严格 packets/s 限速,也不是 SIP 总超时
-s / --save;--resume保存会话;恢复未完成会话通常保存在当前用户的 ~/.sipvicious/;会话名冲突时使用新名字
-v / -vv;-q增加日志;安静模式需要证据时配合 -s,别只保留空终端输出
-m / --methodsvmap 默认 OPTIONS;svwar、svcrack 默认 REGISTERINVITE 可能让真实终端响铃并进入呼叫流程
-dsvmap:显示收到的 SIP 报文;svwar / svcrack:读字典svwar 的报文调试用 --debug;svcrack 可用 -vv 查看日志
-esvmap:请求目标分机;svwar:分机范围;svcrack:与认证用户名不同的分机svcrack 的数字候选口令范围是 -r
-c扫描器中为 SIP 紧凑头格式;svreport 中为列表计数默认完整头更便于排障;别跨工具复制参数

svmap · 同一台设备上的几个 SIP 端口

sipvicious_svmap -p 5060,5080-5082 -m OPTIONS \
  -t 0.1 -s lab-ports-01 192.168.56.10

仅查看同一台内部设备的四个 UDP 端口,用于确认容器映射、测试实例或迁移后的监听位置。

怎样判断结果

结果按 IP:端口区分;不响应的端口不应直接判为关闭。

svmap · 显式资产清单

printf '%s\n' '192.168.56.10' '192.168.56.11' > lab-hosts.txt
sipvicious_svmap -I lab-hosts.txt -p 5060 \
  -t 0.1 -s lab-inventory-01

-I(大写 i)读取目标文本,每行一个主机或范围;文件应仅含本次内部资产。小写 -i 读取的是此前 svmap 会话中发现的 IP。

svmap · 复测前一次发现的主机

sipvicious_svmap -i lab-map-01 -p 5060 \
  -s lab-recheck-01 -t 0.1

适合补丁、ACL 或网络变更后的回归。输入只来自原发现列表,不代表新上线资产也已经被覆盖。

svmap · 看 SIP 响应与本地端口

sipvicious_svmap -p 5060 -P 15070 -m OPTIONS \
  -d -v 192.168.56.10

-P 改本地源端口,避免与本机软电话的 5060 冲突;-d 打印收到的报文,检查 Via、From、To、Call-ID 和状态码。

怎样判断结果

服务横幅由对端提供,可能属于前置 SBC / Proxy;要结合路由和服务器日志确认设备身份。

svmap · 指定本地网卡地址

sipvicious_svmap -b 192.168.56.20 -x 192.168.56.20 \
  -P 15070 -p 5060 -t 0.1 192.168.56.10

仅当测试机确实拥有 192.168.56.20 时使用。本例是同一测试网的多网卡选择;NAT 场景的 -x 必须换成有真实回程映射的地址。

svmap · IPv6 地址与 zsh 引号

sipvicious_svmap -6 -p 5060 '2001:db8::10'

2001:db8::/32 是文档示例地址,执行前换成内部实验地址。svmap 使用 IPv6 字面量和 -p,不使用 udp:// URI;带方括号时也建议引号,避免 shell 通配展开。

svwar · 从文件读分机、指定 SIP 域

printf '%s\n' '1001' '1002' '1003' > lab-extensions.txt
sipvicious_svwar -d lab-extensions.txt --domain lab.invalid \
  -p 5060 -m REGISTER -t 0.1 192.168.56.10

网络目标仍是 IP;--domain 改 SIP 消息使用的域。用于按域区分租户的 PBX / Proxy,替换为产品配置的真实测试域。svmap 没有这一 --domain 参数。

怎样判断结果

同一 IP 在不同 SIP 域上可能走不同路由;域不匹配造成的 404 不能证明账户不存在。

svwar · 前导零与请求方法

sipvicious_svwar -e 1-3 -z 4 -m OPTIONS \
  -p 5060 -t 0.1 192.168.56.10

-z 4 把号码补到四位:0001、0002、0003。用 OPTIONS 比较是否存在响应差异;若服务器统一应答,这个方法不能判断分机。

svwar · 在不会接通外线的分机上验证 INVITE

sipvicious_svwar -e 1001 -m INVITE -p 5060 \
  -t 0.2 --maximumtime 10 192.168.56.10

仅用于专用测试分机,可能响铃、接通或触发 PBX 路由;0.3.6 起有 INVITE 对话清理相关修复。保持默认 CANCEL 行为,操作后在 PBX 上确认对话结束。这不是 RTP 播放或通话质量测试。

怎样判断结果

180 Ringing、200 OK 和后续 CANCEL / ACK / BYE 需要结合抓包及服务端会话看;本次未对真实电话验证 INVITE。

svcrack · 认证用户名与分机不同

sipvicious_svcrack -u lab-user-1001 -e 1001 \
  -d lab-passwords.txt --domain lab.invalid \
  -p 5060 -t 0.2 192.168.56.10

-u 对应 Digest authentication username;-e 对应分机。很多产品将登录名与分机号分开配置,两者不能互换。此处需要沿用第 3 步的实验候选文件。

svcrack · 明确而很小的数字候选范围

sipvicious_svcrack -u 1001 -r 1-3 -z 4 \
  -p 5060 -t 0.2 --maximumtime 10 192.168.56.10

-r 1-3 与 -z 4 生成 0001、0002、0003 三个候选,另外仍需考虑工具默认的用户名同密码尝试。适合实验账户的口令策略阳性/阴性对照;不用于大范围账号尝试。

怎样判断结果

结合 PBX 日志统计真实认证次数;若触发锁定,后续“未找到”反映的可能是锁定状态。

svcrack · 标准输入与非默认 UDP 端口

printf '%s\n' 'wrong-demo' 'lab-demo-only' | \
  sipvicious_svcrack -u 1001 -d - -t 0.2 \
  udp://192.168.56.10:5080

-d - 从 stdin 读候选,便于接入受控内部检查;svwar 同样支持 -d -。udp://host:port 适用于 svwar / svcrack,不能照搬给 svmap。

svreport · 检查数量与导出可读文本

sipvicious_svreport list -t svwar -c
sipvicious_svreport export -t svwar -s lab-war-01 \
  -f stdout
sipvicious_svreport stats -t svmap -s lab-map-01
sipvicious_svreport search Asterisk -t svmap -s lab-map-01

list -c 在会话列表中显示条目数;export -f stdout 在屏幕查看;stats 统计 svmap 横幅;search 在该会话中检索包含 Asterisk 的横幅字符串。以上操作读取本地会话,不产生新的 SIP 测试。

svreport · 其他导出格式与明确删除

sipvicious_svreport export -t svmap -s lab-map-01 \
  -f xml -o lab-map-01.xml -n
# 仅在需要 PDF 且已安装 reportlab 时使用
sipvicious_svreport export -t svmap -s lab-map-01 \
  -f pdf -o lab-map-01.pdf -n
# 确认已留存必要结果后,才删除这个本地会话
sipvicious_svreport delete -t svmap -s lab-map-01

删除只针对指定的本地保存会话,不能撤销它曾发送的 SIP 请求,也不会清理 PBX 日志。search 子命令可在 svmap 横幅结果中检索;复杂集成更适合先导出 CSV 后处理。

保存与恢复:区分“继续”与“重测”

sipvicious_svmap --resume lab-map-01
sipvicious_svwar --resume lab-war-01
sipvicious_svcrack --resume lab-auth-01 -u 1001

--resume 用于未完成会话的继续执行。已经完成的结果不要用恢复来代表一次新的整改复测;重测应使用新的 -s 会话名,并记录配置版本。

svcrash · 查看历史工具说明

sipvicious_svcrash --help

它的 -d 是旧版扫描器的 IP,-p 是该扫描器的端口;--auto 与 --astlog 是历史自动响应/日志输入模式,-b 是端口尝试。它针对旧版扫描器自身的已修复问题,不是“把 PBX 测崩”的工具。常规内部产品验收无需运行这类响应。[S7]

更多选项:知道存在,也知道何时不用
选项实际含义与适用边界
svmap --first N只发送前 N 条探测消息;多主机、多端口时不能把 N 当成主机总数。
svmap --srv解析目标域的 SIP SRV 记录;用于确实要检查 DNS 服务发现的测试,先确认解析出的主机在授权范围。
svmap --fromname / -e调整 From 名称或目标分机,观察不同 SIP 路由;不提供任意报文模板与完整协议一致性测试。
svwar --force跳过初始合理性检查;会让统一认证挑战造成的假阳性更严重。它不是破解防枚举配置的保证。
svwar --disablecancelINVITE 扫描收到 180 后不发送 CANCEL,可能持续响铃;不属于常规验收步骤。
svwar / svcrack -T、-D分别为号码/候选构造模板、加入默认候选。会扩大候选集,测试前必须明确实际集合。
svcrack -n / --reusenonce复用 nonce,会改变认证测试条件;日常基线保留默认,不把此选项当成稳定性修复。
svcrack --requesturi覆盖请求首行的 URI,适用于明确研究请求路由的场景;不要简单假定它会同步改变所有认证上下文。
-A / --autogetip尝试借助外部连接判断本机地址,会额外访问外部目标;内网实验宜明确 -b / -x。
-R / --reportback历史“报告错误”选项;0.3.8 实现打印 GitHub 问题链接。共享报错前仍需清理命令中的内部信息。
svmap --randomscan / --randomize分别涉及随机地址目标或随机顺序;内部产品回归应使用明确资产清单,通常不需要这些选项。
05 / GUIDE

看懂结果:什么才算测到了

看到的现象能够支持的结论下一步怎么确认
OPTIONS 有响应,横幅显示某款 SBC当前请求路径有 SIP 响应;横幅是远端自报信息对照部署清单、代理路由与抓包,确认是边界设备还是后端 PBX
401 Unauthorized / 407 Proxy Authentication Required服务器/代理在要求认证;认证挑战本身是正常流程比较已知存在与不存在账户的响应差异,核对 realm 与认证用户名
svwar 显示 reqauth工具根据相对未知号码的响应差异,推断分机存在且要求认证用 PBX 配置、认证日志确认;不能只凭 401 判断每个号码都存在
svwar 显示 noauth当前方法收到成功响应,被工具归为不要求认证确认是否只是 OPTIONS 统一成功、IP 白名单或真实 REGISTER 无认证;再做受控功能验证
svwar 显示 weird响应与未知号码不同,但不在工具常规分类内保留原始状态码、头字段与服务端路由,暂不归为漏洞
404 / 403 / 486分别可能是未找到、策略拒绝、忙;实际取决于方法与产品路由检查域/URI、ACL、路由和账户状态;这些状态码不能单独作为目录真相
svcrack 找到演示口令这组测试条件下,候选通过了工具识别的认证流程检查服务端认证成功事件与账户权限;真实呼叫能力需另测
无响应 / 未找到口令当前路径和候选没有得到工具能识别的阳性结果排除传输不支持、NAT、限流、锁定、nonce 行为、错误用户名和候选不足

一个正常的 Digest 认证过程

客户端发送 REGISTER → PBX 回 401 并给出 realm 与 nonce → 客户端用候选口令计算摘要并再次发送 REGISTER → PBX 校验后回成功或拒绝。svcrack 是在线尝试认证,不是从 RTP 音频里解密密码,也不是直接读取 PBX 密码数据库。

保留退出码和输出的脚本片段

rc=0
sipvicious_svwar -e 1001-1003 -p 5060 \
  -s lab-ci-01 192.168.56.10 > lab-ci-01.log 2>&1 || rc=$?
printf "svwar exit=%s\n" "$rc"
sipvicious_svreport export -t svwar -s lab-ci-01 \
  -f txt -o lab-ci-01.txt

这段只负责保留证据,不把某个数字硬编码成普适通过条件。若本地会话未创建,导出失败也应记录;正式流水线还要设置进程总超时、明确目标清单,并核查产品日志。

怎样判断结果

不要使用“返回 0 就通过、非 0 就忽略”的笼统判断;防枚举测试和阳性夹具的预期结果正好可能相反。

06 / GUIDE

六类场景:从问题选择工具

以下是内部测试方案建议,属于基于工具能力的工程推导。目标、期望和证据都应写进测试记录;本页没有对这些产品环境给出未经实测的通过结论。

场景怎样使用应该留下的证据
PBX / SBC / 网关上线前svmap 对单主机及预期 UDP 端口检查,再从另一个获授权测试网段复测 ACL部署清单、测试来源网段、状态码、差异与预期端口
FreeSWITCH / Asterisk 注册失败svmap 确认信令可达;svwar 在明确测试分机/域上取样;若需要认证,用单账户候选验证realm、认证用户名、分机、目标域、PBX 日志;不能仅凭命令输出推断 NAT
多租户与分机防枚举同一域比较存在/不存在的测试号码;另一个域重复相同对照,观察响应差异状态码、响应头与时序;统一挑战时保留工具停止/不确定结果,避免强行列目录
口令策略与锁定规则验收先对演示账户验证阳性,再在整改配置下测试少量约定候选;观察真实认证尝试次数候选集合、成功/失败记录、锁定与解锁事件;阈值和速率以产品日志为准
SBC、容器或 PBX 升级回归保存变更前后 svmap / svwar 结果,独立确认认证和路由,再导出对比相同目标/方法/来源的两次会话、版本与配置差异;另用真实通话完成业务验收
接通后无声、杂音、卡顿SIPVicious 只补充信令可达性;用软电话产生通话,再用 Sipnab / Wireshark 关联 SIP 与 RTPSDP 媒体地址、RTP 双向流、序号、时间戳、SSRC、编码与可听性;不能从 SIP 横幅推断媒体健康
要测的能力更合适的工具组合SIPVicious 在其中的位置
基础信令暴露与认证差异SIPVicious OSS + PBX 日志核心工具
完整注册、拨号、接听与挂断真实软电话 / 测试终端 + PBX 日志;场景自动化可用 SIPp做前置可达性和账户检查
并发通话、呼叫速率与容量定义场景的 SIPp + 服务器指标 + 媒体验证扫描数量不能替代成功并发通话数
RTP 丢包、抖动、乱序、单向音频Sipnab / Wireshark + 真实双向音频测试不直接测这些媒体指标
SIP over TCP / TLS / WSS支持相应传输的 SIP 客户端/测试工具,核对版本支持本指南 OSS 的 UDP 命令不覆盖这些路径
07 / GUIDE

常见误区与排障顺序

问题优先检查处理建议
Address already in use本机源端口 5060 是否被软电话或 PBX 占用用 -P 15070 这类未占用高端口;检查的是本机,不是服务器的 -p
明明能打电话,svmap 没结果通话是否走 TCP / TLS / WSS;SBC 是否拒绝 OPTIONS;来源是否相同确认真实传输和路由。不要把 -p 5061 当 TLS 开关
所有分机都“存在”或扫描被中止未知号码是否也收到同样的 401 / 407,是否统一应答对照已知存在/不存在号码及服务端日志;--force 不能消除假阳性
No module named scapy是否运行了 svcrash这是可选历史工具依赖;不影响核心三个扫描器的基础用法
svreport list 直接报错0.3.8 是否遗漏 -t改为 sipvicious_svreport list -t svmap;Wiki 的简写与当前实现有差异
svcrack --force 或数字范围无效是否照搬 Wiki 旧例;-e 是否被当成密码范围0.3.8 svcrack 没有 --force;用 -r 生成数字候选,-e 只指定分机
测试几次后突然都失败PBX / SBC 是否锁定、封禁、限流或启用了动态 nonce 策略记录触发点与服务端原因;恢复实验账户状态后再做明确的一次复验
-t 0.1 但请求速率不固定select() 在有响应时可立即返回,并不总等待 0.1 秒缩小候选和目标集合;要精确限速、负载曲线或并发,选专门的场景工具
NAT 后返回包进不来实际源地址、源端口、Via/Contact、SBC 回程策略优先让测试机和 PBX 在可控网络互通;-x 只是报文地址,不是穿透功能
CSV 打开第一行像数据svreport 的输出格式本次实测 CSV 没有表头;先检查列数和内容再导入,避免丢掉第一条记录
08 / GUIDE

本次验证:已测到哪里

2026-09-10 下载并核对官方 0.3.8 对应源码,运行四个核心模块的 --help,并在 127.0.0.1 的随机 UDP 高端口启动最小 SIP 响应器。响应器只实现本次需要的 OPTIONS、REGISTER、404、401 与简化 Digest 校验。测试会话写入临时目录,完成后关闭套接字并清理临时会话。[V1]

验证项本次真实结果范围
版本与帮助svmap 版本为 0.3.8;svmap / svwar / svcrack / svreport 帮助均可读取源码模块执行;不是 Kali 安装或跨平台兼容验证
单目标服务发现识别回环地址、随机端口与 SIPVicious-Loopback-Fixture 横幅模拟 UDP 服务
分机分类1001 → reqauth;1002 → noauth;1003 未列为存在预设分类对照,不能代表真实 PBX 行为
候选认证从两个演示候选中找到 lab-demo-only,返回码 40本机简化 Digest 验证,无真实用户口令
保存 / 列表 / CSV 导出会话可列出,CSV 有目标和横幅;未带表头本地会话读写
svreport 缺失 -t复现 Invalid session type,返回码 2当前实现与部分文档简写的差异
svcrash 依赖当前最小 Python 环境因缺少 scapy 无法执行帮助未安装可选依赖,未运行历史响应功能

你可以直接照抄的内部测试记录

测试记录模板

测试日期 / 执行人:
产品版本 / 配置版本:
测试机 IP / 来源网段:
目标 IP / SIP 端口 / UDP:
SIP 域 / realm / 认证用户名 / 分机:
已知存在 / 不存在的对照账户:
本次命令 / 会话名 / 候选集合:
预期结果 / 实际输出 / 退出码:
PBX 日志 / 抓包位置 / 认证次数:
是否触发锁定 / 是否完成对话清理:
整改项 / 复测会话 / 未覆盖范围:

完整回归至少要有:已知服务发现成功、存在/不存在号码对照、有限候选认证、服务端日志对账、结果导出,以及整改后的同条件复测。

09 / GUIDE

资料与版本依据

事实以当日读取的一手资料、发行元数据和当前源码为依据;上面的场景组合与验收流程是工程建议。官方教程写作于 2026-04-13,使用当时的 0.3.7;本页命令已按 0.3.8 再核对。Kali 页只用来核实该发行版的安装/短命令形式。[S9][S10]

S3

PyPI · sipvicious 0.3.8 ↗

0.3.8 发行元数据;上传日期 2026-07-10。元数据经 PyPI JSON 接口读取。

访问与核对:2026-09-10
S4

官方 Wiki · SVMap Usage ↗

主机、端口、输入会话、方法与等待时间。持续更新文档,页面未独立标注本次版本发布日期。

访问与核对:2026-09-10
S8

SIPVicious Pro 官方文档 ↗

SIP / RTP 能力、传输方式及“不再销售或授权”的当前声明;2026-09-10 访问。

访问与核对:2026-09-10

[V1] 本地验证原始记录与最小响应器保存在工作区的 learning-library/evidence/sipvicious/。它们是测试证据,不属于腾讯端公开静态发布包。页面展示的是不含真实资产和真实凭证的汇总。