草庐IT

网络安全--ESP8266烧录、测试、擦除WiFi杀手(详细教程、附所有工具下载地址)

懷淰メ 2024-07-16 原文

文章目录


一.前言

  • Hello大家好啊,博主本次在PDD购买了8266开发模块,用于制作wifi杀手。本次将完整演示wifi杀手的制作、测试、擦除,所有的工具下载地址都会放在文章末尾,以供大家下载。本次实验只用于学习交流,攻击目标为自家WiFi,请勿违法!

二.准备

1.ESP8266网卡

ESP8266是一款物联网WiFi芯片,基于ESP8266可以开发物联网串口WiFi模块,像SKYLAB的WG219/WG229专为移动设备和物联网应用设计,可将用户的物理设备连接到WiFi无线网络上,进行互联网或局域网通信,实现联网功能。另外WG219/WG229仅需要通过出串口使用AT指令控制,就能满足大部分的网络功能需求。

下图为博主花15元购买的ESP8266模块,串口为CH340。

2.软件驱动

如果之前没有安装过相关的串口驱动,需要下载安装一下软件驱动,也可以用windows自带的驱动搜素工具,自动下载。大家也可以使用CH341SER.EXE自行安装驱动。

3.烧录工具

博主使用的是ESP8266Flasher,使用它能够一键将固件烧录到8266中,软件图标如下图

4.Python2

注意这里是Python2,这里使用Python2很方便地擦除固件。

三.烧录

烧录就是把原程序经编译处理后加载到计算机中,让计算机执行你编写的程序,例如单片机程序烧录的时候是加载.hex文件,储存在单片机中,开机就能实现所写的程序了,简单的说就是让微型计算机开机能执行你的程序的过程就是程序烧录。

本次将ESP 8266的固件烧录到8266模块中。

1.驱动8266

首先打开windows的设备管理器查看一下端口是否驱动,具体操作是:右击此电脑-管理-设备管理器-端口(COM和LPT),也可以参考下图。

如果之前没有安装过相关的串口驱动,需要下载安装一下软件驱动,我选择的让windows自动搜索更新驱动。

或者使用CH341SER一键安装驱动。

这样,驱动就准备好了,电脑已经可以通过COM3串口操作8266模块了。

2.配置端口

配置一下端口,选择位/秒的为115200后点确定。

3.烧录固件

打开ESP8266Flasher,主界面如下图。

进行一下简单的配置,选择Advanced,将博波特率Baudrate改为115200,与端口配置参数 一致。

再点击config,点击第一行齿轮按钮,设置一下固件所在路径。

然后切换到Operation,确认了COM端口后,点击Flash即可开始烧录了。

烧录过程如下图。

8266的蓝色灯会爆闪,属于正常现象。

当进度条到头,左下角显示绿色对钩图标后,就烧录完成啦!(不到两分钟)

四.攻击

攻击原理

802.11 WiFi标准包含一种专门针对网络和连接管理的特殊帧类型,查找wifi时,被动监听WiFi热点所广播出来的“beacon”管理帧(用来表明该热点可用),而“probe-request”,你的设备会发送这种管理帧来查看之前连接过的网络当前是否在周围。如果距离内存在已访问过的网络,相应的热点将会用“probe-response”帧予以响应,这些管理帧存在的问题就是,它们完全没有经过任何的加密,这样做的目的是为了增加WiFi的易用性,因为你完全不需要进行任何的密钥交换或密码确认就可以查看到周围的WiFi网络以及热点名称,但这也增加了WiFi网络的攻击面:任何设备都可以给任何网络发送beacon帧和probe-response帧。

1.首次启动设置

烧录好固件后,就可以开始测试了,需要先断开PC后再连接PC,之后8266模块会发射一个开放的wifi,我们使用手机或者电脑连接上它。

连接成功后,在浏览器输入192.168.4.1进入wifi killer管理界面。

首次启动会引导修改wifi ssid和密码

2.扫描wifi

使用设置好的wifi密码连接好后,在管理界面切换到“扫描”tab,点击扫描。

3.Deauth攻击

Deaulth攻击全称为取消身份验证洪水攻击或验证阻断洪水攻击,通常被简称为Deauth攻击,是无线网络拒绝服务攻击的一种形式。它旨在通过欺骗从AP到客户端单播地址的取消身份验证帧来将客户端转为未关联/未认证的状态。整个网络发送了伪造的取消身份验证报文,从而阻断了合法用户和AP之间的连接。当客户端试图与AP重新建立连接时攻击者还在继续向信道中发送取消身份验证帧,这将导致客户端和AP始终无法重连。
它旨在通过欺骗从AP到客户端单播地址的取消身份验证帧来将客户端转为未关联/未认证的状态。

在“扫描”界面勾选要攻击的wifi,切换到“攻击”tab”,攻击模式选择Deauth。

点击“START”,开始攻击!

我的手机在正在连接-验证身份-连接成功后马上断开中循环。

4.创建伪AP

Beacon:信标帧(Beacon)数据包用于宣告接入点,通过不断发送信标帧数据包(说白点就是创建许多新的wifi干扰对方的正常连接),由于目前部分设备自带SSID检测,所以我们使用随机生成SSID以达到目的。

1.创建自定义名字的AP

在“添加SSID”的输入框中输入自定义的AP名字,设置好克隆数量等配置,点击“添加”
点击“Beacon”的START,开始攻击!

手机端能看到有几十个叫做“warning!!!”的伪AP。

2.随机创建伪AP

在“添加SSID”中,勾选“随机产生”即可。

5.探测请求攻击

Probe-response:探测请求帧由用户设备发送,以询问一个已知网络是否在附近。通过请求您在SSID列表中指定的网络,以此来混淆WiFi跟踪器。(说白点就是手机给已知WiFi网络发送一个probe-request帧,可提供网络服务的接入点将响应一个probe-response帧,你的手机将会跟这个响应接入点进行连接,所以看起来跟Deauth攻击差不多)。

攻击过程和Deauth攻击差不多,只不过效果不明显。

6.扫描WiFi用户

选中WiF后,切换到“用户”tab,点击“扫描”按钮。点击按钮后,需要重连一下WiFi,再次连接后,刷新界面,即可查看连接WiFi的用户。

五.擦除

当我们打算更换固件时,可以使用一些工具擦除已有的固件。这里认为大家已经安装并配置好Python2

1.安装esptool工具

esptool.py 是乐鑫提供的开源库工具,用于乐鑫 ESP8285, ESP8266, ESP32, ESP32-S等系列芯片和 ROM Bootloader(即:一级 bootloader)通讯,从而实现:
固件烧录,flash 擦除,flash 读取,读 MAC 地址,读 flash id ,elf 文件转 bin 等常用功能;
flash 校验, 读取内存,载入 bin 到 RAM 执行,读内存,写内存,读 flash 状态,写 flash 状态,读 chip id,组装 bin等高级功能。

在windows10 dos窗口输入

pip install esptool

2.查看8266模块所在端口

还是在设备管理器中查看8266的COM端口,比如我的就在COM3端口。

3.擦除固件

在dos中输入以下命令来擦除现有固件,注:–port 后要选择对应的端口

esptool.py-script.py --port COM3 erase_flash

擦除过程如下图:

当看到 Chip erase completed successfully in xx.xxs,证明固件擦除成功,这时候你就得到了一个没有固件的8266模块。

六.总结

1.总结

本次使用ESP8266模块制作了WIFi杀手,本文详细介绍了ESP8266的烧录、测试、擦除过程,希望大家不要做违法的事,量力而行,最后,能给我点个赞嘛?

2.防范措施

1.经测试在5GHz频段上攻击效果不佳,如果路由器支持双频的话可以设置一个5GHz频段信道。
2.支持“Wi-Fi保护访问版本2”认证方式后设备就能抵御攻击,基于此可以去检查你的AP固件生产厂商的升级版本,在确保该版本是支持“管理帧保护”功能后,才能抵御“解除认证”攻击和“断开关联”攻击。Windows8和Windows8.1及以上版本已经支持该认证方式。
3.通过之前的WannaCry病毒扩散事件也可以看出,很多时候不是协议或系统漏洞未能修复导致的安全隐患,而是由于用户安全意识不足,未能及时更新固件、补丁或是开启安全选项导致安全问题的产生。及时升级固件、打补丁是必要的。

七.下载地址汇总

  1. 串口驱动
  2. ESP8266Flasher
  3. Python2
  4. [中文]wifi杀手固件

八.参考资料

ESP8266开发板刷WI-PWN固件

利用ESP8266制作wifi杀手并进行攻击-漏洞产生原因及防御措施

利用ESP8266Wifi模块制作Wifi攻击“测试”

ESP8266 WIFI杀手汉化教程 &烧录

IOT&无线电|制作esp8266 wifi killer

WiFi攻击进阶版——Deauth攻击

有关网络安全--ESP8266烧录、测试、擦除WiFi杀手(详细教程、附所有工具下载地址)的更多相关文章

  1. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  2. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  3. ruby - 如何安全地删除文件? - 2

    在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?

  4. 网络编程套接字 - 2

    网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识

  5. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  6. ruby - 用 YAML.load 解析 json 安全吗? - 2

    我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("

  7. ruby-on-rails - 安全地显示使用回形针 gem 上传的图像 - 2

    默认情况下:回形针gem将所有附件存储在公共(public)目录中。出于安全原因,我不想将附件存储在公共(public)目录中,所以我将它们保存在应用程序根目录的uploads目录中:classPost我没有指定url选项,因为我不希望每个图像附件都有一个url。如果指定了url:那么拥有该url的任何人都可以访问该图像。这是不安全的。在user#show页面中:我想实际显示图像。如果我使用所有回形针默认设置,那么我可以这样做,因为图像将在公共(public)目录中并且图像将具有一个url:Someimage:看来,如果我将图像附件保存在公共(public)目录之外并且不指定url(同

  8. ruby - 检查网络文件是否存在,而不下载它? - 2

    是否可以在不实际下载文件的情况下检查文件是否存在?我有这么大的(~40mb)文件,例如:http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm这与ruby​​不严格相关,但如果发件人可以设置内容长度就好了。RestClient.get"http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm",headers:{"Content-Length"=>100} 最佳答案

  9. ruby - 404 未找到,但可以从网络浏览器正常访问 - 2

    我在这方面尝试了很多URL,在我遇到这个特定的之前,它们似乎都很好:require'rubygems'require'nokogiri'require'open-uri'doc=Nokogiri::HTML(open("http://www.moxyst.com/fashion/men-clothing/underwear.html"))putsdoc这是结果:/Users/macbookair/.rvm/rubies/ruby-2.0.0-p481/lib/ruby/2.0.0/open-uri.rb:353:in`open_http':404NotFound(OpenURI::HT

  10. ruby - 使写入文件线程安全 - 2

    我在一个ruby​​文件中有一个函数可以像这样写入一个文件File.open("myfile",'a'){|f|f.puts("#{sometext}")}这个函数在不同的线程中被调用,使得像上面这样的文件写入不是线程安全的。有谁知道如何以最简单的方式使这个文件写入线程安全?更多信息:如果重要的话,我正在使用rspec框架。 最佳答案 您可以通过File#flock给锁File.open("myfile",'a'){|f|f.flock(File::LOCK_EX)f.puts("#{sometext}")}

随机推荐