【近源攻击】badusb制作

news2024/11/17 22:26:45

❤️博客主页 iknow181
🔥系列专栏 网络安全、 Python、JavaSE、JavaWeb、CCNP
🎉欢迎大家点赞👍收藏⭐评论✍


在这里插入图片描述

在这篇博客中,我将详细介绍如何从零开始使用 ATtiny85 开发板制作一个 BadUSB。通过这个教程,你将学会如何将 Digispark ATtiny85 开发板变成一个恶意 USB 设备,并模仿橡皮鸭(Rubber Ducky)的功能,执行预定义的脚本。

0x01 badusb介绍

BadUSB是利用伪造HID设备执行攻击载荷的一种攻击方式。HID(Human InterfaceDevice)设备通常指的就是键盘鼠标等与人交互的设备,用户插入BadUSB,就会自动执行预置在固件中的恶意代码。

BadUsb插入后,会模拟键盘鼠标对电脑进行操作,通过这些操作打开电脑的命令终端,并执行一条命令,这条命令将从指定网址下载其他代码并于后台静默运行。这些代码功能包括:窃取信息、反弹shell、发送邮件等,从而实现控制目标机或者窃取信息的目的。

恶意代码存在于U盘的固件中,PC上的杀毒软件无法访问到U盘存放固件的区域,因此也就意味着杀毒软件和U盘格式化都无法防御BadUSB的攻击。

0x02 所需材料

  • USB 版 Attiny85 Digispark 1PCS(从淘宝上购买了一个)
  • Arduino IDE(云端或本地)
  • DPinst64.exe 驱动
  • DigiKeyboard 库(用于模拟键盘输入)
  • Windows 或 Linux 系统

0x03 操作步骤

步骤 1:安装 Arduino IDE

如果你还没有安装 Arduino IDE,可以选择以下两种方式:

  • 本地安装:从 Arduino 官方网站 下载并安装。
  • 云编辑:访问 Arduino Cloud 并创建一个账号,使用在线编辑器。
步骤 2: 下载驱动 DPinst64.exe
步骤 3:安装驱动

如果是 64 位操作系统请选择 DPinst64.exe,否则请选择 DPinst.exe.

步骤 4:配置 Arduino IDE

在你安装好 Arduino IDE 之后,需要对其进行配置,以便支持 ATtiny85 开发板。

  1. 打开 Arduino IDE,依次点击 文件 > 首选项
  2. 附加开发板管理器网址 中,添加以下 URL:
https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json

  1. 设置代理

这里有个坑点,最好开启全局代理,并且 Arduino IDE 也设置代理,不然可能会程序包下载不了的问题。

文件>首选项>网络

  1. 然后,点击 工具 > 开发板 > 开发板管理器,搜索 Digistump AVR Boards 并点击 安装

这里我是已经安装好了的页面。

  1. 选择开发板类型

ps: 注意不要用那个 pro(我之前就用的这个 pro,结果发现可以上传但是插入 usb 后不能执行命令。下面图片截的是 用 pro 时截的。之后就改为没有 pro 的。大家体量的看看,流程差不多,就开发板不一样)

  1. 新建一个 Keyboard 示例

选择 DigisparkKeyboard>Keyboard

会跳出这个页面

  1. 选择编程器

工具>编程器>USBtinyISP

这两者的区别:

1. USBtinyISP (ATTinyCore) FAST

  • 适用范围: 适用于运行时钟频率 >= 2 MHz 的 ATtiny 微控制器。
  • 通信速度: 使用较高的通信速度,这样可以更快地编程和烧录程序到微控制器中。
  • 优点: 更快的编程和上传速度,节省时间。
  • 要求: 微控制器需要能够稳定工作在较高的时钟频率下,否则可能会遇到编程错误或失败。

2. USBtinyISP (ATTinyCore) SLOW

  • 适用范围: 适用于新的或运行时钟频率为 1 MHz 的 ATtiny 微控制器。
  • 通信速度: 使用较低的通信速度,这样可以确保更稳定的编程过程。
  • 优点: 适用于时钟频率较低的 ATtiny 微控制器,能够避免由于高速度引起的通信问题。
  • 要求: 适用于较慢的时钟频率,以确保可靠的编程和通信。

3. 总结

  • 选择 FAST 还是 SLOW:
    • 如果你的 ATtiny 微控制器的时钟频率 >= 2 MHz,并且你希望更快的编程速度,可以选择 FAST 选项。
    • 如果你的微控制器运行在较低的时钟频率(例如 1 MHz),或者你遇到编程问题时,建议选择 SLOW 选项,以提高稳定性。
步骤 5:编写 BadUSB 脚本

下面是一段简单的脚本,模仿 USB 键盘输入行为。当 BadUSB 插入电脑时,它会自动打开记事本并输出一些预设信息。

#include "DigiKeyboardBe.h"  // 如果你的库是DigiKeyboardBe

void setup() {
  DigiKeyboard.sendKeyStroke(0);  // 发送一个空按键以唤醒设备
  DigiKeyboard.delay(5000);       // 延迟5秒,确保系统已经完全准备好
  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);  // Win + R 打开运行窗口
  DigiKeyboard.delay(500);
  DigiKeyboard.println("notepad");  // 打开记事本
  DigiKeyboard.delay(500);
  DigiKeyboard.println("This is a BadUSB attack!");  // 打印信息
}

void loop() {
  // 空循环,脚本只执行一次
}

步骤 6:编译和上传代码
  1. IDE 编译代码

点击这个验证,会编译代码,看有没有代码报错

出现这些告警信息没事, 这些警告大多是代码风格和整数溢出的问题,通常不会影响程序正常工作。它们提示的是一些宏定义缺少空格,以及大整数被隐式截断成无符号类型。

下面白色字体的是存储空间使用情况

  1. 上传

如果验证无误就可以插入 usb 开发板,进行上传了

注意此时先不要插板

先点击上传按钮,在编译成功后在插板(因为 digispark 需要进行一次热插拔,才会被识别上传成功)

成功后你会在 IDE 窗口中看到 "Upload done" 提示。

步骤 6:测试你的 BadUSB
  1. 将 usb 开发板 插入目标计算机,等待几秒钟。
  2. 你应该看到自动打开的记事本,并输入预设的文本。

0x04 免责说明

本文章仅用于学习、工作与兴趣爱好,并立志为网络安全奉献一份力量,凡是利用本博客相关内容的无良hackers造成的安全事故均与本人无关!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2136748.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何管理付费媒体预算:分配、风险与扩展

对于优先考虑利润率和现金流的企业而言,管理广告预算是一项基本技能。由于人为错误导致的超支几乎总是意味着与客户和利益相关者的艰难对话。这时候,借助光年AI智能平台可以极大程度地降低这种风险,通过AI驱动的全面流量和增长服务&#xff0…

拥塞控制算法为何失效,网络为何难以测量?

紧接着上文 如何测量一个(传输网络)系统的容量 给出的方法,看一下如何测量网络容量,如果真的能测量网络容量,传输算法就好设计了。 先给出答案,很遗憾,根本无法测量,请阅读 why we don’t know how to sim…

前端-CDN的理解及CDN一些使用平台

目录 1.CDN的概念 (1) 分发服务系统 (2)均衡负荷系统 (3)运营管理系统 (4)缓存系统 (5)支撑系统 2.CDN的基本工作原理 3.CDN使用缓存资源过程 4.CDN…

CesiumJS+SuperMap3D.js混用实现天际线分析

版本简介: cesium:1.99;Supermap3D:SuperMap iClient JavaScript 11i(2023); 官方下载文档链家:SuperMap技术资源中心|为您提供全面的在线技术服务 示例参考:support.supermap.com.cn:8090/w…

【Arduino】BNO085 姿态的 3D模型 展示方法(映射到 Unity)

总览 1.arduino 代码和库等… 2.Unity 的部分,创建一个 3D 工程,然后创建一个 cube,绑定一个脚本文件 3.效果预览: 【Arduino】BNO085 姿态的 3D模型 展示方法(映射到 Unity) 一、Arduino 部分 1.使用的…

《Exploit temporal cues in multi-camera 3D object detection》论文泛读

ReadPaperhttps://readpaper.com/pdf-annotate/note?pdfId4666749915775385601eId2491528568128599808 针对单帧数据含有的信息太少的问题,提出了一种新的方法,BEVDet4D,这种方法可以访问时间线索,并且取得了较好的表现&#xff…

C++类与对象深度解析(一):从抽象到实践的全面入门指南

文章目录 C 类与对象——详细入门指南前言1. 类的定义1.1 类定义的基本格式示例代码解释 1.2 访问限定符示例代码解释 1.3 类域示例代码解释 1.4 成员命名规范常见的命名约定:示例:拓展: 1.5 class与struct的默认访问权限示例: 2.…

Leetcode 每日一题:Decode String

写在前面: 最近求职季找工作忙的焦头烂额,同时这个学期的助教工作也比之前的工时多了一倍,昨天又拖更了真的对不起大家~~ 今天我们来看一道稍微轻松一点的题,这道题目来源于 Valid Parenthesis&#xff0…

房产销售系统:SpringBoot技术优化方案

第三章 系统分析 3.1 系统设计目标 房产销售系统主要是为了用户方便对房源信息管理、房源类型管理、房子户型管理、交易订单管理、预约看房管理、评价管理等信息进行查询,也是为了更好的让管理员进行更好存储所有数据信息及快速方便的检索功能,对系统的各…

ESP32聊天机器人之一

想做情感陪伴机器人,看到B站有个项目很有趣,使用一块esp32复刻了B站MeteWu的ESP32大模型聊天项目。 自己做了一些修改,加了一些简单的表情,角色扮演,切换大模型和温湿度传感器等功能。可以用于玩具,聊天机…

第307题|快速掌握 反常积分敛散性判定的方法|武忠祥老师每日一题

解题思路:先判断这个反常积分的敛散性,再讨论a的取值范围; 判断反常积分的敛散性,我们通常有三个方法: (1)根据定义,通常在原函数比较好求的情况下,可以根据定义 (2&am…

IDEA 常用配置和开发插件

件市场中搜索并安装“Git Integration”插件。 一、前言 在本篇文章中我会为大家总结一些我自己常用的配置和开发插件,此外也给大家提供一个建议,可以根据自己的项目需求和个人偏好选择适合的插件。另外,IDEA 也在不断更新,可能会…

『功能项目』战士职业平A怪物掉血【44】

我们打开上一篇43事件中心的项目, 本章要做的事情是给主角增加一个xxxCtrl.cs脚本,再创建一个xxxOpt.cs调用xxxCtrl.cs机制层利用事件中心再写一个主角战士平A对怪物的伤害 首先创建脚本:PlayerCtrl.cs using UnityEngine; public class Pla…

2024年微电子与纳米技术国际研讨会(ICMN 2024) Microelectronics and Nanotechnology

文章目录 一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题六、咨询 一、会议详情 二、重要信息 大会官网:https://ais.cn/u/vEbMBz提交检索:EI Compendex、IEEE Xplore、Scopus大会时间:2024年9月20-22日地点:成都…

Java项目: 基于SpringBoot+mybatis+maven服装生产管理系统(含源码+数据库+任务书+开题报告+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismaven服装生产管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简…

0基础跟德姆(dom)一起学AI 数据处理和统计分析02-Linux进阶

* vi编辑器 * 权限相关 * 进程,网络相关 * 压缩和解压缩 * 软件安装-yum方式 * 其它命令 --- 1.过滤和管道命令 shell # grep命令, 用来过滤的 # 格式 grep [-n] 关键字 文件路径 # 从文件中过滤出要查找的内容, -n:表示带行号. # | 管道符, 即: 把前边命令的执行结果,…

Ceisum(SuperMap iClient3D for Cesium)实现平面裁剪

1:参考API文档:SuperMap iClient3D for Cesium 开发指南 2:官网示例:support.supermap.com.cn:8090/webgl/Cesium/examples/webgl/examples.html#layer 3:SuperMap iServer:欢迎使用 SuperMap iServer 11…

ArcGIS属性表汉字转拼音

直接复制粘贴现成代码: # -*- coding: utf-8 -*-import arcpyfrom arcpy import envimport osimport pypinyin import sys# 不带声调皿stylepypinyin.NORMAL)def pinyin(word): s for i in pypinyin.pinyin(word, stylepypinyin.NORMAL): s .join(…

idea中java及java web项目的常见问题

1、乱码问题,主要有几处地方,需要检查。 ①确保文件编码,其实主要就是在idea启动文件中,增加了 -Dfile.encodingUTF-8的设置 ②编辑器默认编码,都改为UTF-8 ③Tomcat的运行配置,编码也改为UTF-8,同样使用…

PHP省时省力海报在线制作系统小程序源码

省时省力海报在线制作系统:设计小白也能秒变大师 🎨 开篇:告别繁琐,拥抱高效设计 你还在为设计一张海报而熬夜加班吗?还在为找不到合适的素材而焦头烂额吗?别担心,“省时省力海报在线制作系统”…