本文会过多涉及OMACP,有的小伙伴可能会感到陌生,实际上其就是手机里的OMACP应用,英文为 OMA(Open Mobile Alliance) Client Provisioning 协议实例,或者叫做开放移动联盟客户端配置。
此外,还涉及几个概念
OMA :Open Mobile Alliance
CP : Client Provisioning
OTA:Over the Air ,空中下载技术,是通过移动通信的空中接口实现对移动终端设备及SIM卡数据进行远程管理的技术。可实现SIM卡远程管理,新业务下载功能等,一般的下载方式分为下面几种。
而OMACP起源于三星,后来发展成一个独立的系统通用接口模块,主要给运营商提供通过短信,OTA等形式发送涉及到更新APN,SPN等手机网络相关的配置修改请求,从而达到一种热修复更新的效果。
简单普及完毕,黑鸟对此领域研究不深,如有错误见谅,下面进入正题:
近日,国外网络安全厂商CheckPoint 发现三星,华为,LG,索尼和其他基于Android系统的手机存在安全问题,导致用户容易受到高级网络钓鱼攻击。
而主要受影响的Android手机是由于其使用无线(OTA)配置,允许移动网络运营商将网络特定设置部署到加入其网络的新手机。
但是,研究人员发现,OTA配置的行业标准OMACP,因为其采用了弱认证配置消息,即收件人无法验证“建议的设置”是来自他的网络运营商还是来自冒名顶替者。因此可以使攻击者扮演网络运营商的角色,并向用户发送欺骗性的OMA CP消息。
该消息诱使用户接受恶意设置,例如,通过攻击者拥有的代理服务器传输其互联网流量。
简单来说,就是将你的手机作为攻击流量跳板,从而达到躲避追踪的效果。
而关键在于,只要搞懂协议,任何人都可以发送OTA配置消息。
而由于某些三星手机没有对 OMA CP 消息发件人进行真实性检查,因此最容易受到这种形式的网络钓鱼攻击。只需用户接受 CP消息,即可安装/更改恶意设置项,无需发件人证明其身份。
根据2018年的市场份额数据,研究人员发现由三星,华为,LG和索尼制造的手机(所有Android手机的50%以上的手机)允许用户通过这种经过弱验证的配置消息,从而接收恶意设置,而部分三星手机更容易被攻击。
要发送OMA CP消息,攻击者需要GSM调制解调器(10美元USB加密狗或以调制解调器模式运行的手机),用于发送二进制编写的SMS消息。然后通过简单的脚本或现成的软件编写OMA CP。
网络钓鱼CP消息可以是针对性目标,例如定制用于欺骗特定接收者的自定义文本消息,也可以批量发送。
OMA CP允许通过OTA更改以下设置:
MMS消息服务器
代理地址
浏览器主页和书签
邮件服务器
用于同步联系人和日历的目录服务器
and more more。
因此确实通过修改邮件列表还有浏览器等设置去做更多的事情。
以下方案假设攻击者试图诱骗受害者,通过攻击者控制的代理路由所有流量。
为了使用三星手机定位受害者,攻击者可以向他们发送未经身份验证的OMA CP消息,指定他控制的代理。
而且,攻击者无需进行身份校验,仅需用户允许CP消息接收。
对于APN设置,配置包括一个可选字段,用于配置可以通过它路由Web流量的HTTP代理,但许多运营商使用甚至不需要设置此字段的透明代理。
三星用户看到的未经身份验证的CP消息
华为、LG 和索尼手机确实设有一种身份验证方式,但攻击者只需收件人的国际移动用户识别码 ( IMSI ) 便可 " 确认 " 其身份。
攻击者能够通过各种方式获取受害者的 IMSI,包括创建一个恶意 Android 应用投放到受害者,以在其安装后读取手机 IMSI。
此外,攻击者还可以伪装成网络运营商向用户发送短信,并要求他们接受 PIN 保护的 OMA CP 消息,从而绕过对 IMSI 的需求。
如果用户随后输入提供的 PIN 码并接受 OMA CP 消息,则无需 IMSI 即可安装 CP。
如果攻击者能够使用华为,LG或索尼手机获得潜在受害者的国际移动用户身份(IMSI)数量,他可以发起与三星手机用户一样有效的网络钓鱼攻击。
IMSI是移动网络上每个设备的64位标识符,自GSM和3G以来一直在使用。此号码用于路由,大致相当于计算机网络中的IP地址。一个人的IMSI是伪机密的,但是:
OMA CP消息具有可选的安全标头,可以验证CP的真实性。
当CP使用收件人的IMSI号码进行身份验证时,华为,LG和索尼手机会允许安装恶意设置。
请注意,这些手机在建议用户安装时不会显示有关CP的任何详细信息,特别是CP的发送者没有以任何方式被识别。
Sony用户看到的NETWPIN认证的CP消息
使用PIN验证
对于无法获得IMSI的潜在受害者,攻击者可以向每个受害者发送两条消息。
第一个是文本消息,声称来自受害者的网络运营商,要求他接受受PIN保护的OMA CP,并将PIN指定为任意四位数字。
接下来,攻击者向他发送使用相同PIN验证的OMA CP消息。
只要受害者接受CP并输入正确的PIN,就可以安装此类CP,而不用输入IMSI。
华为用户看到的经过USERPIN认证的CP消息
OTA配置的主要原始用例是部署特定于运营商的设置,例如运营商的MMS服务中心的地址。企业也使用此工具将电子邮件服务器地址等设置部署到员工的设备。
OMA CP是OMA为空中配置设置而维护的两个标准之一,可追溯到2001年,具有2009年的最新规范。
而Android的基本版本不能处理OMA CP消息,但许多供应商实现都是如此,因为OMA CP是OTA配置的行业标准。其规范允许(但不要求!)CP消息使用USERPIN,NETWPIN或其他使用较少的方法进行身份验证。
任何SMS,无论是文本消息,MMS,语音邮件通知还是其他任何SMS,都作为由短消息传输协议(SM-TP)即GSM 03.40指定的协议数据单元(PDU)发送。包含OMA CP有效载荷的GSM PDU包括:
作为演示,我们对Samsung手机的初始(未经身份验证的)概念验证包含以下XML文档作为有效负载,其中字符串指定了突出显示的代理地址和端口号:
OMA CP的XML Payload
携带此Payload的完整OMA CP分为两条物理SMS消息,如下图所示,为两个八位字节串:
OMA CP消息的物理表示
在WBXML字符串中,代理地址和端口号(使用与XML源中相同的颜色突出显示)包含为以null结尾的ASCII字符串,而在XML模式中定义的字符串,如元素名称和类型的值和名称属性,在WBXML中表示为固定的单字节值。
WBXML Payload遵循WSP标头,其包括使用接收方的IMSI计算的消息认证代码,作为ASCII十六进制字符串。
因此,奥秘就在于构造,原理摆在这了,剩下的就是找写OMACP的发送脚本了。
Checkpoint描述了针对现代Android手机的高级网络钓鱼攻击流程。这种攻击流程使任何拥有廉价USB调制解调器的人都可以诱骗用户在手机上安装恶意设置。
为了攻击一些易受攻击的手机,攻击者需要知道受害者的IMSI号码,这些号码可以通过具有READ_PHONE_STATE权限的Android应用程序获得。
安全研究员在华为P10,LG G6,索尼Xperia XZ Premium和一系列三星Galaxy手机(包括S9)上验证了POC。
鉴于 Android 设备日益普及,这是一个必须解决的严重漏洞问题。如果没有更强大的身份验证方式,恶意代理将很容易通过无线配置发起网络钓鱼攻击。当收到 OMA CP 消息时,用户无法分辨其是否来自可信来源。在点击‘接受’,或者输入PIN或IMSI号码后,他们的手机将很可能遭到攻击者的入侵。
夸张来说:只需一条短信可以让远程攻击者访问你的所有电子邮件
2019年3月,研究人员向受影响的厂商披露了研究结果。
三星在其 5 月安全维护版本 ( SVE-2019-14073 ) 中提供了针对此网络钓鱼攻击的修复程序,LG于7月发布了他们的修复程序 ( LVE-SMP-190006 ) ,华为计划将针对 OMA CP 的 UI 修复程序纳入新一代 Mate 系列或 P 系列智能手机中。
OMA正在将此问题作为OPEN-7587进行跟踪。
然而,索尼拒绝承认该漏洞的存在,称其设备遵循 OMA CP 规范。
业界“清流”,研究研究该技术,索尼将会是攻击突破口。
原文链接:
https://research.checkpoint.com/advanced-sms-phishing-attacks-against-modern-android-based-smartphones/
近期必读
从奥运五环那幅图,我就知道某司的风范了,话说此前还有一次题目的Copy,再收集收集就可以写一篇了。
更多情报,扫码下面