zoukankan      html  css  js  c++  java
  • WPA简单抓包分析

    实验环境

    kali,因为我的是虚拟机,需要再外接一块网卡

    无线网卡的四种工作模式

    • 被管理模式:当无线客户端直接与无线接入点连接时,就是用这个模式
    • ad hoc模式:当网络有相互直连的设备组成时,使用这个模式
    • 主模式:这个模式永续无线网卡使用特制的驱动程序和软件工作
    • 监听模式:使得网卡专心监听空气中的数据包
      下图是四种模式的图示,来自《wireshark 数据包分析实战 第二版》

    WPA—PSK破解原理

    我们都知道破解 WPA-PSK 不是和 WEP 一样抓很多包就能破解的,这跟抓多少数据包一点关系也没有。破解的关键是要获取握手包,这个握手包叫4way-handshake四次握手包。
    WPA 四次握手过程:
      WPA-PSK 初始化工作:
      使用SSID和passphares使用以下算法产生PSK。
      在WPA-PSK中PMK=PSK,PSK=PMK=pdkdf2_SHA1(passphrase,SSID,SSID length,4096)
      第一次握手:
      AP广播SSID,AP_MAC(AA)→STATION
      STATION 端使用接受到的SSID,AP_MAC(AA)和passphares使用同样算法产生PSK
      第二次握手:
      STATION 发送一个随机数SNonce,STATION_MAC(SA)→AP
      AP端接受到SNonce,STATION_MAC(SA)后产生一个随机数Anonce,然后用PMK,AP_MAC(AA),STATION_MAC(SA),SNonce,ANonce 用以下算法产生PTK
      PTK=SHA1_PRF(PMK, Len(PMK), "Pairwise key expansion",MIN(AA,SA) ||Max(AA,SA) || Min(ANonce,SNonce) || Max(ANonce,SNonce))
      提取这个PTK 前16 个字节组成一个MIC KEY
      第三次握手:
      AP发送上面产生的ANonce→STATION
      STATION 端用接收到ANonce 和以前产生PMK,SNonce,AP_MAC(AA), STATION_MAC(SA),用同样的算法产生PTK。提取这个PTK 前16 个字节组成一个MIC KEY,使用以下算法产生MIC值,用这个MIC KEY 和一个802.1x data 数据帧使用以下算法得到MIC值。
      MIC = HMAC_MD5(MIC Key,16,802.1x data)
      第四次握手:
      STATION 发送802.1x data ,MIC→AP
      STATION 端用上面那个准备好的802.1x 数据帧在最后填充上MIC值和两个字节的0(十六进制)让后发送这个数据帧到AP。
      AP端收到这个数据帧后提取这个MIC。并把这个数据帧的MIC部分都填上0(十六进制)这时用这个802.1x data 数据帧,和用上面AP产生的MIC KEY 使用同样的算法得出MIC’。如果MIC’等于STATION 发送过来的MIC。那么第四次握手成功。若不等说明则AP 和STATION 的密钥不相同,或STATION 发过来的数据帧受到过中间人攻击,原数据被篡改过。握手失败了。
      综上所述:
      WPA-PSK安全体系是十分强大和完善的。但他始终是用一个密码保护的,对于这种用密码保护的安全体系,一般情况下我们都可以用一种叫字典攻击的常规攻击手段。针对WPA-PSK的破解,目前也就只有字典攻击这一种方式了。原理是通过截取WPA-PSK的四次握手包中包含的和密码有联系的信息,再依靠这个信息进行字典暴破。
      总之,想要破解WPA-PSK这种强大的加密算法,必须符合以下条件:
      须要有合法客户端,并且存在合法的通信流量,通过抓取数据包进行破解的几率为0,唯一的破解方法是抓取WPA-PSK的四次握手包然后进行字典破解。抓到四次握手包之后,最后破解的关键是字典的好坏程度,有一定的运气成分了。如果碰到强口令时千万不要钻牛角尖,趁早放弃,因为WPA-PSK的破解目前唯一有实际价值的只有弱密码字典攻击。

    抓取无线数据的方法

    也可以参考
    https://www.cnblogs.com/linkr/p/4502161.html
    https://blog.csdn.net/xundh/article/details/50352391
    其实在Linux下按照第一个连接中的linux的方法简单可行,但我想抓取特定的包,便于我自己分析查看,所以还用到了Aircrack-ng这个工具,工具的使用可以参照https://www.jianshu.com/p/fd16236057df下面是我的步骤

    步骤

    查看我的网卡

    airmon-ng start wlan0使用工具将我的网卡激活至监听模式

    airodump-ng wlan0mon,探测周围的wifi,其中IRM为我们宿舍的wifi,它的mac为50:FA:84:3E:05:AC,信道为13

    用wireshark开始抓包,根据上步得到的bssid进行过滤

    802.11包有3种类型,分别为管理、控制、数据
    Beacon是一种管理数据包,选择一个进行分析

    可以看到:
    路由器的物理地址和厂商
    timestamp为该包发送的时间戳
    ssid parameter set wap广播的ssid,这里为IRM确实是我们宿舍的
    supported rates wap支持的数据传输率
    ds parameter wap广播使用的信道,这里为13与开始工具探测的一致

    并能看到wpa,rsn的版本,采用加密方式等属性信息
    接着我让我的手机连接wifi
    开始我的手机发送了请求包,接着wifi进行了回应

    接着进行了认证与关联

    接下来是四次握手过程





    之后就可以进行数据传输

  • 相关阅读:
    tensorflow2.0 GPU和CPU 时间对比
    第一次使用FileZilla Server
    PremiumSoft Navicat 15 for Oracle中文破解版安装教程
    Unmapped Spring configuration files found. Please configure Spring facet or use 'Create Default Context' to add one including all unmapped files.
    ng : 无法加载文件 D: odejs ode_global g.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
    angular
    Github上优秀的go项目
    win10---file explore 中remove quick access folder
    react--useEffect使用
    linux---cat 和 grep 的妙用
  • 原文地址:https://www.cnblogs.com/Qi-Lin/p/12222171.html
Copyright © 2011-2022 走看看