邪恶改装2:用单片机实现一次简单的wifi密码欺骗
0×00 前言
前段时间用TPYBoard v202 做了一个简单的WIFI干扰攻击器(ps :没有看过的小伙伴,可以看一下:http://www.freebuf.com/column/136985.html ),最近几天,一直在想,如何用单片机实现一次较完整的wifi攻击。于是结合钓鱼考虑是否能利用单片机成功拿到wifi的登陆密码。
0×01 攻击构思
第一步,利用tpyboard v202将wifi干扰;
第二步,将v202的ssid和信道改为与受干扰wifi相同的SSID及信道;
第三步,制作钓鱼页面;
第四步,受干扰用户极有可能去连接虚假的WIFI,当用户连接后,无论用户访问哪个网络都会跳出伪装的钓鱼页面,从而诱导其写入密码。
第五步,当密码写入后,v202后尝试验证密码的正确性,如果正确将停止干扰,并将密码通过tpyboard存入TF卡,否则继续干扰。
0x02 搭建开发环境
1、首先你的需要TPYB oard v202和TPYBoard V102(用于接收密码信息)开发板各一块,tpyboard V102自带TF卡,而且用python编程,相对来说操作较简单,且能支持存储。
2、网上下载了一个使用esp8266 制作Deauth无线攻击的 开源固件,是arduino开发的。 github下载地址:https://github.com/PakchoiFood/TPYBoard-v202-v102-EvilPlans 里面包含了arduino IDE(arduino-1.8.2-windows.exe )、固件源码(esp8266_wifi.rar )、TPYBoard v102的源码(TPYBoard v102.rar)和串口调试工具(XCOM V2.0.rar )。另外,还需要esp8266开发包(Arduino15-2.rar )可以从下面链接:http://pan.baidu.com/s/1pLnwz7l 下载。
3、下载完毕后,解压
esp8266_wifi.rar的固件是在上一篇【邪恶改装:TPYBoard制作廉价WIFI干扰器】的实验基础上做了修改,使用串口和TPYBoard v102进行连接,将获取到的WIFI密码传递给v102,v102接收到正确的密码后,进行TF卡的存储,同时也记录下攻击日志。
4、双击arduino-1.8.2-windows.exe 安装arduino IDE。(如果你已经安装过arduino IDE,这步可以省略)。
5、安装完毕后,打开arduino,菜单找到 文件—》首选项,点击红色区域进入SDK目录。我的路径是:C:\Users\Sen\AppData\Local\Arduino15。
6、解压Arduino15-2.rar,将里面的全部内容直接覆盖C:\Users\Sen\AppData\Local\Arduino15下的文件。
0x03编译烧写固件及程序代码
1、如果你对V102及V202的使用方法不熟悉,可以参考TPYBoard 官方docs网站http://docs.tpyboard.com/zh/latest/tpyboard/tutorial/
TPYBoard v102 源代码(main.py)
import pyb
from pyb import UART u4=UART(4,115200)
mkdir_='/sd/log.txt' #需先插入TF卡 新建log.txt
pyb.LED(2).on()
while True:
if(u4.any()>0):# 判断串口是否有数据
_mag=''
pyb.LED(3).toggle()
f=open(mkdir_,'a')
_data=u4.readline()#读取一行数据
_dataMsg=_data.decode('utf-8')#将字节数据转码成utf-8 编码的字符串
print('_dataMsg:',_dataMsg)
#解析数据
_index_h=_dataMsg.find('tpyboardpwd')
_index_e=_dataMsg.find('*')
if _index_h>-1 and _index_e>-1 and (_index_e-_index_h)>11:
_dataMsg=_dataMsg.replace('tpyboardpwd','').replace('*','')
print('GetPwd:',_dataMsg)
_mag=_mag+'---------------attack log------------\r\n'
_mag=_mag+'SSID:'+_dataMsg.split('+')[0]+'--'+'PWD:'+_dataMsg.split('+')[1]
print('-------------------------\r\n')
pyb.LED(4).toggle()
if _mag!='':
f.write(_mag)#将获取到的SSID和PWD 保存在日志文件中
f.close()
2、TPYBoard v202的使用
(1)解压esp8266_wifi.rar,arduino IDE菜单栏 文件-》打开esp8266_wifi源码包下的esp8266_deauther\esp8266_deauther.ino
(2)TPYBoard v202 使用micro USB数据线接入电脑。查看安装的usb转串的端口。打开电脑的设备管理器(这里是COM44)。
(3)工具-》端口,选择COM44(根据自己的实际端口号选择)
(4)菜单栏下面的绿色图标菜单区,选择上传,开始编译,烧写固件
(5)查看最下方的日志区域
等待编译完成,出现上图信息(状态:变为“上传”)时,按住FLASH的同时,按一下RST按键松开,让TPYBoard v202复位一下,继续按着FLASH,出现下面的信息时就可以松开FLASH按键了。
0x04硬件的连接
代码和程序都完成了,接下来需要将TPYBoard v102和TPYBoard v202 的串口连接起来。 连接示意图:
连接实物图:
0x05 测试效果
1、 用自己家的WIFI做测试,先用手机接入WIFI(Tend_01CB30)。
2、解压XCOM V2.0.rar(或者使用其它的串口工具),解压双击运行XCOM V2.0.exe 串口助手。打开串口选择V202所在串口(我的是COM44), 波特率改为115200 ,其余默认,打开串口,就可以看到v202打印的信息了。
ps:刚才v202烧写完固件后会马上自启动,所以这里先复位一下v202,按一下RST,这样我们就可以看到从开始到最后的整个过程了。
3、大家可以看到,v202启动会搜索到了很多附近的WIFI,然后它就判断出那一个信号最强,我这里刚好是我家的最强,于是v202开始攻击[Tend_01CB30] 这个WIFI,同时也会建立一个开放的[Tend_01CB30]热点。攻击时,v202上的小蓝灯会常亮。
4、此时手机已经连接不到原有路由器的[Tend_01CB30]的WIFI。这时,如果换成完全不知情的别人,极有可能会去手机设置里面看,怎么连接不上网络了?
5、此时,他只能连接到我们伪装的WIFI上来。
6、当其成功连接到伪装的WIFI后,只要打开浏览器,输入任何网址,都会自动跳转到虚假网络密码确认页面。
7、测试输入12345678点击确认,串口调试助手中可以看到获取到的WIFI密码,然后停止攻击,小蓝灯会熄灭。
8、同时,v202会自己先去尝试连接,来验证密码的准确性,如果连接成功的话,会自动将密码传送给v102 进行保存;如果连接失败,v202会继续进行干扰攻击。
9、查看一下TF卡中的log.txt文件,是否记录了刚才破解的密码。
0×06 扩展
本实验做的有点粗,可以再做精细一点,比如V202完全由V102来供电(将V102的5V、GND与V202的VIN、GND连接),这样就是一整套设备,只需要加个电源供电就可以长期放在一边,静等密码了。呵呵。
【免责声明】
以上方法,仅做学术研究,请不要在非合法情况下实施攻击,这种行为将会被视作非法活动。由本软件所造成的任何不良后果,作者将不承担任何责任,请各位谨慎使用。
邪恶改装2:用单片机实现一次简单的wifi密码欺骗的更多相关文章
- 邪恶改装:TPYBoard制作廉价WIFI干扰器
转载请注明:@小五义http://www.cnblogs.com/xiaowuyi 0X01 引言 想不想搞个WIFI干扰器?网上搜集了一下资料,发现用esp8266可以实现简单的干扰功能,包括断网. ...
- [51单片机] SPI nRF24L01 无线简单程序 1
main.c #include <reg51.h> #include <api.h> #define uchar unsigned char /**************** ...
- Lua在单片机中的移植
Lua代码符合ANSI C标准,只要有C编译器的开发环境就能跑Lua. 虽说只要有C编译器就能跑Lua,但是单片机的环境太简单,有些C标准的内容仍旧无法支持. Lua的官网是:www.lua.org ...
- 单片机联网需求攀升 WIZnet全硬件TCP/IP技术崛起
--新华龙电子为韩国WIZnet公司网络芯片授权代理商,具有20多年的专业团队IC应用开发实力-- 如今不管是在企业还是小区.街道,甚至是居民室内,以太网接口无处不在.有鉴于此,电子设备必将向更加智能 ...
- 2-51单片机WIFI学习(开发板测试远程通信详细介绍)
前一篇链接(最后有APP安装包下载地址) http://www.cnblogs.com/yangfengwu/p/8720148.html 由于自己别的贴片的板子还没到,所以用自己的8266最小系统板 ...
- [Micropython]TPYBoard v202 利用单片机快速实现家庭智能控制平台
一提到智能家庭,大家可能首先想到的是各种大佬级公司搞的牛逼产品,或者说是创新产品.想想就觉得很复杂,有的用工控机,有的用树莓派,还有的用arduino,不管用什么,都绕不过服务器进行控制,比如yeel ...
- 单片机-C语言-定义和申明
以下代码是单片机程序,51单片机,编译器为HT-IDE3000, 简单来说 头文件中只能申明, 变量在头文件中申明时,要加上extern 这个关键字用来告诉编译器,变量在其它的文件中定义,为什么要在头 ...
- MCS-51单片机的定时器/计数器概念
一.MCS-51单片机的定时器/计数器概念 单片机中,脉冲计数与时间之间的关系十分密切,每输入一个脉冲,计数器的值就会自动累加1,而花费的时间恰好是1微秒;只要相邻两个计数脉冲之间的时间间隔相等,则计 ...
- JAVA、C、C++、Python同样是高级语言,为什么只有C和C++可以编写单片机程序?
JAVA.C.C++.Python这四种编程语言,前三种玩的比较多,python做为兴趣爱好或者玩脚本的时候弄过,编程语言在使用的时候主要还是适合不合适,单片机使用的场景属于功能简单,成本相对较低,现 ...
随机推荐
- Item 27: 明白什么时候选择重载,什么时候选择universal引用
本文翻译自<effective modern C++>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 Item 26已经解释了,不管是对全局函数还是成员 ...
- Azure Messaging-ServiceBus Messaging消息队列技术系列-索引篇
Azure Messaging ServiceBus Messaging相关的技术系列,最近已经整理了不少了,统一做一个索引链接,置顶. 方便查找,并后续陆陆续续再增加. 学习消息队列技术,可以先看第 ...
- 使用redis做mybaties的二级缓存(2)-Mybatis 二级缓存小心使用
Mybatis默认对二级缓存是关闭的,一级缓存默认开启: 下面就说说为什么使用二级缓存需要注意: 二级缓存是建立在同一个namespace下的,如果对表的操作查询可能有多个namespace,那么得到 ...
- 解密Lazy<T>
1.Lazy<T>的使用 无意间看到一段代码,在创建对象的时候使用了Lazy,顾名思义Lazy肯定是延迟加载,那么它具体是如何创建对象,什么时候创建对象了? 先看这段示列代码: publi ...
- 开源解析库 - JSON
Json及其实现 JSON作为一种轻量级的数据交换格式,多被用于跨语言通信(比如CPP与PHP之间的数据交互). 至于何为JSON,其详细解释参考 官网. 既然是一种格式,那便必然有相应的编码实现.在 ...
- 关于vue2用vue-cli搭建环境后域名代理的http-proxy-middleware
在vue中用http-proxy-middleware来进行接口代理,比如:本地运行环境为http://localhost:8080但真实访问的api为 http://www.baidu.com这时我 ...
- python中defaultdict的用法
初识defaultdict 之前在使用字典的时候, 用的比较随意, 只是简单的使用dict. 然而这样在使用不存在的key的时候发生KeyError这样的一个报错, 这时候就该defaultdict登 ...
- Hadoop hdfs完全分布式搭建教程
1.安装环境 ①.四台Linux CentOS6.7 系统 hostname ipaddress subnet mask ...
- html5中cookie介绍,封装以及添加,获取,删除
cookie是储存在用户本地终端上的数据. 在我们登陆网站时有记录密码,也有时间限制比如说7天,5天等等这都是我们利用cookie来写的, 这就是利用了cookie的会话周期,但cookie同时又是不 ...
- ssh别名登录密钥登录
在centos上使用别名和是用密钥登录: vim /root/.ssh/config #输入下列内容 Host * User root #以root登录 ServerAliveInterval ...