前言

随着红蓝对抗日益激烈,而红队的攻击点从原有的Web方法,也涉及到了很多的方向,例如硬件攻击。

而硬件攻击最显著的就是Badusb。说起这个玩意儿。想必大家都知道,网上一搜一大堆制作文章。

【查看学习资料】

另一种烧录BadUsb

网上的确有大多数BadUsb的烧录方法,但都是基于arduino界面的烧录,但经过本人研究

arduino也是可以通过命令行参数进行烧录的,具体如下:

C:\Users\Administrator\Desktop\Arduino\arduino_debug.exe --port COM端口 --upload 烧录的内容文件

文件路径的话,可以看如下图,当对内容进行保存的时候,给出了详细信息,后缀名为ino,经过笔者用命令行编译试验,路径要为:

C:\\xxx\\sketch_apr01a\sketch_apr01a.ino

sketch_apr01a为项目文件,而在上层还要有一个sketch_apr01a名字的目录

代码分析流程

Windows sdk开发中,任何一个窗口都能接收消息并响应。同理 BadUSB或U盘插入或拔出也会有相应的消息与响应。

用到的消息为:WM_DEVICECHANGE

(通知应用程序对设备或计算机的硬件配置进行更改,通过WindowProc函数接收消息)

函数原型如下:

LRESULT CALLBACK WindowProc ( HWND hWnd, UINT message,WPARAM wParam, LParam);

WindowProc中第三个参数wParam,指向发生的事件,该参数Dbt.h头文件找那个的值。说说我们要用到的宏吧,Dbt.h中:

DBT_DEVICEARRIVAL //设备插入会进行响应
DBT_DEVICEREMOVECOMPLETE //设备拔出时响应

代码实现消息响应

首先来看WndProc函数。具体实现就是通过一个case来进行消息响应的

添加自己的消息响应,以下代码当BadUSB插入之后,会弹窗显示设备插入。

case WM_DEVICECHANGE://捕获设备更改时的消息switch (wParam){case DBT_DEVICEARRIVAL://捕获设备插入MessageBoxA(NULL, "设备插入", "test", NULL);break;case DBT_DEVICEREMOVECOMPLETE://捕获设备弹出MessageBoxA(NULL, "设备拔出", "test", NULL);break;}

这里当我插入BadUSB之后,成功捕获到消息并弹窗。

核心代码实现

既然当BadUSB插入之后,会响应消息函数,那让消息函数执行arduino命令行并进行自动烧录。当红队后期做更改BadUSB的时候,就会执行我们烧录的代码

BadUSB将要烧录的内容如下,setup函数为初始化函数。当BadUSB插入之后,打开记事本并输入 By:Met32这串字符。这里可自行更改…我这里为了演示方便就这样写的。

void setup() {// put your setup code here, to run once:Keyboard.begin();//开始键盘通信delay(1000);//延时1000毫秒,不要太短,因为每天电脑的运行速度都不一样 Keyboard.press(KEY_CAPS_LOCK); //按下大写键 这里我们最好这样写 不然大多数电脑在中文输入的情况下就会出现问题Keyboard.release(KEY_CAPS_LOCK); //释放大写键delay(500);Keyboard.press(KEY_LEFT_GUI);//按下徽标键 也就是win键 delay(500); Keyboard.press('r');//按下r键 delay(500); Keyboard.release(KEY_LEFT_GUI);//松掉win键 Keyboard.release('r');//松掉r键 delay(500); Keyboard.println("notepad");//输入notepad 打开记事本delay(500); Keyboard.press(KEY_RETURN); //按下回车键Keyboard.release(KEY_RETURN); //释放回车键delay(500); Keyboard.println(" By:Met32");//输入我们想显示的信息Keyboard.press(KEY_RETURN); //按下回车键Keyboard.release(KEY_RETURN); //释放回车键delay(500);Keyboard.press(KEY_CAPS_LOCK); //按下大写键Keyboard.release(KEY_CAPS_LOCK); //释放大写键 我们再次关闭开启的大写键delay(500);Keyboard.end();//结束键盘通讯 }void loop() {// put your main code here, to run repeatedly:}

WndProc全部实现代码如下。

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{int wmId, wmEvent;PAINTSTRUCT ps;HDC hdc;switch (message){case WM_COMMAND:wmId    = LOWORD(wParam);wmEvent = HIWORD(wParam);// 分析菜单选择: switch (wmId){case IDM_ABOUT:DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);break;case IDM_EXIT:DestroyWindow(hWnd);break;default:return DefWindowProc(hWnd, message, wParam, lParam);}break;case WM_PAINT:hdc = BeginPaint(hWnd, &ps);// TODO:  在此添加任意绘图代码...EndPaint(hWnd, &ps);break;case WM_DESTROY:PostQuitMessage(0);break;case WM_DEVICECHANGE:switch (wParam){//代码在这case DBT_DEVICEARRIVAL:system("C:\\Users\\Arduino\\arduino_debug.exe --port COM5 --upload C:\\Users\\Administrator\\Desktop\\sketch_apr01a\\sketch_apr02a\\sketch_apr02a.ino");break;case DBT_DEVICEREMOVECOMPLETE:MessageBoxA(NULL, "设备拔出", "test", NULL);break;}break;default:return DefWindowProc(hWnd, message, wParam, lParam);}return 0;
}

使用过程

现在来看一下效果,当BadUSB插入之后,自行拷贝烧录内容到对方的BadUSB。

之后把程序退出,BadUSB从新插入一下,成功显示,证明我们成功烧录到对方的BadUSB

结尾注意点

Arduino路径方面的问题不必担心,因为都是自己本机,写死即可,问题就在COM端口这,当BadUSB插入之后,我们是不确定使用的哪个端口的。因此可以通过一个循环将常用的COM端口号全部执行一遍即可。

如果想更加完善一点,可以检测当BadUSB插入之后禁用键盘(禁止对方代码操作),之后在执行我们的system命令。

最后

点击查看【网络安全学习资料·攻略】

怎样反制红队“硬件“攻击相关推荐

  1. 红蓝对抗系列之浅谈蓝队反制红队的手法一二

    红蓝对抗系列之浅谈蓝队反制红队的手法一二 取证反查 针对ip 溯源一二 一般来说,红队大部分都是使用代理节点进行测试,假如我们捕获或者从样本里面分析拿到了真实ip ,那么以下操作场景就有用了,或者使用 ...

  2. HVV之WIFI蜜罐反制红队

    0x00具体操作 1.在HVV的过程中,红队通过常规的Web进不去的时候,就会现场近源渗透,自带网线在客户现场插网线,或者连接客户现场wifi进入内网. 2.这个时候,蓝队可以搭建一个wifi蜜罐,等 ...

  3. 攻防演练(HW)-红队

    红队,一般是指网络实战攻防演习中的攻击一方. 红队一般会针对目标系统.人员.软件.硬件和设备同时执行的多角度.混合.对抗性的模拟攻击:通过实现系统提权.控制业务.获取数据等目标,来发现系统.技术.人员 ...

  4. 红队视角下的防御体系突破之第一篇介绍、阶段、方法

    文章目录 0x01 什么是红队 一.红队与黑客的区别 二.红队的工作与业界熟知的渗透测试区别 三.红队的组成 0x02 红队三板斧--攻击的三个阶段 一. 第一阶段:情报收集 二. 第二阶段:建立据点 ...

  5. 网络安全进阶技术汇总,高手过招,招招致命【红队】

    没有攻不破的系统,只有不努力的黑客. 我准备写一系列网络安全的红蓝对抗技术文章,就算你是0基础的新人,你也能知道如何从一个新手网络工程师进阶到网安大神. 这篇文章介绍的是红队(攻击)的高阶技术,前面我 ...

  6. 红队攻击演练过程中必须具备哪些能力

    开展网络渗透对蓝队人员的岗位技能和动手能力都有较高的要 求,这些能力要求侧重于攻防实战,是蓝队人员综合能力水平的体 现.因为蓝队人员在实战攻防演练中面对的是十分契合真实网络条件 的环境,各项技能与手段 ...

  7. Notes Twenty-third days-渗透攻击-红队-红队自研

    ** Notes Twenty-third days-渗透攻击-红队-权限提升(dayu) ** 作者:大余 时间:2020-10-9 请注意:对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环 ...

  8. 红队渗透测试技术:如何通过鱼叉式网络钓鱼获得攻击机会?

    关于红队在渗透测试中使用的网络钓鱼攻击的文章很多,不过大多数的介绍都是不完整的.在本文中,我们将对这个话题进行一次完整的梳理,包括域创建,制作网络钓鱼内容,绕过垃圾邮件过滤器和电子邮件网关,生成不可检 ...

  9. HW:红队眼中的防守弱点与蓝队应对攻击的常用策略

    HW 红队眼中的防守弱点 一.资产混乱.隔离策略不严格 除了大型银行之外,很多行业对自身资产情况比较混乱,没有严格的访问控制ACL策略,且办公网和互联网之间大部分相通,可以直接使远程控制程序上线. 除 ...

最新文章

  1. 常用HiveQL总结
  2. 对我影响最大的3位老师
  3. CentOS 下线,TencentOS Server 全新登陆带来最强支持
  4. linux临时启动进程命令,Linux常用命令(一)服务控制及优化启动过程
  5. InnoDB文档笔记(三)—— Undo Log
  6. ecshop 全目录说明
  7. linux安装jdk8和tomcat8
  8. Linux shell 中的那些你值得一试的小把戏
  9. SQL Server MYSQL 检查点的好处
  10. Notepad2-mod,轻量级文本编辑器、代替记事本的最佳选择
  11. 微星z370安装linux系统,微星z370主板装win7及BIOS设置详细教程
  12. 【阿里云IoT YF3300】6.物联网设备报警配置
  13. 裁员风暴下,脉脉们却在背后偷着笑?
  14. Android---AndroidX
  15. python 基础之文件读操作
  16. 上班防摸鱼插件(知乎页面)
  17. 教大家如何下載土豆,56,youku等在綫視頻網站視頻
  18. discuz 单点登录 ucenter
  19. 你会阅读Java源码吗
  20. ubuntu安装截图工具 flameshot(对标windows下snipaste)

热门文章

  1. 成功解决‘nvidia-smi‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
  2. CV之IS:计算机视觉之图像分割(Image Segmentation)算法的挑战任务、算法演化、目标检测和图像分割(语义分割/实例分割/全景分割)的对比
  3. ML之LoR:基于LoR(逻辑回归)算法对乳腺癌肿瘤(9+1)进行二分类预测(良/恶性)
  4. Python命令行解析:IDE内点击Run运行代码直接得出结果、基于TF flags(或argparse、sys.argv)在Dos内命令行(一条命令)调用代码文件得出结果
  5. Crawler:爬虫基于urllib.request库实现获取指定网址上的所有图片
  6. Py之pipenv:Python包的管理利器pipenv简介、安装、使用方法详细攻略
  7. 互联网大厂高频重点面试题
  8. Windows安装MySQL教程
  9. Spring Boot后端+Vue前端+微信小程序,完整的开源解决方案!
  10. C++ 管理数据内存的方法