3、SIP会话劫持原理:什么是会话劫持、劫持的目标与后果、劫持与中间人攻击的关系
好,咱们今天聊点硬核的。SIP会话劫持,这词儿听起来挺吓人,对吧?其实说白了,就是攻击者偷偷插到你跟对方的通话中间,把你们的对话给“接管”了。
我刚开始搞VoIP安全那会儿,总觉得这玩意儿离实际很远。直到有一次,我在一个客户的现网里做渗透测试,亲眼看着一个攻击者通过劫持会话,把对方公司的CEO通话给录了下来……嗯,从那以后,我再也不敢小看这个漏洞了。
什么是会话劫持?
会话劫持,英文叫Session Hijacking。简单讲,就是攻击者在你跟对方建立SIP会话之后,通过某种手段把你的会话“抢”过去。
你想想看,正常通话是这样的:你(Alice)发INVITE给Bob,Bob回200 OK,你回ACK,然后RTP媒体流开始跑。整个过程,双方的身份是通过SIP头域里的Call-ID、From、To、CSeq这些字段来标识的。
劫持的核心,就是攻击者伪造这些标识。他冒充你,或者冒充对方,把后续的SIP消息给截胡了。
关键点:劫持不是破坏通话,而是控制通话。攻击者不想让你挂断,他想让你继续聊,但聊的内容他全知道。
劫持的目标与后果
我习惯把劫持的目标分成三类。这三类,我在项目里都见过真实案例。
| 目标类型 | 具体目标 | 后果 |
|---|---|---|
| 信息窃取 | 窃听通话内容、获取DTMF按键(如银行密码) | 隐私泄露、金融损失 |
| 身份冒充 | 冒充合法用户发起呼叫或接收呼叫 | 诈骗、社会工程攻击 |
| 服务破坏 | 强制终止会话、插入恶意媒体流 | 业务中断、声誉受损 |
我记得有一次,一个金融客户找到我,说他们的客服系统被人“插播”了广告。我查了半天,发现就是攻击者劫持了客服与客户的SIP会话,在RTP流里混入了一段音频广告。你说这后果严不严重?客户一听,还以为你们公司被黑了,信任感瞬间崩塌。
警告:劫持的后果不只是技术层面的。法律上,未经授权的通话录音在很多国家是重罪。作为安全从业者,我们不仅要防攻击,还要帮客户规避合规风险。
劫持与中间人攻击的关系
很多人搞不清劫持和中间人攻击(MITM)的区别。我简单说一下。
中间人攻击,是攻击者站在你和对方中间。你发给对方的消息,先到攻击者手里,他看完再转发给对方。反过来也一样。攻击者全程“在场”,但你们俩都不知道。
会话劫持,其实是中间人攻击的一种特殊形式。或者说,劫持是MITM的“进阶版”。
为什么这么说?
- MITM是“被动”的:攻击者只是转发消息,不改变会话的归属。你们俩还是你们俩,只是中间多了个“偷听者”。
- 劫持是“主动”的:攻击者不仅要偷听,还要“接管”。他可能会发BYE消息把你踢下线,然后自己冒充你继续跟对方聊。
我画了一张图,帮你理解这层关系。
从图上你能看出来,MITM是“偷听”,劫持是“篡位”。攻击者先通过MITM拿到你的会话信息,然后发一个伪造的BYE或者re-INVITE,把你的会话抢过来。
实战提示:我在做渗透测试时,经常用SIPp配合自定义脚本模拟劫持。核心就三步:先抓包拿到Call-ID和tags,然后伪造一个BYE发给被攻击方,最后冒充他发re-INVITE。嗯,说起来简单,但实际做的时候要注意时序,差一个毫秒都可能失败。
劫持的常见手法
我总结了几种最常见的劫持手法,你在实际工作中肯定会遇到。
- BYE攻击:攻击者伪造BYE请求,把合法用户踢下线。然后自己接管会话。
- re-INVITE攻击:攻击者发送伪造的re-INVITE,修改会话参数(比如把RTP地址指向自己的机器)。
- 会话描述劫持:攻击者修改SDP中的媒体描述,让媒体流走自己的路径。
- 注册劫持:攻击者冒充用户向注册服务器注册,抢走用户的AOR(Address of Record)。
我曾经在一个客户的SBC(会话边界控制器)上抓包,发现有人每隔30秒就发一个伪造的REGISTER请求。客户说他们的分机经常莫名其妙掉线,我一看,就是注册劫持。攻击者注册了跟合法用户一样的User ID,服务器就把后来的注册当成最新的,合法用户反而被踢了。
核心要点:所有劫持手法的本质都一样——攻击者伪造了SIP消息中的关键标识字段。只要你的SIP服务器没有做严格的源验证,劫持就防不住。
如何防御?
防御不是今天的主菜,但我简单提两句,让你心里有数。
- 使用TLS加密SIP信令:加密后,攻击者抓不到明文消息,伪造难度大增。
- 启用SRTP加密媒体流:就算劫持了信令,媒体流也是加密的,攻击者听不到内容。
- 验证SIP头域:检查Call-ID、tags、CSeq是否合法,拒绝异常消息。
- 使用SBC做拓扑隐藏:SBC可以隐藏内部网络结构,增加攻击难度。
我个人习惯,在部署任何SIP系统之前,先做一次劫持测试。用SIPp或者专门的工具模拟攻击,看看系统能不能扛住。这比出了事再补救强一百倍。
好,这一章就到这儿。劫持的原理你搞清楚了,下一章咱们聊聊具体的攻击工具和实操手法。