Hacking Team的RCS针对的系统平台覆盖面广、泄漏的源码模块众多。安恒安全研究团队发现其中的vector-rmi-master.zip为一个WAP PUSH命令行工具。 WAP PUSH即WAP网络信息推送,黑客可在短消息中嵌入恶意链接,或直接用畸形数据对WAP PUSH服务发动攻击,结合政府级别的社工方法影响巨大。
以下为该工具支持的所有指定参数:
其中:-s选项中si即服务指示(Service Indication),将新信息的指示和相关的通用资源标识符(URI)推送给用户,由用户选择是立即处理信息还是以后处理。
sl服务加载(Service Load)将一项服务的URI推送给用户,然后客户端自动地使用PULL技术根据该URI启动服务。两者区别在于用户是否介入推送信息的处理过程。-r优先级选项为其配属选项。
其连接发送模式为:黑客通过计算机串口连接GSMMODEM,GSM MODEM像一部手机一样使用SIM卡注册到运营商,通过text或PDU模式(可被所有手机支持)发送恶意短信。
0x01 COM与GPRS通信命令
该命令行工具工作于PC桌面端,通过计算机串口连接GSM MODEM,所以首先面临一些PC与GPRS模块的通信命令,该程序中用到的命令解析如下:
命令 | 备注 |
---|---|
AT+CGATT | =0 detach GPRS服务=1 attach GPRS服务? 状态检测 |
AT+CMGS | 发送短消息 |
AT+CMGF | =1 设置短消息格式为TEXT=0 设置短消息格式为PDU(默认) |
AT+CMEE | 报告移动设备的错误 |
AT+CPIN | =<PIN> 设置PIN? 查询PIN状态 |
AT+CREG | =<MODE> 0 关闭网络注册结果码1 当网络注册状态改变时激活网络注册结果码2 激活网络注册结果码同时显示区域和小区信息? 网络注册状态查询 |
AT+CSQ | 检查网络信号强度 |
AT+CGMM | 获取模块支持的频带 |
AT+CGMI | 查询模块厂商的标识 |
AT+CGMR | 查询模块版本 |
AT+CSCA | 查询短信服务中心地址 |
AT+CGSN | 查询模块的 IMEI 号码. |
AT+CIMI | 读取SIM卡的IMSI(国际移动签署者标识) |
AT+CCID | 读取SIM卡上的EF-CCID文件 |
AT+GCAP | 获取模块支持的功能 |
AT+CPAS | 移动设备的活动状态 |
AT+CGCLASS | 设置或返回GPRS移动类别 |
各命令依赖关系错综复杂,更多信息可参考:http://www.activexperts.com/sms-component/at/
0x02 SMS PDU编码
发送短消息常用Text和PDU模式,Text模式收发短信代码简单实现容易,但其缺点是不支持unicode编码短信;而PDU模式收发短信可以使用3种编码:7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,8-bit编码通常用于发送数据消息,UCS2编码用于发送Unicode字符。该命令行工具也采用PDU模式,SMS PDU编码是SMS / MMS / WAP PUSH等服务的基础,由十三项信息组成。以下为一条“Hello!”短消息为例,作一个简要说明:
其PDU串为0891 68 31 08 20 05 05 F0 11 00 0D 91 68 31 96 03 29 30 F0 00 00 00 06 C8 32 9BFD 0E 01
分段 | 含义 | 备注 |
---|---|---|
08 | 短信息中心地址长度 | 包括以下的91字段 |
91 | 短信息中心号码类型 | 国际格式号码在前面加‘+’ |
68 31 08 20 05 05 F0 | 短信息中心号码 | GSM BCD编码,一字节高低位反转为:8613800250500F为结束偶数对齐 |
11 | 文件头字节 | 基本参数(TP-MTI/VFP) |
00 | 信息类型 | 消息基准值(TP-MR) 0 |
0D | 被叫号码长度 | 数字个数 共13个十进制数(不包括91和‘F’) |
91 | 被叫号码类型 | TON/NPI,同上 |
68 31 96 03 29 30 F0 | 被叫号码 | TP-DA,同上 |
00 | 协议标识 | TP-PID)普通GSM类型,点到点方式 |
00 | 数据编码方案 | TP-DCS 7-bit编码 |
00 | 有效期 | TP-VP 5分钟 |
06 | 用户数据长度 | TP-UDL 实际长度6个字节 |
C8 32 9B FD 0E 01 | 用户数据 | TP-UD “Hello!” |
更多详细参数请参考:http://www.dreamfabric.com/sms/
对于长短信需要做多条SMS的拆分,但该命令行工具是简单做了长度检查,禁止使用长短信:
0x03 WBXML编码
如启用-x参数,该命令行工具就会PDU的用户数据部分做WBXML转换,其引用开源的WBXML Library库,参见http://sourceforge.net/projects/wbxmllib/
XML消息赋予短消息更多的表现形式及SI/SL等特殊服务特性,就安全特性来说也比单纯的字符编码引入更多的威胁。因为SMS这种消息长度极度受限的传输方式,所以采用了WBXML(WAP Binary XML)封装,即以一个byte代替常用的XML TAG和Attibute字串来节约传输数据量。以下为一些常用的转换:
WBXML | XML |
---|---|
02 | <?xml version="1.0" encoding="UTF-8"?> |
05 | <!DOCTYPE si PUBLIC "-//WAPFORUM//DTD SI 1.0//EN" "http://www.wapforum.org/DTD/si.dtd"> |
6A | UTF-8 可选的还有04 iso-8859-1、17 shift_JIS、03 US-ASCII |
45 | <si> |
C6 | <indication |
08 | action="signal-high" 可选的还有06 action="signal-low"、07 action="signal-medium" |
0C | href="http:// 可选的还有0D href="http://www. 0E href="https:// 0F href="https://www. |
01 | '>' end of attributes |
03 | inline string开始标志,以‘00’结尾 |
更多信息请参考WBXML标准:http://www.w3.org/TR/wbxml/
0x04 攻击场景
整理其发送机制及流程后,通过泄漏邮件的数据挖掘,证实了一些可预测的攻击场景已经被应用于HT近年一些监控入侵中:
1.它可将恶意链接以短信形式发送到支持WAP PUSH功能的手机上,结合政府背景级别的社工方法及Browser漏洞,可作为移动端钓鱼入侵中非常重要的路径之一。
2.发送包含漏洞利用代码的WAP PUSH消息,直接远程攻击智能设备终端。
2013-2014年邮件往来针对美国、墨西哥、秘鲁等PUSH服务使用率高的黑莓手机入侵监控中,提及到WAP PUSH社工的重要及相关配合使用的文件格式溢出利用工具:
2013年8月“Android exploit” 主题邮件,提到使用SL选项的PUSH功能将使整个恶意APP下载过程对用户透明化:
2015年2月Durango Pending Status主题邮件,表明WAP PUSH在移动设备感染上依然在继续使用: