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 Linux IP: 192.168.1.100 交换机 PBX服务器 Ubuntu + Asterisk IP: 192.168.1.10 软电话 A 分机: 1001 软电话 B 分机: 1002 攻击流量 SIP信令 图例: 攻击流量 正常SIP流量 💡 所有设备在同一网段,攻击机可嗅探到所有SIP流量

拓扑说明:

  • 攻击机(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.confextensions.conf 配置。

第三步,在Kali上启动Wireshark,过滤 sip,然后打一通电话。你应该能看到 INVITE200 OKACKBYE 这些消息。如果看不到,说明抓包配置有问题,回去检查权限和接口选择。

避坑指南: 我曾经在VMware里做实验,发现Kali抓不到PBX的流量。后来发现是虚拟网卡模式设成了NAT,改成桥接模式就好了。你如果也遇到类似问题,先检查网卡模式。

好了,环境搭完了。接下来我们就可以拿着SIPp这把刀,开始玩点真格的了。

环境清单速查:

  • ✅ Kali Linux 已更新,VoIP依赖已安装
  • ✅ SIPp 3.6.2 已从源码编译安装
  • ✅ Wireshark 已配置SIP/RTP解析,普通用户可抓包
  • ✅ 实验拓扑已搭建,所有设备在同一网段
  • ✅ 基础通信已验证,SIP消息可正常抓取
专注资料整理