2. 环境搭建:Kali Linux环境配置、SIPp工具安装、Wireshark抓包配置、实验拓扑搭建
好,咱们直接进入正题。做SIP安全实验,环境搭不对,后面全是白费力气。我见过太多人卡在工具装不上、抓包抓不到、拓扑连不通这些坑里。今天我把我的标准配置流程拆开揉碎了讲给你听。
2.1 Kali Linux环境配置
我个人习惯用Kali作为攻击机。为什么?因为它预装了大部分渗透工具,省心。但默认的Kali对VoIP支持并不完整,需要手动补一些包。
核心思路: 攻击机用Kali,被攻击目标用一台Ubuntu Server跑Asterisk PBX,再用两台软电话做终端。这样就是一个完整的VoIP实验环境。
首先,确保你的Kali能上网,并且更新到最新。
sudo apt update && sudo apt upgrade -y
然后安装VoIP相关的依赖库。这里有个坑——千万别漏了libpcap-dev,否则后面编译SIPp时会报错。我曾经因为这个折腾了半小时。
sudo apt install -y build-essential libpcap-dev libssl-dev \
libncurses5-dev libncursesw5-dev libxml2-dev \
libsqlite3-dev libgsm1-dev libsctp-dev
小技巧: 装完后用 dpkg -l | grep libpcap 确认一下。如果没输出,说明没装上,手动再装一次。
2.2 SIPp工具安装
SIPp是VoIP测试的瑞士军刀。它能模拟成千上万的SIP用户,也能构造畸形报文。我建议你从源码编译,这样能获得最新功能和最大灵活性。
下载源码包:
wget https://github.com/SIPp/sipp/releases/download/v3.6.2/sipp-3.6.2.tar.gz
tar -xzf sipp-3.6.2.tar.gz
cd sipp-3.6.2
编译时加上所有可选特性:
./configure --with-pcap --with-ssl --with-sctp --with-gsm
make -j$(nproc)
sudo make install
验证安装:
sipp -v
如果看到版本号,恭喜你,装好了。如果提示找不到命令,检查一下 /usr/local/bin 是否在PATH里。
注意: 有些教程让你用 apt install sipp,但仓库里的版本通常很老(比如3.5.x),缺少一些关键功能。我建议你走源码编译这条路。
2.3 Wireshark抓包配置
Wireshark是分析SIP流量的利器。但默认配置下,它不会自动解析SIP和RTP,需要手动调一下。
首先,给普通用户抓包权限:
sudo usermod -a -G wireshark kali
然后重启会话,或者直接 newgrp wireshark 切换组。
打开Wireshark,进入 Edit → Preferences → Protocols → SIP,确保以下设置:
| 参数 | 推荐值 | 说明 |
|---|---|---|
| Enable SIP parsing | ✔ 勾选 | 自动解析SIP消息 |
| Enable RTP parsing | ✔ 勾选 | 自动解析RTP流 |
| UDP port | 5060 | 默认SIP信令端口 |
| TCP port | 5060 | 有些场景用TCP传输 |
个人经验: 抓包时最好加个过滤条件 sip or rtp,不然混杂模式下流量太多,看得眼花。我刚开始做实验时没加过滤,结果在几百个包里面找SIP消息,找得想哭。
2.4 实验拓扑搭建
拓扑结构其实很简单,但逻辑要清晰。我画了一张图,你看一眼就明白了。
拓扑说明:
- 攻击机(Kali):运行SIPp和Wireshark,负责发送恶意SIP消息和抓包分析
- PBX服务器:运行Asterisk,模拟企业电话交换机,注册两个分机1001和1002
- 软电话A/B:用Zoiper或Linphone模拟,作为正常通话终端
- 交换机:用普通家用交换机就行,关键是让攻击机能嗅探到所有流量
重要提醒: 所有设备必须在同一个广播域(同一网段),否则ARP欺骗和流量嗅探会失效。我见过有人把攻击机放在不同VLAN里,结果抓了半天包全是空的——白忙活。
2.5 验证环境连通性
环境搭好后,别急着做攻击。先验证一下基础通信是否正常。
第一步,从Kali ping PBX服务器:
ping 192.168.1.10
第二步,用软电话A拨打软电话B,确认能正常通话。如果听不到声音,检查一下Asterisk的 sip.conf 和 extensions.conf 配置。
第三步,在Kali上启动Wireshark,过滤 sip,然后打一通电话。你应该能看到 INVITE、200 OK、ACK、BYE 这些消息。如果看不到,说明抓包配置有问题,回去检查权限和接口选择。
避坑指南: 我曾经在VMware里做实验,发现Kali抓不到PBX的流量。后来发现是虚拟网卡模式设成了NAT,改成桥接模式就好了。你如果也遇到类似问题,先检查网卡模式。
好了,环境搭完了。接下来我们就可以拿着SIPp这把刀,开始玩点真格的了。
环境清单速查:
- ✅ Kali Linux 已更新,VoIP依赖已安装
- ✅ SIPp 3.6.2 已从源码编译安装
- ✅ Wireshark 已配置SIP/RTP解析,普通用户可抓包
- ✅ 实验拓扑已搭建,所有设备在同一网段
- ✅ 基础通信已验证,SIP消息可正常抓取