<dl id="wqg5j"></dl>

    1. <menuitem id="wqg5j"></menuitem>

      <dl id="wqg5j"><font id="wqg5j"></font></dl>
    2. <dl id="wqg5j"><ins id="wqg5j"></ins></dl>
    3. <dl id="wqg5j"><ins id="wqg5j"><thead id="wqg5j"></thead></ins></dl>
      <li id="wqg5j"><ins id="wqg5j"></ins></li>
      安基网 首页 安全 渗透测试 查看内容

      制作Wi-Fi Ducky远程HID攻击设备

      2019-4-21 12:28| 投稿: xiaotiger |来自: 互联网


      免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和?#35745;?#29256;权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!

      摘要: 它是一个Wi-Fi控制的BadUSB设备来远程执行Ducky Scripts。 使用充当键盘的USB设备来注入攻击,Hak5 的 USB Rubber Ducky 是这种攻击的黑客小工具。它引入了一个简单的脚本语言,称为Ducky Script,这个项目也是这样使用的。

      1、介绍WIFI DUCKY

      它是一个Wi-Fi控制的BadUSB设备来远程执行Ducky Scripts。

      使用充当键盘的USB设备来注入攻击,Hak5 的 USB Rubber Ducky 是这种攻击的黑客小工具。它引入了一个简单的脚本语言,称为Ducky Script,这个项目也是这样使用的。

      该设备使用 ESP8266 + ATMEGA32U4 创建WIFI信号,进行远程上传、保存和运行脚本进行攻击

      但是为什么要添加Wi-Fi,你可能会问。

      使用Wi-Fi,您可以远程上传并运行Ducky Script。

      只需将设备插入,连接到其Wi-Fi网络,即可完全控制目标机器。

      它还给你一个比其他BadUSB更大的优势,你可以测试你的脚本!您不需要将它们复制到micro-sd卡或编译它们。您可以通过web界面直接运行它们,这使得它非常容易测?#38498;透?#36827;脚本。

      它还为不同的攻击增加了很多可能性。您可以使目标从Wi-Fi网络下载可执行文件,而不是互联网。或者执行不同的攻击并将结果发回。或者打开ESP8266s Wi-Fi上的反向Shell。

      等?#21462;?#26377;这么多的可能性,赶快动手做起来吧!

      2、所需材料:

      1.CJMCU-Beetle Leonardo USB ATMEGA32U4

      2.ESP8266-12F

      3.AMS1117-3.3V电源模块

      3、所需软件:

      ARDUINO IDE 下载地址:https://www.arduino.cc/en/Main/Software

      NodeMCU Flasher 下载地址:https://github.com/nodemcu/nodemcu-flasher

      4、接线图:

      5、写入固件到ESP8266

      首先,然后将下列代码上传到Arduino:

      int program_pin = 12;
      int enable_pin = 13;
      void setup()
      {
      Serial1.begin(115200);
      Serial.begin(115200);
      pinMode(enable_pin, OUTPUT);
      pinMode(program_pin, OUTPUT);
      digitalWrite(program_pin, LOW);
      digitalWrite(enable_pin,HIGH);
      }
      void loop()
      {
      while(Serial1.available()){
      Serial.write((uint8_t)Serial1.read());
      }
      if(Serial.available()){
      while(Serial.available()){
      Serial1.write((uint8_t)Serial.read());
      }
      }
      }

      将设备连接PC,打开Arduino IDE,选择开发板?#25237;?#21475;

      然后点击 上传 将代码写入Arduino

      写入成功后,前往 https://github.com/spacehuhn/wifi_ducky/releases 下载esp8266_wifi_duck_4mb.bin 固件

      我编译的中文web界面固件 点击下载

      然后打开 NodeMCU Flasher 写入软件

      将?#38382;?#35774;置如下

      然后选择固件

      选择端口,点击 Flash 开始写入固件

      写入完成后需要将 GPIO0 的线断开,变成如下的接线,即可进行下一步写入代码

      6、写入代码到ATMEGA32U4

      #include <Keyboard.h>
      #define BAUD_RATE 57200
      #define ExternSerial Serial1
      String bufferStr = "";
      String last = "";
      int defaultDelay = 0;
      void Line(String _line)
      {
      int firstSpace = _line.indexOf(" ");
      if(firstSpace == -1) Press(_line);
      else if(_line.substring(0,firstSpace) == "STRING"){
      for(int i=firstSpace+1;i<_line.length();i++) Keyboard.write(_line[i]);
      }
      else if(_line.substring(0,firstSpace) == "DELAY"){
      int delaytime = _line.substring(firstSpace + 1).toInt();
      delay(delaytime);
      }
      else if(_line.substring(0,firstSpace) == "DEFAULTDELAY") defaultDelay = _line.substring(firstSpace + 1).toInt();
      else if(_line.substring(0,firstSpace) == "REM"){} //nothing :/
      else if(_line.substring(0,firstSpace) == "REPLAY") {
      int replaynum = _line.substring(firstSpace + 1).toInt();
      while(replaynum)
      {
      Line(last);
      --replaynum;
      }
      } else{
      String remain = _line;
      while(remain.length() > 0){
      int latest_space = remain.indexOf(" ");
      if (latest_space == -1){
      Press(remain);
      remain = "";
      }
      else{
      Press(remain.substring(0, latest_space));
      remain = remain.substring(latest_space + 1);
      }
      delay(5);
      }
      }
      Keyboard.releaseAll();
      delay(defaultDelay);
      }
      void Press(String b){
      if(b.length() == 1) Keyboard.press(char(b[0]));
      else if (b.equals("ENTER")) Keyboard.press(KEY_RETURN);
      else if (b.equals("CTRL")) Keyboard.press(KEY_LEFT_CTRL);
      else if (b.equals("SHIFT")) Keyboard.press(KEY_LEFT_SHIFT);
      else if (b.equals("ALT")) Keyboard.press(KEY_LEFT_ALT);
      else if (b.equals("GUI")) Keyboard.press(KEY_LEFT_GUI);
      else if (b.equals("UP") || b.equals("UPARROW")) Keyboard.press(KEY_UP_ARROW);
      else if (b.equals("DOWN") || b.equals("DOWNARROW")) Keyboard.press(KEY_DOWN_ARROW);
      else if (b.equals("LEFT") || b.equals("LEFTARROW")) Keyboard.press(KEY_LEFT_ARROW);
      else if (b.equals("RIGHT") || b.equals("RIGHTARROW")) Keyboard.press(KEY_RIGHT_ARROW);
      else if (b.equals("DELETE")) Keyboard.press(KEY_DELETE);
      else if (b.equals("PAGEUP")) Keyboard.press(KEY_PAGE_UP);
      else if (b.equals("PAGEDOWN")) Keyboard.press(KEY_PAGE_DOWN);
      else if (b.equals("HOME")) Keyboard.press(KEY_HOME);
      else if (b.equals("ESC")) Keyboard.press(KEY_ESC);
      else if (b.equals("BACKSPACE")) Keyboard.press(KEY_BACKSPACE);
      else if (b.equals("INSERT")) Keyboard.press(KEY_INSERT);
      else if (b.equals("TAB")) Keyboard.press(KEY_TAB);
      else if (b.equals("END")) Keyboard.press(KEY_END);
      else if (b.equals("CAPSLOCK")) Keyboard.press(KEY_CAPS_LOCK);
      else if (b.equals("F1")) Keyboard.press(KEY_F1);
      else if (b.equals("F2")) Keyboard.press(KEY_F2);
      else if (b.equals("F3")) Keyboard.press(KEY_F3);
      else if (b.equals("F4")) Keyboard.press(KEY_F4);
      else if (b.equals("F5")) Keyboard.press(KEY_F5);
      else if (b.equals("F6")) Keyboard.press(KEY_F6);
      else if (b.equals("F7")) Keyboard.press(KEY_F7);
      else if (b.equals("F8")) Keyboard.press(KEY_F8);
      else if (b.equals("F9")) Keyboard.press(KEY_F9);
      else if (b.equals("F10")) Keyboard.press(KEY_F10);
      else if (b.equals("F11")) Keyboard.press(KEY_F11);
      else if (b.equals("F12")) Keyboard.press(KEY_F12);
      else if (b.equals("SPACE")) Keyboard.press(' ');
      //else Serial.println("not found :'"+b+"'("+String(b.length())+")");
      }
      void setup() {

      Serial.begin(BAUD_RATE);
      ExternSerial.begin(BAUD_RATE);
      pinMode(13,OUTPUT);
      digitalWrite(13,HIGH);
      Keyboard.begin();
      }
      void loop() {
      if(ExternSerial.available()) {
      bufferStr = ExternSerial.readStringUntil("END");
      Serial.println(bufferStr);
      }

      if(bufferStr.length() > 0){

      bufferStr.replace("r","n");
      bufferStr.replace("nn","n");

      while(bufferStr.length() > 0){
      int latest_return = bufferStr.indexOf("n");
      if(latest_return == -1){
      Serial.println("run: "+bufferStr);
      Line(bufferStr);
      bufferStr = "";
      } else{
      Serial.println("run: '"+bufferStr.substring(0, latest_return)+"'");
      Line(bufferStr.substring(0, latest_return));
      last=bufferStr.substring(0, latest_return);
      bufferStr = bufferStr.substring(latest_return + 1);
      }
      }

      bufferStr = "";
      ExternSerial.write(0x99);
      Serial.println("done");
      }
      }

      等提示 写入成功,把设备拔出,重新连接PC

      7、如何使用它

      这时用手机搜索WIFI会找到

      WIFI:WIFI DUCK PASSWD:quackquack

      打开浏览器,输入 http://192.168.4.1 进入管理地址

      在这里,你可以上传,查看,删除和运行新的Ducky Scripts。

      请注意,脚本的每行最大长度为600个?#22336;?/span>

      如何写Ducky Scripts:https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Duckyscript

      8、通过Web界面更新ESP8266固件

      如想更新固件,可以通过Web界面进行更新。

      转到192.168.4.1/info并上传新的.bin文件

      9、编译?#36828;?#20041;固件

      安装Arduino库

      ESP8266 SDK

      ESPAsyncWebServer

      ESPAsyncTCP

      打开Arduino点击 文件->首选线

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

      添?#30001;?#21015;代码到 附加开发板管理网址,然后点击 工具->开发板->开发板管理器 搜索 ESP 点击安装

      然后下载 ESPAsyncWebServer 和 ESPAsyncTCP 在Arduino中点击 项目->加载库->添加一个.zip库

      修改esp8266_wifi_duckhtmlfiles下的文件,然后打开 minifier.html 点击 “minify + byte-ify”转换格式,并替换掉 data.h 里面的内容(这里提供下我汉化的中文WEB界面:点击下载)

      然后在Arduino IDE中打开 esp8266_wifi_duck.ino 开发板选择:Generic ESP8266 ModuleFlash大小选择:4M (1M SPIFFS) 然后点击 项目->验证/编译 再点击 项目->导出已编译的二进制文件

      10、制作过程视频(生肉)

      11、参考资料

      https://github.com/spacehuhn/wifi_ducky

      https://github.com/basic4/WiDucky

      原创文章,作者:鹰小编,

      如若转载,请注明出处:http://www.mottoin.com/geek/111744.html



      小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职?#26377;劍?/font>

      本文出自:https://www.toutiao.com/a6667681130616979980/

      免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和?#35745;?#29256;权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!


      鲜花

      ?#24080;?/a>

      雷人

      路过

      鸡蛋

      相关阅读

      最新评论

       最新
      返回顶部
      玄机图
      <dl id="wqg5j"></dl>

        1. <menuitem id="wqg5j"></menuitem>

          <dl id="wqg5j"><font id="wqg5j"></font></dl>
        2. <dl id="wqg5j"><ins id="wqg5j"></ins></dl>
        3. <dl id="wqg5j"><ins id="wqg5j"><thead id="wqg5j"></thead></ins></dl>
          <li id="wqg5j"><ins id="wqg5j"></ins></li>
          <dl id="wqg5j"></dl>

            1. <menuitem id="wqg5j"></menuitem>

              <dl id="wqg5j"><font id="wqg5j"></font></dl>
            2. <dl id="wqg5j"><ins id="wqg5j"></ins></dl>
            3. <dl id="wqg5j"><ins id="wqg5j"><thead id="wqg5j"></thead></ins></dl>
              <li id="wqg5j"><ins id="wqg5j"></ins></li>
              安徽时时彩开奖 胜平负走势图 体坛七星彩走势图 楚天30选5开奖 海南飞鱼开奖历吏 浙江20选5走势风采 黑龙江福彩六加一开奖 2019码报生肖图85期 包中特码 中国竞彩网胜平负 机械迷城下棋那关怎么过 陕西快乐十分开奖结果 江苏时时彩开奖结果走势图 天津11选5玩法 足彩进球彩开奖查询