Skip to content

独家专访:通过短信入侵 iPhone

    1652314862

    介绍

    我们最近与独立安全评估机构的安全专家查理米勒就最近披露的 iPhone 漏洞进行了交谈,该漏洞允许恶意黑客通过一系列精心制作的 SMS 消息控制 iPhone。

    艾伦:谢谢你花时间聊天,查理。为什么不先告诉我们一些有关 SMS 漏洞的信息?

    查理: iPhone 的错误与告诉手机有一定数量的数据有关,然后没有像你说的那样发送它。读取数据的函数开始返回 -1 以指示错误,但程序的其他部分不检查此错误,实际上认为 -1 是消息中的数据。这显示了编写安全代码是多么复杂,因为单独地,程序的每个部分看起来都是正确的,但是它们交互的方式是危险的!

    无论如何,根据您发送的内容,可能会发生不同的坏事。在某一时刻,您可以让它退出,因为它即将分配 -1 个字节(这被视为 0xffffffff——一个非常大的数字)。这是一种拒绝服务,会暂时将手机从网络中断开。  

    在我的 BlackHat 演讲中,我们每隔 10 秒就不断地向观众中的一名志愿者发送此拒绝服务消息,以使他远离网络。不幸的是,这些信息在网络上被提示,而他的电话在谈话后几个小时仍然被打断。从那以后,他又重新站起来跑步了。

    艾伦:我们的读者请注意:每当查理说他需要一个志愿者时,不要进行眼神交流。那么,您是如何发送消息的呢?您是通过另一部 iPhone 的 SMS 界面发送它,还是通过电子邮件发送“电话号码@attwireless ”的方式?

    Charlie:为了通过运营商网络发送 SMS,我们在攻击 iPhone 上安装了一个小应用程序,它可以使用 GSM AT 命令与调制解调器通信。为了测试和发现错误,我们使用了我的共同演讲者 Collin Mulliner 编写的这个非常酷的注入框架,它允许您仅通过 TCP 发送数据来测试 SMS 消息的实现。这可以防止您必须通过运营商网络发送数据并且不需要任何费用,并且还可以让您非常快速地测试许多消息。

    Alan:那么你是如何从拒绝服务转变为全面利用的呢?

    查理:最坏的情况与程序如何处理连接的消息有关。这是一次发送超过 140 个字节的方法。您可以在一系列消息中发送一条长消息,手机会将其重构为一个长字符串。它根据数据中的值访问数组。在它认为读取为 -1 的情况下,它实际上访问的是数组之前的内存,而不是数组中的内存。通过设置得恰到好处并变得棘手,您实际上可以利用它来完全控制设备。

    整个攻击只需要 500 多条消息,尽管受害者不知道它们正在被发送,因为它们没有出现在电话上。这些消息中的大多数都与设置“恰到好处”有关。其中 16 个实际上是越界访问数组。

    0 0 votes
    Rating post
    Subscribe
    Notify of
    guest
    0 comments
    Inline Feedbacks
    View all comments
    0
    Would love your thoughts, please comment.x
    ()
    x