第三章:信息收集工具链——SIP扫描器、用户枚举与拓扑发现

各位同学,咱们今天聊聊信息收集这块。说实话,在IMS攻击里,信息收集做得好不好,直接决定了后面能不能打进去。我个人习惯把这一阶段叫做“踩点”,踩得准,后面就顺;踩不准,那就是瞎忙活。

好,咱们直接进入正题。这一章我重点讲三样东西:SIP扫描器、用户枚举工具、拓扑发现工具。这三样东西,说白了就是你的“侦察兵”。

3.1 SIP扫描器:sipscan与sipvicious

SIP扫描器是干嘛的?就是用来发现网络中哪些设备在跑SIP协议。你想想看,IMS核心网里全是SIP信令,如果连SIP服务器在哪都不知道,那还打什么?

我个人最常用的两个工具是sipscansipvicious。sipscan比较轻量,适合快速探测;sipvicious功能更全,但有时候会被IDS检测到。

3.1.1 sipscan实战

sipscan的用法其实很简单。我一般这么用:

# 扫描单个IP的SIP服务
sipscan -i 192.168.1.100

# 扫描C段
sipscan -i 192.168.1.0/24 -p 5060

# 指定扫描速率,避免被防火墙封
sipscan -i 192.168.1.0/24 -r 100

嗯,这里要注意一个坑。我曾经在一次红队项目中,直接用默认速率扫了对方一个C段,结果不到30秒,对方防火墙直接把我源IP封了。后来我学乖了,把速率降到50包/秒,再配合代理池,才顺利拿到结果。

我的经验:扫描速率别超过200包/秒,否则很容易触发IPS/IDS告警。如果目标网络比较敏感,建议降到50以下。

3.1.2 sipvicious高级用法

sipvicious其实是一套工具集,里面包含svmap、svwar、svcrack等。我最常用的是svmap,它不仅能发现SIP服务器,还能识别服务器类型和版本。

# 扫描并识别SIP服务器
svmap 192.168.1.0/24

# 指定端口范围
svmap -p 5060-5090 192.168.1.0/24

# 输出结果到文件
svmap -o result.xml 192.168.1.0/24

为什么我要强调版本识别?因为不同版本的SIP服务器漏洞不一样。比如老版本的Asterisk,有个著名的RTP劫持漏洞,版本号一出来,漏洞库一查,攻击路径就清晰了。

警告:sipvicious的流量特征比较明显,很多安全设备会直接拦截。建议配合隧道或代理使用,别裸奔。

3.2 用户枚举工具:enumIAX与sipdump

找到SIP服务器之后,下一步是什么?枚举用户。说白了,就是找出哪些SIP账号是存在的。这一步很关键,因为很多攻击都是从合法账号开始的。

我常用的两个工具是enumIAXsipdump。enumIAX专门针对IAX协议,sipdump则更通用。

3.2.1 enumIAX使用技巧

enumIAX的原理其实很简单:向服务器发送注册请求,根据返回的响应码判断用户是否存在。200表示成功,403表示用户存在但密码错误,404表示用户不存在。

# 枚举用户列表
enumIAX -u userlist.txt -H 192.168.1.100

# 指定线程数,提高效率
enumIAX -u userlist.txt -H 192.168.1.100 -t 10

# 输出存在的用户
enumIAX -u userlist.txt -H 192.168.1.100 -o valid_users.txt

我记得有一次,目标系统用的是IAX2协议,我直接用enumIAX枚举,结果发现了一个叫“admin”的用户。你猜怎么着?密码是“admin123”。这种低级错误在真实环境中其实不少见。

核心思路:用户枚举的关键在于字典质量。我一般会先收集目标公司的员工姓名、工号、部门缩写,生成定制字典,命中率能提高30%以上。

3.2.2 sipdump抓包分析

sipdump是个抓包工具,专门用来捕获SIP流量。为什么需要它?因为很多时候,用户信息就藏在SIP信令里。

# 抓取SIP流量
sipdump -i eth0 -p sip.pcap

# 过滤特定IP
sipdump -i eth0 -p sip.pcap -f "host 192.168.1.100"

# 实时分析
sipdump -i eth0 -l

抓包之后,我会用Wireshark或者tshark做进一步分析。重点关注REGISTER请求和INVITE请求,里面经常包含用户名、域名、甚至明文密码。

嗯,这里要提醒一下:抓包要合法合规。我曾经在授权测试中抓到过明文密码,当时第一时间通知了客户,而不是自己留着用。这是职业操守问题。

3.3 拓扑发现工具

最后说说拓扑发现。为什么需要拓扑发现?因为IMS网络不是单点,而是一个复杂的网络。你找到了一个SIP服务器,但不知道它后面连着哪些设备,攻击面就受限了。

我常用的拓扑发现工具有traceroutenmap、以及一些专门的SIP拓扑探测工具。

3.3.1 基于traceroute的拓扑探测

traceroute能帮你画出数据包经过的路径。对于IMS网络,我一般会从外网向核心网方向做反向traceroute。

# 标准traceroute
traceroute 192.168.1.100

# 使用ICMP模式
traceroute -I 192.168.1.100

# 使用TCP模式,绕过防火墙
traceroute -T -p 5060 192.168.1.100

为什么用TCP模式?因为很多IMS网络会屏蔽ICMP,但SIP端口通常是开放的。用TCP模式能更准确地发现中间设备。

3.3.2 nmap的SIP探测脚本

nmap自带了SIP探测脚本,非常实用。我一般这么用:

# 探测SIP服务
nmap -sV -p 5060 --script=sip-enum-users 192.168.1.100

# 探测SIP方法
nmap -sV -p 5060 --script=sip-methods 192.168.1.100

# 全面SIP扫描
nmap -sV -p 5060 --script=sip-* 192.168.1.100

sip-methods脚本能列出服务器支持哪些SIP方法。如果支持OPTIONS、REGISTER、INVITE,说明这是一个功能完整的SIP服务器;如果只支持OPTIONS,那可能只是个代理。

我的习惯:每次做完拓扑发现,我都会画一张网络拓扑图。把发现的SIP服务器、媒体服务器、数据库服务器都标出来,然后标注它们之间的通信关系。这张图就是后续攻击的路线图。

3.4 知识体系总览

说了这么多,我画了一张图,帮你把这一章的知识体系串起来:

IMS信息收集工具链知识体系 信息收集工具链 SIP扫描器 用户枚举工具 拓扑发现工具 sipscan sipvicious enumIAX sipdump traceroute nmap脚本 核心逻辑 发现SIP服务器 → 枚举合法用户 → 绘制网络拓扑 三者缺一不可,形成完整的信息收集闭环

这张图把三个工具链的关系讲得很清楚。从左到右,从发现到枚举再到拓扑,是一个递进的过程。你不可能跳过SIP扫描直接去枚举用户,也不可能不枚举用户就去画拓扑。

3.5 实战避坑指南

最后,我总结几个实战中容易踩的坑:

  • 扫描速率过快:我曾经在一次测试中,因为速率没控制好,导致对方SIP服务器直接宕机。嗯,那次测试提前结束了。
  • 忽略日志清理:扫描工具会在目标服务器留下日志。如果不想被发现,记得用代理或者VPN。
  • 字典质量太差:用户枚举的成败,80%取决于字典。别用网上随便下载的通用字典,自己根据目标信息定制。
  • 拓扑图不更新:网络拓扑是动态的。今天发现的设备,明天可能就下线了。建议每次测试前重新扫描。
小技巧:如果你不确定目标网络是否敏感,可以先发一个OPTIONS请求试试水。OPTIONS请求不会触发告警,但能确认SIP服务是否存在。

好了,这一章的内容就到这里。信息收集是攻击链的第一步,也是最容易被忽视的一步。很多人一上来就想搞个大新闻,结果连目标在哪都不知道。记住我这句话:信息收集做得越细,后续攻击就越轻松


公众号:蓝海资料掘金营,微信deep3321