码迷,mamicode.com
首页 > 编程语言 > 详细

无线网络安全之Python使用RAW sockets 嗅探WIFI的SSID

时间:2015-04-18 11:38:10      阅读:622      评论:0      收藏:0      [点我收藏+]

标签:无线安全   wifi嗅探   python   raw-socket   无线网络   

1. 介绍

  随着无线网络的广泛普及,人们越来越频繁的使用无线网络,他改变了人们的生活方式。现在很多人走到一个地方,首先要问的第一句就是“这里有没有WIFI?”但随之出现的无线网络安全问题却没有引起人们足够的重视。在一些公众场合,例如机场,火车站,咖啡厅,餐馆等场所都会设置一些免费的无线WIFI供顾客使用,但是他们的安全性是非常不可靠的。WIFI钓鱼,伪造热点,流量劫持常常在这钟场合下被用来攻击大众场所下连接WIFI的人,从而造成可怕的信息泄露事件。
  本片文章主要WIFI热点广播信号的BeaconFrame和使用简洁的Python对AP的SSID 进行嗅探。

2. 了解BeaconFrame

2.1 一个简单的无线网络。

   技术分享
   有些笔记本,智能手机,pad等智能终端通过无线的方式接入无线热点(AP)来连接互联网。攻击人使用一台电脑和一个无线网卡就可以进行攻击。

2.2 了解WLAN包的类型

  有三种包的类型:

  • Management
  • Control
  • Data

    更详细的信息可参考:
    http://standards.ieee.org/about/get/802/802.11.html
    下面是关于wlan包字段的相关解释。
    技术分享

    了解无线接入点(AP,Access Piont)

  • 每个AP都配置了一个SSID。

  • 这个SSID扮演着一个网络名称的角色。
  • 终端设备通过这个SSID搜索这个AP或者无线网络。
  • AP 发送广播帧(BeaconFrames)来表示它的存在。
  • 终端凭SSID来列无线网络的列表。

2.3 wireshark抓取BeaconFrame进行分析。

  把usb无线网卡接入Kali中,开启监听模式。
  “`
  # ifconfig wlan0 up
  # airmon-ng start wlan0

“`
技术分享

结束相关进程,提高监听的稳定性。并查看监听接口的情况。

技术分享

启动wireshark,并用mon0接口进行监听。
# wireshark &
技术分享
启动之前,选择mon0.
选择一个Beacon Frame类型的包进行查看。
技术分享

技术分享

可以看到这个BeaconFrame广播帧是由“lyc”热点发的。

3. Python使用RAW sockets 嗅探WIFI的SSID

  raw socket,即原始套接字,可以接收本机网卡上的数据帧或者数据包,对与监听网络的流量和分析是很有作用的。使用raw socket传统意义上讲并不是一个好主意,但是却让你在低层次上接触网络接口,可以直接获取所有的包。
  vim打开ssniffer.py文件,将一下python代码写入:
  

#!/usr/bin/env python

import socket

rawSocket = socket.socket(socket.AF_PACKET,socket.SOCK_RAW,socket.htons(0x0003))
rawSocket.bind(("mon0",0x0003)) #绑定mon0接口

apList = set()

while True:
    pkt = rawSocket.recvfrom(2048)[0]
    #通过wireshark抓包分析可知BeaconFrame 的frame control为0x80,也就是subtype为8
    if pkt[26] == "\x80":     
        if pkt[36:42] not in apList and ord(pkt[63]) > 0: 
            apList.add(pkt[36:42])  # packet的36到42字节存储AP的mac地址
            print "SSID: %s AP‘s MAC address: %s" % (pkt[64:64+ord(pkt[63])],pkt[36:42].encode(‘hex‘))

保存,加可执行权限,并执行。

“` # chmod +x ssniffer.py
# ./ssniffer.py
技术分享

python只需要10来行代码就可以搞定了,是不是很强大。
我们用airodump-ng命令验证一下结果,
# airodump-ng mon0

技术分享

哈哈,最后说一句:“have fun, enjoy !!!”

无线网络安全之Python使用RAW sockets 嗅探WIFI的SSID

标签:无线安全   wifi嗅探   python   raw-socket   无线网络   

原文地址:http://blog.csdn.net/jeanphorn/article/details/45110981

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!