这一篇给大家介绍操作系统的初步配置和4种破解Wifi连接密码的方式,分别为WEP类型、WPA2-PSK类型、利用WPS功能以及本地破解历史连接记录。上一篇介绍过,破解密码用的操作系统我们选择使用Kali Linux,网卡选择了TP-LINK的TL-WN722N,由于这里主要介绍破解方法,所以路由器是由笔者自行任意设置。
   在这里特别说明一下,Kali Linux中集成的工具数量众多,各大平台用于Wifi密码破解的工具也很多,这里我们选择比较有代表性的数种工具进行介绍,并不能涵盖全部的主流工具。在Kali Linux中,关于Wifi密码破解的工具,有专门的分类,如下图所示:

打开Kali虚拟机(虚拟机的安装过程不再讲解,网上很多,请大家自行搜索安装),在上方的菜单栏中选择“虚拟机”选项卡,在“可移动设备中”选择无线网卡连接Kali系统。提示连接成功后,Kali系统就能够正确的加载无线网卡的驱动。
   特别提醒:使用Kali应当养成一个好习惯,在没有特殊需求的情况下,经常使用apt-get update和apt-get upgrade升级一下软件。
   使用无线网卡破解Wifi密码,首先需要对无线网卡在Kali中进行一个设置,加载网卡并设置为监听模式。无线网卡只有工作在监听模式,才能够抓取周围能够探测到的无线网络信号数据包。在无线网卡被正确连接到虚拟机后,我们打开系统终端,查看一下网卡的情况,命令为ifconfig -a,如下图所示:

图中wlan0就是我们连接的无线网卡,eth0为虚拟有线网卡,是VMware提供的,lo为本地环回地址,即127.0.0.1。这里需要再次确认加载了无线网卡,使用一条命令:


这里ifconfig wlan0 up 就是确认激活无线网卡为可用状态,此时没有异常提示的情况下,无线网卡就正式启动了。如果有疑虑,还可以使用专门查看无线网卡状态的命令iwconfig进行查看,如下图所示:

这样就再次确认了无线网卡的成功加载,下一步,要将无线网卡设置为监听模式,设置命令为:

这里的命令airmon-ng start wlan0是利用了Aircrack-ng工具套件(这也是破解WiFi密码将要用到的重要工具集)中的一个设置工具。使用这个工具后,就可以将无线网卡成功设置为监听模式,如下图:

这里做一个提示,如果设置失败,需要重新加载网卡,如果别的程序或者进程在占用这个无线网卡,设置是不会成功的。设置成功后,使用iwconfig命令查看一下无线网卡,如果显示如下图:

无线网卡的名称由wlan0变为wlan0mon,就确认设置成功了,此时无线网卡就是工作在监听模式中。在Kali Linux 1.x的版本中,监听模式无线网卡名称为mon0,2.0版本后更改为wlan0mon,这里有区别,需要注意一下。下面讲解一下密码破解的内容。

1.WEP密码破解
前面的连载文章中我们已经介绍过WEP加密,WEP是一种比较老的加密方式,现在已经被淘汰。作为技术讲解,还是觉得有必要加入进来。这里我们使用两种工具进行演示,都是Kali Linux系统下,一种是大名鼎鼎的Aircrack-ng工具套件,另一种是Fern WIFI Cracker。首先我们使用Aircrack-ng讲解一下破解过程。这里笔者预置了一个SSID为target的无线路由器,采用WEP加密方式。
破解过程的第一步,就是需要搜索无线网卡能够接收探测到的周围无线网络信号,这里使用Aircrack-ng套件中的airodump-ng工具,命令如下图:

这里使用的airodump-ng wlan0mon,就是调用工具列举出周围能够探测到的无线信号,这里的工具列举出来的无线信号已经比较详细,工具探测截图如下:

这里有几个项目需要了解一下:

BSSID:无线路由器的MAC地址
PWR:无线路由器的信号强度(负值的绝对值越低信号越强,绝对值50以上的信号就一般了,70以上的信号算是比较差的)
CH:无线路由器工作信道
MB:无线路由器速率
ENC:加密方式
ESSID:无线网络的名称,也就是打开终端搜索到的无线网络名
STATION:连接某无线路由器的一个客户端,例如笔记本电脑、手机等
这里我们将这个终端放在这里不要关闭,重新打开一个新的终端,输入使用新的命令,如下图:

airodump-ng –ivs –w wep –c 1 wlan0mon这条命令,--ivs是破解WEP重要的命令,抓取WEP加密的iv向量,用于破解密码使用。-c 1,是指定抓取工作在信道1的无线网络数据包。命令运行后效果如下:

破解WEP的关键在于抓取数量足够多的iv包,采用WEP加密的无线网络中,更多的iv包意味着无线网络具有更大的数据传输流量。破解WEP最理想的情况是,目标网络中有个终端正在下载、看视频、传输大文件等操作,这些都是产生大流量iv包的情况。如果没有大流量的支持,破解需要收集足够多的iv包是需要很长时间的,这里使用ARP REQUEST攻击进行流量激发。保持当前窗口运行,新建一个终端窗口,输入如下命令:


这里aireplay-ng是套件中的一个工具,参数设置为-3,是设置做ARP REQUEST攻击,-b后面设置无线路由器的MAC地址,-h后面设置当前与目标无线路由器连接的一个终端的MAC地址(破解WEP需要有个合法终端已经连接在目标无线路由器上)。Aireplay-ng还有很多其他的参数可以使用,请大家自行上网搜索一下,这里不再列举。执行命令后可能出现如下情况:

最后一行说明无线网卡工作在信道5,无线路由器工作在信道1,两个信道不匹配,所以无法进行ARP REQUEST攻击。这里提醒大家,无线路由器设置好后,是工作在指定信道上的,而无线网卡为了搜索更多网络,是循环工作在不同信道上的。这里大家将这个命令重复执行多几次,直到出现如下提示,说明无线路由器和无线网卡恰好工作在同一个信道上,ARP REQUEST攻击成功:

这里需要大家耐心等待,保持终端窗口运行,终端和无线路由器产生的流量足够多,抓取足够多的iv包才可以成功破解。稳妥起见,建议抓取十万以上iv包再进行密码破解。抓取到的iv包,工具会自动存储在/home文件夹下,一般以wep-01.ivs这种名称进行保存:

在抓取到足够多的iv包后,进行密码破解:

这里我们使用命令aircrack-ng wep-01.ivs,也就是使用aircrack-ng这个工具对抓取到的ivs包进行破解,下面会提示需要输入一个编号用于指定破解目标,通过观察我们目标的target无线网络编号为3,这里我们输入3(可以看到IVs包有95876个,足够用于破解,抓取到很多无线网络的数据包的原因在前面说过,这些网络都是工作在信道1上的网络,抓取时同信道信号均可抓取)。
   输入编号3执行后,工具即可破解,如下图所示:

绿色标注的部分,就是破解出来的WEP密码1234567890123,工具自动进行的解密校验提示正确率是100%,WEP加密的密码至此成功破解出来。
   下面我们使用Fern WIFI Cracker进行演示,首先打开工具:

第一栏选择无线网卡wlan0,如果不显示可以点击右侧refresh按钮。选择好后点击下面的“Scan for access point”按钮,稍等片刻,待扫描网络充分后,选择WEP加密的WiFi按钮,进入如下界面:

选中我们的目标WiFi信号,右侧打勾选项,点击Attack按钮开始攻击。此时软件自动进行抓取ivs包,自动进行ARP REQUEST攻击激发流量。在等待足够长的时间后,密码可以自动进行破解。

WiFi密码的数据包抓取,受限于无线路由器和无线网卡的质量、距离、障碍、信号强度等多种因素,所以破解未必能一次成功,破解需要足够的耐心、更好的信号质量。WEP的密码破解就讲到这里,作为了解即可,现在很难找到WEP加密的无线网络了,甚至部分无线路由器已经默认不支持WEP加密了。
2.WPA2-PSK密码破解
首先简单讲解一下WPA/WPA2和WPA-PSK/WPA2-PSK的区别。
  WPA/WPA2是一种比WEP强壮的加密算法,挑选这种安全类型时路由器将选用Radius服务器进行身份认证并得到密钥。因为要架起一台专用的认证服务器,成本相对较高并且维护也很繁琐,所以不推荐普通用户运用此安全类型。
  WPA-PSK/WPA2-PSK安全类型其实是WPA/WPA2的一种简化版别,它是依据同享密钥的WPA形式,安全性很高,设置也对比简单,合适普通家庭用户和小型企业运用,目前家用路由器基本都是这种加密。其包含如下几种选项:
  认证类型: 该项用来选择体系选用的安全形式,即自动、WPA-PSK、WPA2-PSK。若挑选自动选项,路由器会依据主机请求自动挑选WPA-PSK或WPA2-PSK安全形式。
  加密算法: 该项用来挑选对无线数据进行加密的安全算法,选项有自动、TKIP、AES。默许选项为自动,选择该项后,路由器将自动挑选TKIP或AES加密办法。这里需要注意802.11n版本不支持TKIP算法。
  PSK密码: 该项就是WPA-PSK/WPA2-PSK的初始密钥了,在设置时,需求为8-63个ASCII字符或8-64个十六进制字符,这里也可以理解为设置的无线网密码。
  组密钥更新周期:该项设置播送和组播密钥的定时更新周期。
下面的路由器设置界面截图,大家可以清晰的看到相关选项:

下面讲解一下WPA2-PSK方式加密的无线网络密码破解过程,主要使用Aircrack-ng工具套件和基于windows的解包工具EWSA进行密码破解。
   在破解开始之前,和破解WEP加密时一样,在Kali Linux系统中首先把无线网卡加载激活成功,设置为监听状态,这里不再重复说明方法,请自行参考前文的设置操作。监听模式设置完成后,使用airodump-ng wlan0mon探测附近无线网络的信号,如下图所示:

图中标绿的部分就是我们要破解的目标,SSID名称设置为target,使用WPA2-PSK加密,工作信道11,MAC地址末位F8:06,信号强度-40,说明信号还是很不错的。这里重点需要关注的是工作信道,这里是11。把这个终端窗口留存在这里作为监视使用,不要关闭,新建一个终端窗口出来,作为抓包使用。这里的抓包命令为:
  airodump-ng –c 11 –w wpa2 wlan0mon
  简单解释一下,-c 11指设置抓包信道为11信道,-w wp2为抓包后保存的数据包文件以wpa2命名。这里再次强调一下,和WEP抓包破解不同,WPA2抓取的是无线终端和无线路由器建立连接时(注意,是“建立”连接时)的包含有连接密码的握手包,这个问题在之前的文章中讲解连接原理时说过,请自行翻阅即可。WEP抓包破解追求ivs数据包的数量较大,WPA2-PSK抓包破解追求的是抓取到的握手包里面含有有效的连接密钥。这个区别很重,需要认真理解并且记住。执行此条命令后,终端显示如下:

图中标绿的部分就是设置的目标无线路由器,MAC地址末位为F8:06,此时说明无线网卡在监听模式下能够正常识别并等待抓取握手包。在下方的显示部分中,并没有观察到有终端,也就是STATION处,有合法终端已经连接到目标路由器上,有些读者可能会觉得这很不利,但恰恰相反,此时是比较有利的情况。破解WEP时希望已连终端越多越好,流量越大越好,但在破解WPA2-PSK时,“建立“与无线路由器的连接过程次数越多,无线网卡抓取到包含有效密钥的验证连接数据包成功率也就越高。理想情况下,有终端不断的断开、连接目标无线路由器,这种情况最容易抓取握手包。
    抓包的区别明确了破解需要的耐心程度。一般来说有较大流量的情况下WEP的破解还是很轻松的,而WPA2-PSK的抓取方式则是等待有终端能够以较好的信号状态连接目标无线路由器,并且我们的无线网卡稳定抓取到一个包含有密钥的有效数据包才能够进行下一步的破解工作。未连接的终端设备主动连接目标路由器,抓包等待的过程类似守株待兔,我们需要较好的信号条件和运气,才能够一次抓取到包含密钥的握手包。如果一次抓取没有成功,目标路由器已经连接了无线终端,并且不会有新的无线终端再去连接目标路由器时,也不用担心,可以通过利用工具主动将已连终端“踢“下线,在终端自动重连目标路由器时,抓取握手包,并且这个”踢“下线再重连的过程是可以重复进行的。
    这里需要特别说明一下,抓取握手包是工具配合网卡联合工作的一项过程,这个过程受限于信号强度等问题,可能工具会提示抓取成功握手包,但破解软件却判断出所抓取的握手包中并没有包含密钥,也就是无效握手包。这种情况还是很正常的,对于WPA2-PSK的无线网络密码破解,依据笔者的经验,在抓包这个过程中,一半靠工具及无线网卡,一半靠运气。
    将已连接无线终端“踢“下线的过程,实际上是利用无线网卡发送特定的数据包进行的,这个攻击过程称为发起DeAuth攻击。发起攻击的工具是Aircrack-ng套件中的aireplay-ng,这个工具在WEP破解时使用过,用作发起ARP REQUEST攻击。这里我们需要更改工具的运行模式参数,命令如下图所示:

参数基本为aireplay-ng –0 5 –a APMAC –c clientMAC wlan0mon,这里重点解释一下参数。-0是发起DeAuth攻击的设定参数,后面5是设置的攻击次数。也就是说,执行一次这条命令,工具会自动发起5次DeAuth攻击。攻击次数的参数建议大家根据经验和实际情况适当的调整,一般来说5次应该是差不多的,只要能保证把目标路由器终端“踢“下线即可。-a后面跟上目标无线路由器的MAC地址,-c后面跟上目标无线终端的MAC地址,这也就是指定了目标无线路由器和目标终端,发起的攻击只会针对这样特定的连接进行,并不影响周围其他终端和无线路由器的正常使用。
    重点提醒:鉴于无线网络的不确定性,执行命令发起攻击时,一定要在我们之前预留的监视终端窗口中观察,目标无线终端一定要已连接时攻击才有效。


上图中展示了在发起攻击时可能出现的提示,这和破解WEP时一样,可能由于信道未同步的问题造成攻击失效,在此,攻击命令也是需要多次执行多次尝试,待到工作信道同步的时候发起攻击,才能够有效。命令成功执行发起攻击的结果如下图所示:

图中可以看到,无线网卡成功发起了5次DeAuth攻击,但此刻可能会发现,目标无线终端并没有被“踢“下线,依然保持了连接状态。这就说明攻击失效,未能达到目的。这里的原因也很多,主要还是由于无线连接的不稳定性造成的。这里需要大家进行多次尝试,攻击以抓取到有效的握手包为止,这个过程可能持续数次甚至数十次。在破解过程最初的终端窗口中,也就是airodump-ng wlan0mon的那个终端窗口中,抓取握手包成功的提示会出现在顶部位置,如下图:

图中标绿的部分,就是提示成功抓取到了握手包WPA handshake,但是特别提醒,这个数据表并不一定是包含了SSID和密钥的有效包,还是需要验证的!!!如果验证无效,前文的破解过程就需要再来一遍。这里抓取成功的握手包会在Home下:

图中的wpa2-01.cap就是用来破解密码的握手包,有读者会问我为什么不讲Kismet这个工具,按照笔者的想法和实际情况,kismet可能会在后续的补充章节里讲解。在抓取到握手包后,就可以利用工具和字典去进行解密了。aircrack-ng本身就具备解密的功能,这里推荐使用EWSA的原因是可以比较方便的调用GPU加速,并且可以直观的验证有效性。首先还是简单讲一下使用aircrack-ng破解握手包的命令:
   aircrack-ng –w dic wpa2-01.cap
   命令中的dic就是用来破解密码的字典,基本上破解成功与否,主要看字典的强大程度。但破解握手包和破解WEP的向量包并不一样,破解握手包是一个枚举校验的过程,如果密码复杂字典又很大,那是会花费相当长的时间去破解的。下面介绍EWSA这款跑包工具:

工具的操作非常简单,导入.cap握手包,加载字典,点击开始,就可以等待破解。这里特别提醒,如果计算机不做其他的工作专职跑包 ,可以在选项菜单中对CPU和GPU进行详细设置,GPU就是计算机的显示芯片,计算能力非常强,是跑包工作的好选择。跑包之前 ,EWSA会对握手包进行有效性校验,包含密钥的有效握手包才能进行跑包工作。校验界面如下所示:

跑包过程界面:

GPU的计算能力决定了必将成为专业跑包的主力处理芯片。专业的跑包团队会购买大量的高端显卡组建交火系统或者SLI系统进行跑包(类似挖矿机),字典的丰富程度以及硬件计算能力比家用桌面电脑强大很多,如下图所示:

建议大家在抓取有效握手包后,如果自己跑包有困难效率低,不妨花费较小的金额去淘宝或者网络上搜索一些专业跑包服务,会让自己轻松很多。这里就不给大家推荐了,以免安利之嫌。

3.利用WPS功能破解
首先提示:为了安全考虑,实际使用中请在无线路由器配置中关闭WPS功能!!
利用WPS功能破解无线路由器也就是人们常说的跑PIN码破解。WPS(Wi-Fi Protected Setup)是Wi-Fi保护设置的英文缩写。WPS是由Wi-Fi联盟组织实施的认证项目,主要致力于简化无线局域网安装及安全性能的配置工作。WPS并不是一项新增的安全性能,它只是使现有的安全技术更容易配置。
WPS提供了一个相当简便的加密方法。通过该功能,不仅可将都具有WPS功能的Wi-Fi设备和无线路由器进行快速互联,还会随机产生一个八位数字的字符串作为个人识别号码(PIN)进行加密操作。省去了客户端需要连入无线网络时,必须手动添加网络名称(SSID)及输入冗长的无线加密密码的繁琐过程。简单来说,WPS给用户提供了一键接入无线网的便利,但是便利带来的就是安全隐患问题。目前很多无线路由器都提供了WPS功能,一般在无线路由器的按钮区都会提供一个WPS按钮,例如下图:

WPS功能的使用方法大致就是新终端设备在路由器按动WPS后很方便的接入无线网络,这里不再赘述。利用WPS功能连接的关键点在于用来加密验证的随机八位数PIN码,在负载密码面前,八位数字的加密强度可想而知。下面大致介绍一下PIN码的相关特点:
   PIN码是随机产生的8位数字。在WPS加密中PIN码是网络设备间获得接入的唯一要求,不需要其他身份识别方式,这就让暴力破解变得可行。其次,WPS PIN码的第8位数是一个校验和(checksum),因此攻击者只需算出前7位数即可。这样,唯一的PIN码的数量降了一个级次变成了10的7次方,也就是说有1000万种变化。
   在实施PIN的身份识别时,接入点(无线路由器)实际上是要找出这个PIN的前半部分(前4位)和后半部分(后3位)是否正确即可。当第一次PIN认证连接失败后,路由器会向客户端发回一个EAP-NACK信息,而通过该回应,攻击者将能够确定的PIN前半部或后半部是否正确。换句话说,黑客只需从7位数的PIN中找出一个4位数的PIN和一个3位数的PIN。这样一来,级次又被降低,从1000万种变化,减少到11000(10的4次方+10的3次方)种变化。因此,在实际破解尝试中,黑客最多只需试验11000次。简单来说,实际的PIN码变成了“前四后三“的两组数字,并且这两组数字的破解是异步独立的。最后,有些情况下还可以利用MAC地址和PIN码的对应关系进行尝试,能够大大缩短破解时间。
   下面在Kali Linux系统中,演示使用reaver和wifite进行PIN码的破解过程。破解的第一步和前文所述其他加密方式的破解一样,先将无线网卡正确加载激活至监听模式。这个过程不再复述。然后使用airodump-ng工具,探测周围无线网络信号,如下图:

这里信道CH为3,新建一个终端窗口,输入reaver执行,打开我们要使用的工具,简单查看一下参数说明:

具体的参数请大家自行上网搜索研究,这里不再多介绍。破解PIN码的功能使用的命令参数相对比较简单,如下图所示:

这条命令中,-i参数只是指定一个网络介质,也就是破解使用的无线网卡MAC地址,-b后跟上目标无线路由器的MAC地址,-a为自动检测最佳配置,-S为使用小DH keys用以加速破解过程,-vv输出破解过程,-c指定信道。这里还可以加入-p等参数,设置为从前四位PIN码破解起。Reaver这款工具的设计相对比较智能,这里-p参数不使用也可以。执行后即可进行破解过程:

必须说明的是,破解PIN码和之前的跑包破解密码不同,跑包破解密码追求速度,但破解PIN码还是需要速度较慢一些,可能一秒钟只能破解1到2个PIN码。原因是由于WPS功能中PIN码的特性,告诉破解PIN码很容易导致将无线路由器“跑死“,也可能被无线路由器屏蔽。目前无线路由器的设计者们均对WPS功能加入了防暴力破解PIN码的功能,所以,足够慢的速度反而能够提高破解的成功率。
   破解PIN码是一个很看运气的过程,鉴于无线信号的非可靠特性,以及无线路由器质量的参差不一,PIN码破解成功可能需要多次尝试,只要把握住速度慢、有耐心、多尝试的原则即可。
   下面给大家简单介绍一下wifite这款工具,在Kali Linux中左上角的应用程序中可以很方便的找到这款工具,点击打开后会出现参数介绍的界面:

这款工具具备破解WEP、WPA/WPA2以及PIN码的多种功能,这款工具的主要特点是批量自动化,但跑包破解单个WEP、WPA/WPA2-PSK这种数据包的效果,可能并不如aircrack-ng套件好用。如果批量破解WPS功能的无线路由器,这款工具是个相对还不错的选择,使用方法也很简单,首先运行工具,终端输入wifite执行:

然后软件会自动进入信号探测界面:

软件能够自动提示所探测到的无线网络是否开启了WPS功能,简洁明了。这里也提醒大家,在使用其他工具破解WPS的PIN码时,倒是不如先用wifite探测一下目标是否开启了WPS功能,已经评估一下信号质量(wifite能够以颜色区分信号质量,绿色最佳)。根据软件提示,按Ctrl+C键可以锁定目标无线网络的列表(此时已经不再进行扫描)。在下方输入想要破解的无线网络编号:

执行后,软件即可自动执行破解过程,破解成功率的问题,也是依据多种因素决定:

在这里需要提醒大家,在破解PIN码成功后,无线网卡与目标无线路由器连接后,软件能够一并读取目标无线网络的连接密码,也就是WPA2-PSK或者WEP加密的密码。如果需要长期连接一台目标无线路由器,在破解成功后,一定要记住这个PIN码!!!这样的情况下,只要目标无线路由器不关闭WPS功能,即使修改了无线网密码,攻击者也能够方便的再次接入目标无线网络。

4.本地破解历史连接记录
这一节简单介绍在windows系统下,利用软件读取本地存储的已连接WiFi密码的方法。我们使用到的工具是一款名叫WiFipasswordDecryptor的工具,使用方法非常简单:

打开软件后,点击Start Recovery,即可读取密码:

软件使用非常便捷,适用于一些特殊的场合。比如了解到某个笔记本计算机接入过想破解的目标无线网络,那么无论何时何地,只要有机会在这台笔记本上运行一下这个软件,即可抓取目标无线网络的密码,省去各种破解的过程。
  WiFi密码破解的部分就讲到这里,关于WiFi安全的各类优秀软件工具还有很多,篇幅限制不能一一作出演示讲解,后续如果有机会,将挑选数种具有代表性的其他工具进行一些简单讲解和演示。

源链接

Hacking more

...