剑影系列之八——硬件下的WiFi安全测试

2018-11-19 13,618

大家好,我是剑影(Jianying),这是我的第八篇原创文章。距离我上一次发表文章的时间渐渐的过去了四个月左右了,时间过的真快呀,当前我这段时间在学前端的同时也接触了一些硬件,从小很喜欢硬件,但现在才接触。前段时间偶然看到了关于WiFi的安全测试文章,里面的一个小硬件引起了我的注意,就是ESP8266,然后自己动手去制作这样一个测试工具,在动手的过程当中发生了很多对于我这个新手的问题,但都解决了,在写这篇文章的时候我在想是否应该写,因为网上已经有很好的制作和使用的文章了,我如果再接,是否是多此一举?但我想到,我可以把自己遇到的一些坑说出来,避免还没有接触的朋友踩到,也算是使文章不那么同化!

会讲到两样,一样是:WiFi deauther,一样是WiFi钓鱼。

esp8266 WiFi模块:这种网上有很多,这种是有底板带Micro USB接口的。

wifi13.jpg


0x01WiFi deauther

扫描WiFi设备,阻止选定的连接,创建数十个网络并混淆WiFi扫描仪!

Github:https://github.com/spacehuhn/esp8266_deauther

首先你需要下载源码进行烧录

源码发布页面Github:https://github.com/spacehuhn/esp8266_deauther/releases

你可以用NodeMCU这个工具进行烧录,也可以用Arduino IDE工具进行编译上传

这里我把两个工具所上传的方法演示一下吧

NodeMCU Github:https://github.com/nodemcu/nodemcu-flasher

里面有32跟64位的,适用于Windows

然后此时用数据线连接ESP8266,然后查看端口

以Win7为例,右键计算机,然后选择管理,找到设备管理器,点出端口,就可看到连接着ESP8266的端口,

我这里是COM3,但你那里的端口未必是COM3


wifi2-920x10244-920x1024.png




如果你只看到COM1,并没有看到连接着ESP8266的端口,那是因为你缺少驱动,你必须进行安装驱动。如果安装了还是不行,你可以尝试换一条数据线,因为有些数据线尤其是送的手机自带的数据线基本不带传输功能,只有充电功能。

驱动的安装有别于你的设备芯片

常用的芯片:CH340和CP2102。可以查看你的ESP8266,一般来说CH340芯片为长方形,CP2102为正方形,当然,上面也有写的,可以自己查看。

CH340

wifi55.png


CP2102

wifi33.png


一般用的是CH340芯片

下载页面:https://sparks.gogo.co.nz/ch340.html

如果你下载CH340驱动,你需要注意一下内容,

如果你是Mac用户,并且系统是OSX Sierra(10.12),安装的时候需要注意一下,如果你直接下载的该页面提供的驱动程序而不是网友提供的,会出现崩溃的问题。当你插入你的ESP8266设备时,就会使Mac崩溃。解决办法是删除。

  1. 打开终端并输入: cd /Library/Extensions/

  2. 验证.kext文件是否存在: ls | grep usbserial.kext

  3. 输出应该是: usbserial.kext

  4. 然后输入: sudo rm -R usbserial.kext

  5. 验证.kext文件已被删除: ls | grep usbserial.kext

  6. 输出应为空。

  7. 应删除存储在receiptts文件夹中的文件后: cd /private/var/db/receipts/

  8. 找到enties: ls | grep usbserial*

  9. 输出应该是: codebender.cc.ch34xinstaller.usbserial.pkg.bom codebender.cc.ch34xinstaller.usbserial.pkg.plist

  10. 删除上面列表中的每个文件:  sudo rm -r filename


然后重启就可解决崩溃,然后下载由网友提供的驱动,作者也说道,该网友提供的驱动自己并没有测试,但我测试了,测试的结果是可以连接了,但是如果你是在校学生,用的是电信并且用创翼软件拨的号进行连接上网,那么此问题会让你头大,它会出现每过一段时间,有时候几秒,有时好十几秒出现自动断开,然后你需要重新连接,很麻烦,当然解决方法同样跟上面列出来的一样,删除刚刚安装的驱动。考虑到有时候兼容的问题,有必要的话可以安装一个虚拟机,Mac下面我用的是VMware Fusion安装的Win系统。


好,如果连接上了继续往下走,如果没有请认真再检查一下。

打开NodeMCU,在Opration下选择COM3端口,然后点击Config配置,点击齿轮加载刚刚下载的固件

wifi6-1024x552.png


面的0x00000保持不动,之后点击Advanced,Baudrate设置为9600,Flash size设置为1Mbyte,Baudrate为什么设置9600?

你可以查看你的ESP8266背面,下面有写到的

wifi7.jpg


而我刚刚下载的Bin就是1Mbyte的,所以这里我就设置Flash size为1Mbyte,然后回到Opration,点击Flash烧录,烧录有点慢,你可以在软件上看到烧录的进度条以及ESP8266在不停闪烁

wifi8-1024x570.png


然后烧录好了以后左下角会出现绿色标签,代表烧录成功了。

wifi9-1024x597.png


然后此时重新连接一下ESP8266

然后你会看到WiFi里出现了名为:pwned名称的WiFi,这个就是我们烧录好的程序自己生成的WiFi,密码为:deauther

然后电脑连接上去

输入地址192.168.4.1,然后就可以看到程序的Web页面了

作者注:警告

该项目是测试和教育目的的概念证明。
ESP8266及其SDK都不是为此目的而设计或构建的。可能会出现错误!

仅用于您自己的网络和设备!

它使用IEEE 802.11标准中描述的有效Wi-Fi帧,不会阻止或中断任何频率。
在使用之前,请查看您所在国家/地区的法律法规。

请不要将此项目称为“干扰器”,这完全破坏了该项目的真正目的!
如果你这样做,它只能证明你不了解这个项目代表什么。
在没有正确解释的情况下发布有关此内容的内容表明,您只会针对点击次数,名望和/或资金进行发布,并且不尊重知识产权,背后的社区以及争取更好的WiFi标准。


这也是我想表明的,我写这篇文章只是为了分享我在制作过程当中的遇到的知识点以及坑,而不是教你如何去攻击别人,运用好知识很重要。

我下载的是最新版本,网上很多教程是之前的版本,有些安装的是汉化版的,有些没有,但最新版本已经支持了中文。

来自作者更新版本的描述:

支持的Web界面语言:

  • cn中文

  • cs捷克语

  • 德德国

  • EN英语

  • fr法语

  • 它意大利语

  • RO罗马尼亚

  • ru俄罗斯

  • TLH克林贡语

请注意,512KB版本不包括MAC供应商列表,只有Web界面的英文文件。


怎么设置呢?

首先进入到Settings这个功能下,找到LANG选项,把en修改成cn,然后滑到下面进行保存


wifi10-1024x8302-1024x830.png


就是中文界面了

wifi11-1024x4872-1024x487.png



点击扫描AP时,你需要点击刷新按钮才能看到扫描结果

wifi12-1024x5764-1024x576.png



然后在后面打上勾,点击攻击即可发起deauthentication攻击

什么是deauthentication攻击?

取消验证洪水攻击,国际上称之为De-authenticationFloodAttack,全称即取消身份验证洪水攻击或验证阻断洪水攻击,通常被简称为Deauth攻击,是无线网络拒绝服务攻击的一种形式,它旨在通过欺骗从AP到客户端单播地址的取消身份验证帧来将客户端转为未关联的/未认证的状态。

Jammer和Deauther之间的区别,在SSID这里可以伪造大量WiFi,可以随机,也可以固定WiFi昵称

wifi13-1024x5174-1024x517.png


然后来到攻击这里选择烽火攻击,也就是第二个选项,然后查看WiFi,就可看到许多刚刚自己伪造的干扰WiFi

wifi15-341x1024.png


总结功能:

DEAUTH

通过向您选择的接入点和客户端设备发送解除认证帧来关闭WiFi设备的连接。
这是唯一可能的,因为许多设备不使用提供针对此攻击的保护的802.11w-2009标准。
请只选择一个目标!当您选择在不同通道上运行并启动攻击的多个目标时,它将在这些通道之间快速切换,您无法重新连接到承载此Web界面的访问点。

烽火

信标分组用于通告接入点。通过不断发送信标数据包,它看起来像你创建了新的WiFi网络。
您可以在SSID下指定网络名称。

探测

客户端设备发送探测请求以询问附近是否有已知网络。
使用此攻击通过询问您在SSID列表中指定的网络来混淆WiFi跟踪器。
您的家庭网络不太可能会受到此次攻击的影响。


0x02使用Arduino IDE进行编译上传

下载arduino IDE

然后进行刚刚下载的ZIP当中,打开esp8266_deauther.ino,如果出现这个提示

wifi20-1024x8811-1024x881.png


右键属性修改打开方式选择Arduino IDE就可以了,如果软件为英文,Ctrl+逗号,就可设置为中文

然后如下图设置Arduino IDE

wifi241.png


你会发现你没有开发板为NodeMCU这个版本的,那么你需要点击文件选择首选项(Ctrl+逗号),然后在附加开发板管理器添加如下网站:

  • http://arduino.esp8266.com/stable/package_esp8266com_index.json

  • http://phpsecu.re/esp8266/package_deauther_index.json

然后点击工具->开发板->开发板管理,会加载一会,然后搜索esp8266,然后安装,然后再安装:

arduino-esp8266-deauther

wifi22-1024x5591-1024x559.png



注:esp8266安装2.0.0版本

然后点击左上角的上传,上传需要一点时间,此时ESP8266在不停闪烁

上传成功左下角会显示出来


wifi25-1024x6641-1024x664.png


0x03WiFi钓鱼

这个源码是来自于网上的一位朋友,在烧录这个源码的时候还算顺利。

达到的效果就是可以覆盖原来的WiFi,自动创建一个一模一样的共享WiFi,然后点击连接成功后会跳转到钓鱼页面,

然后当你输入WiFi密码后,就可解除覆盖,脸上原来的WiFi,但攻击者那边的后台就收到你刚所输入的内容。

下载Flash工具


wifi26-1024x122.png

点击下载列下的空白就可下载。

固件 x599

代开Flash工具,选择第一项,然后根据图中设置,这里注意,默认文件栏那里是没有打钩的,你要自己打钩,然后全变为绿色代表正常,如果出现红色代表错误,重新打开软件再填写。

wifi301-1024x8951-1024x895.png


设置好后点击START开始烧录

完成的提示

wifi31-1024x874.png


烧录成功后应该会出现一个名为hh的WiFi昵称

如果没有出现请重新连接ESP8266或者按一下esp8266上的rst。

以上完成后进行上传WEB文件

找到Arduino IDE的tools文件,然后将源码当中的tools替换进去,

然后打开Arduino IDE,新建一个项目并保存到一个目录下,点击工具下的esp8266 sketch data upload,出现提示选择no,会出现这样的提示:SPIFFS Warning: mkspiffs canceled!  不用管这个。

然后找到保存目录,里面会生成一个data目录

然后将钓鱼源码放进这个目录,然后跟图所设置

esp11.png



然后点击工具,选择esp8266 sketch data upload,然后等待上传,上传成功

wifi39-1024x405.png


并且ESP8266没有闪烁就代表执行上传好了,然后重新断开ESP8266再连接hh WiFi,密码为:m1234567。然后访问http://192.168.1.1/backdoor.html

wifi41-1024x523.png


如果上传成功但是访问页面一片空白的话,请将ESP8266版本设置为2.3.0,然后再重新上穿,如果还是一片空白的话请点一下ESP8266上的rst按钮。

当被钓鱼者输入密码后,需重新连接然后再次打开页面,就可看到被钓鱼者输入的密码。

如果烧录失败或烧录了没反应,请尝清空Flash,或者刷一个Flash大小的空.bin进去。

第一次写关于硬件方面的文章,由于刚接触,所以文章会出现一些错误,还请能够指正出来,我写这样的文章奔着分享的精神以及记录的精神,本文里所有内容只作知识探讨。

本文作者:HtM

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/81869.html

Tags:
评论  (2)
快来写下你的想法吧!
  • Demo 2018-11-19 21:23:14

    可不可以,转载文章啊?

    • SecPulse 企业认证 2018-11-20 0:15:18

      @Demo 本文属于原创作者文章,未经授权不能转载,可以直接转本文文章链接呢~

HtM

文章数:8 积分: 100

学习知识,要学会让自己放弃的稍晚一些。

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号