在破解wifi密码之前,我们要有一个有效的密码字典包,里面要包含大家最常用的密码,还要根据大家的习惯设置相应的密码。我们怎么看大家最常用的密码呢?我在某个软件里看到了常见的wifi密码,上面提示,40%的人用了这些密码,所以你得密码字典中只要包含了这些密码,你就可以破解40%的wifi密码了!大家不要关心代码,只要知道我在生成密码字典就可以了(想要获取教程中使用的密码字典请关注微信公众帐号:开发者周刊,回复『密码字典』获取):
但是网上找不到包含这些密码的密码字典怎么办?我决定自己用JAVA写代码生成密码字典,我创建了一个数组,里面不仅包含上面,还包括我从网上找来的其他常用密码:
但是仅仅包含这些密码还不行,因为还有不少人不是用这些密码,但是很多人也会用数字、字母、特殊符号组合,但是这些也是有规律的,数字组合除了上面常用的组合方式外,也会有其他组合方式。但很多人不会随便用自己都记不住的数字组合,一般都是用出生的年月日或者用年月日与其他方式组合。所以我又创建下面这些数组:
还有的人会拿自己或者家人的名字首字母、名字全拼或姓氏全拼与上面常用数字组合、出生年月日、特殊字符任意组合。所以我为了缩小密码字典体积,只录入了北京地区常用姓氏和其他个人认为常见的姓氏,如下:
对于名字全拼,为了保证覆盖面和有效性,我无奈只能把每个字母列出来,然后在所有韵母与这些字母组合,只保留可以组成密码的拼音,这可着实花了我一段时间,下面这些拼音是否包含你的名字拼音呢:
特殊字符用的也不多,这里只收录了可能用到的特殊字符。
对于生成代码,由于代码较多,这里就不截图了,如果想要源码,请关注微信公众帐号[开发者周刊]留言索取。
好了,接下来就是生成密码字典了,由于和名字全拼相关的密码字典较大,而且不是非常常用,我把它单独生成:
这两个密码生成之后比较大,但是对于电脑来说没什么,分别为100G和358M,所以后面我们不首先用这些密码包。
下面我们生成常用的、强大的密码字典,具体包含组合方式见下面截图:
首先输入字典名称,按回车,输入3生成我们的超级密码,对于为什么这样输入大家不用关系,只知道我们在生成字典就行了,我将文件名命名为”jikefeng.txt”,然后按回车输入3开始生成:
好了,我们去看看生成的字典密码,一共1.15G,大小还可以,比网上几十G的密码包好太多了:
好了字典包生成好了,接下来还是步入整体,开始破解了。首先看一下附近的wifi:
我们选择破解信号最强的wifi,我住在一楼,上面wifi中最后一个ziroom101从名称上看也是在1楼,所以我就破解这个了。
首先要确保电脑安装 Xcode 和MacPorts,Xcode 可以直接在 App Store下载,MacPorts 需要进入它的官网下载。MacPorts 是一个软件包管理系统,用来简化 Mac OS 系统上软件的安装,与Fink和BSD类ports套件的目标和功能类似。就像apt-get、yum一样,可以快速安装些软件。把这两个软件安装成功后就可以开始安装 Aircrack。打开终端输入命令:
sudo port install aircrack-ng
要求输入密码,输入后可能会提示 Port aircrack-ng not found ,没关系我们需要更新ports tree,在终端执行:
sudo port -v selfupdate
现在可以开始安装 Aircrack 了,如果还提示 not found,那么再次执行更新ports tree 命令。安装 Aircrack 会比较慢,等安装好后 ,我们需要将 Aircrack 命令建立一个链接,类似Windows下的超级链接,在终端输入:
sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport
然后在终端内输入:
airport -s
就能查看到附近的 Wifi 信息了,如下图:
SSID 是wifi 名称,RSSI 是信号强度,绝对值越小信号越强,CHANNEL 是信道。挑一个信号强的信道进行监听抓包(比如我们要破解的ziroom101在信道13 ),在终端输入:
sudo airport en0 sniff 13
中间会提示输入管理员密码,输入密码后回车就开始抓包了,如下图:
过几分钟后就可以按「 control + c 」退出抓包,会自动保存并提示抓得包保存路径:
接着进入 tmp 文件就可以查看我们抓到的数据包了,进入 tmp 文件夹我们可以使用 Finder 的前往文件夹功能 ,如图:
我们在桌面上建立文件夹,命名为”jikefeng”,将我们之前生成的密码字典和抓的包都放进去,并且把抓的包也重命名为”jikefeng”,如下:
接着我们输入下面命令行进入我们在桌面上创建的”jikefeng”文件夹:
cd Desktop/jikefeng/
进入”jikefeng”文件夹后输入:
aircrack-ng -w jikefeng.txt jikefeng.cap
就可以看到cap文件内的抓包情况,Encryption 中(0 handshake)是抓包失败,(1 handshake)则是抓包成功。点击终端,按下「command + f」进行搜索1 handshake,图中看到第3行抓包成功,则在「Index number of target network ?」这里输入3后敲回车:
之后剩下的就是等待了,当破解密码成功(发现了密码)后会出现下图提示:
所以我们破解出了ziroom101的密码为12344321,令人兴奋的是该密码正是常用密码之一,所以几乎秒破,一点都没有挑战难度。
利用相同的方法,我破解出了附近wifi中的其他密码(其中破解wifi名为zhouyubo密码花的时间稍微长点,但我也没管它,剩下的就交给电脑了):
zhouyubo的密码为zhouyonghu19911129
Netcore_5G的密码为xy11112222!
综合以上,怎么样才能保证密码的安全呢?没有百分百的安全,因为密码字典可以包含所有密码,只能把密码设的尽量复杂,但是输的太复杂自己又记不住、输入起来也麻烦。所以,怎么平衡就看自己喽~
还有,在生成密码字典时候,如果你知道密码主人的一些信息,你可以根据这些信息生成更准确的密码,比如知道姓名、手机号、QQ号、出生日期等,这些都可能是密码的一部分。因为很少有人会用无意义不好记的数字做密码,就算有,准备好相应的密码字典就可以了。网上也有密码字典生成工具,也可以直接下载相应的密码字典包,但是我下载了不少发现几乎就没几个靠谱的,所以需要多找找。记住,破解密码的时候先使用弱口令密码字典,所谓弱口令密码就是最常用的密码,比较大部分人都会用这些密码,当然,我上面用的密码字典中已经包含了几乎所有的弱口令密码,并且把弱口令密码放到密码最前面,让这些密码最先被使用,这样破解起来也省事,省的来回换字典了。
想要获取教程中使用的密码字典及开发交流请关注微信公众帐号:开发者周刊,回复『密码字典』获取教程中用到的所有密码字典。