极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1944|回复: 13

邪恶改装2:用单片机实现一次完整的wifi攻击

  [复制链接]
发表于 2017-7-4 15:23:28 | 显示全部楼层 |阅读模式
  0x00前言

  前段时间用TPYBoardv202做了一个简单的WIFI干扰攻击器(ps:没有看过的小伙伴,可以看一下:http://www.geek-workshop.com/thread-28992-1-1.html),最近几天,一直在想,如何用单片机实现一次完整的wifi攻击。于是想在干扰后,是否能成功拿到wifi的登陆密码。

  0x01攻击构思

  利用tpyboardv202将wifi干扰的同时,将v202的ssid和信道改为与受干扰wifi相同的SSID及信道。此时,受干扰用户极有可能去连接虚假的WIFI,当用户连接后,无论用户访问哪个网络都会跳出伪装的输入密码的页面,从而诱导其写入密码。当密码写入后,v202后尝试验证密码的正确性,如果正确将停止干扰,并将密码存入TF卡,否则再次进行干扰。

  0x02搭建开发环境

  1、首先你的需要TPYBoardv202和TPYBoardV102开发板各一块。

  2、网上下载了一个使用esp8266制作Deauth无线攻击的开源固件,是arduino开发的。

  github下载地址:https://github.com/PakchoiFood/TPYBoard-v202-v102-EvilPlans

  里面包含了arduinoIDE(arduino-1.8.2-windows.exe)、固件源码(esp8266_wifi.rar)、TPYBoardv102的源码(TPYBoardv102.rar)和串口调试工具(XCOMV2.0.rar)。另外,还需要esp8266开发包(Arduino15-2.rar)可以从下面链接:http://pan.baidu.com/s/1pLnwz7l下载。

  2、下载完毕后,解压如下:

1.png


  esp8266_wifi.rar的固件是在上一篇【邪恶改装:TPYBoard制作廉价WIFI干扰器】的实验基础上增加了骗取WIFI密码的功能。同时使用串口和TPYBoardv102进行连接,将获取到的WIFI密码传递给v102,v102接收到正确的密码后,进行TF卡的存储,同时也记录下攻击日志。

  3、双击arduino-1.8.2-windows.exe安装arduinoIDE。(如果你已经安装过arduinoIDE,这步可以省略)。

  4、安装完毕后,打开arduino,菜单找到文件—》首选项,点击红色区域进入SDK目录。我的路径是:C:\Users\Sen\AppData\Local\Arduino15。

2.png


  5、解压Arduino15-2.rar,将里面的全部内容直接覆盖C:\Users\Sen\AppData\Local\Arduino15下的文件。

3.png


  0x03编译烧写固件

  1、如果你对V102及V202的使用方法不熟悉,可以参考TPYBoard官方docs网站。

  http://docs.tpyboard.com/zh/latest/tpyboard/tutorial/

  TPYBoardv102源代码(main.py)

  1. import pyb
  2. from pyb import UART

  3. u4=UART(4,115200)
  4. mkdir_='/sd/log.txt' #需先插入TF卡 新建log.txt
  5. pyb.LED(2).on()
  6. while True:
  7.     if(u4.any()>0):# 判断串口是否有数据
  8.         _mag=''
  9.         pyb.LED(3).toggle()
  10.         f=open(mkdir_,'a')
  11.         _data=u4.readline()#读取一行数据
  12.         _dataMsg=_data.decode('utf-8')#将字节数据转码成utf-8 编码的字符串
  13.         print('_dataMsg:',_dataMsg)
  14.         #解析数据
  15.         _index_h=_dataMsg.find('tpyboardpwd')
  16.         _index_e=_dataMsg.find('*')
  17.         if _index_h>-1 and _index_e>-1 and (_index_e-_index_h)>11:
  18.             _dataMsg=_dataMsg.replace('tpyboardpwd','').replace('*','')
  19.             print('GetPwd:',_dataMsg)
  20.             _mag=_mag+'---------------attack log------------\r\n'
  21.             _mag=_mag+'SSID:'+_dataMsg.split('+')[0]+'--'+'PWD:'+_dataMsg.split('+')[1]
  22.             print('-------------------------\r\n')
  23.             pyb.LED(4).toggle()
  24.         if _mag!='':
  25.             f.write(_mag)#将获取到的SSID和PWD 保存在日志文件中
  26.         f.close()
复制代码


  2、本文重点讲解TPYBoardv202的使用方法

  (1)解压esp8266_wifi.rar,arduinoIDE菜单栏文件-》打开esp8266_wifi源码包下的esp8266_deauther\esp8266_deauther.ino

  (2)TPYBoardv202使用microUSB数据线接入电脑。查看安装的usb转串的端口。打开电脑的设备管理器(这里是COM44)

4.png


  (3)工具-》端口,选择COM44(根据自己的实际端口号选择)

5.png


  (4)菜单栏下面的绿色图标菜单区,选择上传,开始编译,烧写固件

7.png


8.png


  (5)查看最下方的日志区域

9.png


  等待编译完成,出现上图信息(状态:变为“上传”)时,按住FLASH的同时,按一下RST按键松开,让TPYBoardv202复位一下,继续按着FLASH,出现下面的信息时就可以松开FLASH按键了。

10.png


  0x04硬件的连接

  代码和程序都完成了,接下来需要将TPYBoardv102和TPYBoardv202的串口连接起来。

  连接示意图:

TPYBoard v102        TPYBoard v202
X1(TX)        RX
X2(RX)        TX


  连接实物图:

实物1.jpg 实物2.jpg


  0x05测试效果

  1、        首先用我自己家的WIFI做测试,我先用手机接入WIFI(Tend_01CB30)。

  2、解压XCOMV2.0.rar,解压双击运行XCOMV2.0.exe串口助手。打开串口根据自己的选择,我的是COM44波特率115200其余默认,打开串口,就可以看到v202打印的信息了。

  ps:刚才v202烧写完固件后会马上自启动,所以这里先复位一下v202,按一下RST,这样我们就可以看到从开始到最后的整个过程了。

         
11.jpg


  3、大家可以看到,v202启动会搜索到了很多附近的WIFI,然后它就判断出那一个信号最强,我这里肯定是我家的最强了,于是v202开始攻击[Tend_01CB30]这个WIFI,同时也会建立一个开放的[Tend_01CB30]热点。攻击时,v202上的小蓝灯会常亮。

12.jpg


  4、此时我的手机已经连接不到我原有路由器的[Tend_01CB30]的WIFI。这时,如果换成完全不知情的别人,极有可能会去手机设置里面看,怎么连接不上网络了?

  5、这时他就会手动去点击连接[Tend_01CB30],当然他会发现有两个一样名字的WIFI,因为我们是Open的,所以他再连接他原有WIFI失败后,会连入到伪装的WIFI上来。

  6、当我们成功骗取他连接我们的WIFI后,只要打开浏览器,输入任何网址,都会自动跳转到虚假网络密码确认页面。

13.png


  7、测试输入12345678点击确认,串口调试助手中可以看到获取到的WIFI密码,然后停止攻击,小蓝灯会熄灭。

  8、同时,v202会自己先去尝试连接,来验证密码的准确性,如果连接成功的话,会自动将密码传送给v102进行保存;如果连接失败,v202会继续进行干扰攻击。

14.png


  9、查看一下TF卡中的log.txt文件,是否记录了刚才破解的密码。

  (TPYBoardv102使用TF卡时,数据不会实时更新,你需要重新复位才能看到刚才更新的log.txt的内容)



  本实验仅供学习参考。

  
回复

使用道具 举报

发表于 2017-7-4 16:20:54 | 显示全部楼层
TPYBoardV102 不是8266芯片的吧?
除了TPYBoard之外,用其他的8266也可以实现么?
回复 支持 反对

使用道具 举报

发表于 2017-7-4 21:41:11 | 显示全部楼层
wing 发表于 2017-7-4 16:20
TPYBoardV102 不是8266芯片的吧?
除了TPYBoard之外,用其他的8266也可以实现么?

102不是8266的,但是支持sd,挺好用的
回复 支持 反对

使用道具 举报

发表于 2017-7-4 23:54:36 | 显示全部楼层
不错啊 替换攻击。。。。很有创意,用单片机实现这些功能
回复 支持 反对

使用道具 举报

发表于 2017-7-4 23:55:46 | 显示全部楼层
有没有能用注入攻击,然后获取握手包的代码。。。这个就狠多了
然后使用彩虹表半暴力破解WIFI密码
回复 支持 反对

使用道具 举报

发表于 2017-7-5 08:59:29 | 显示全部楼层
这手法,看来以后要小心了。不过我的路由限制了mac,即便你知道密码,mac不对也连不上。
回复 支持 反对

使用道具 举报

发表于 2017-7-8 21:26:36 | 显示全部楼层
楼主求 邮件发送ESP 8266开发包 1808308428@qq.com

百度云下载 几KB
回复 支持 反对

使用道具 举报

发表于 2017-7-9 10:15:27 | 显示全部楼层
楼主 能加个  QQ吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-10 09:25:37 | 显示全部楼层
mafeikeji 发表于 2017-7-9 10:15
楼主 能加个  QQ吗

QQ群:157816561
回复 支持 反对

使用道具 举报

高级模式  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号 )

GMT+8, 2017-10-18 04:31 , Processed in 0.043623 second(s), 6 queries , File On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表