怎样反制红队“硬件“攻击
前言
随着红蓝对抗日益激烈,而红队的攻击点从原有的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命令。
最后
点击查看【网络安全学习资料·攻略】
怎样反制红队“硬件“攻击相关推荐
- 红蓝对抗系列之浅谈蓝队反制红队的手法一二
红蓝对抗系列之浅谈蓝队反制红队的手法一二 取证反查 针对ip 溯源一二 一般来说,红队大部分都是使用代理节点进行测试,假如我们捕获或者从样本里面分析拿到了真实ip ,那么以下操作场景就有用了,或者使用 ...
- HVV之WIFI蜜罐反制红队
0x00具体操作 1.在HVV的过程中,红队通过常规的Web进不去的时候,就会现场近源渗透,自带网线在客户现场插网线,或者连接客户现场wifi进入内网. 2.这个时候,蓝队可以搭建一个wifi蜜罐,等 ...
- 攻防演练(HW)-红队
红队,一般是指网络实战攻防演习中的攻击一方. 红队一般会针对目标系统.人员.软件.硬件和设备同时执行的多角度.混合.对抗性的模拟攻击:通过实现系统提权.控制业务.获取数据等目标,来发现系统.技术.人员 ...
- 红队视角下的防御体系突破之第一篇介绍、阶段、方法
文章目录 0x01 什么是红队 一.红队与黑客的区别 二.红队的工作与业界熟知的渗透测试区别 三.红队的组成 0x02 红队三板斧--攻击的三个阶段 一. 第一阶段:情报收集 二. 第二阶段:建立据点 ...
- 网络安全进阶技术汇总,高手过招,招招致命【红队】
没有攻不破的系统,只有不努力的黑客. 我准备写一系列网络安全的红蓝对抗技术文章,就算你是0基础的新人,你也能知道如何从一个新手网络工程师进阶到网安大神. 这篇文章介绍的是红队(攻击)的高阶技术,前面我 ...
- 红队攻击演练过程中必须具备哪些能力
开展网络渗透对蓝队人员的岗位技能和动手能力都有较高的要 求,这些能力要求侧重于攻防实战,是蓝队人员综合能力水平的体 现.因为蓝队人员在实战攻防演练中面对的是十分契合真实网络条件 的环境,各项技能与手段 ...
- Notes Twenty-third days-渗透攻击-红队-红队自研
** Notes Twenty-third days-渗透攻击-红队-权限提升(dayu) ** 作者:大余 时间:2020-10-9 请注意:对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环 ...
- 红队渗透测试技术:如何通过鱼叉式网络钓鱼获得攻击机会?
关于红队在渗透测试中使用的网络钓鱼攻击的文章很多,不过大多数的介绍都是不完整的.在本文中,我们将对这个话题进行一次完整的梳理,包括域创建,制作网络钓鱼内容,绕过垃圾邮件过滤器和电子邮件网关,生成不可检 ...
- HW:红队眼中的防守弱点与蓝队应对攻击的常用策略
HW 红队眼中的防守弱点 一.资产混乱.隔离策略不严格 除了大型银行之外,很多行业对自身资产情况比较混乱,没有严格的访问控制ACL策略,且办公网和互联网之间大部分相通,可以直接使远程控制程序上线. 除 ...
最新文章
- 常用HiveQL总结
- 对我影响最大的3位老师
- CentOS 下线,TencentOS Server 全新登陆带来最强支持
- linux临时启动进程命令,Linux常用命令(一)服务控制及优化启动过程
- InnoDB文档笔记(三)—— Undo Log
- ecshop 全目录说明
- linux安装jdk8和tomcat8
- Linux shell 中的那些你值得一试的小把戏
- SQL Server MYSQL 检查点的好处
- Notepad2-mod,轻量级文本编辑器、代替记事本的最佳选择
- 微星z370安装linux系统,微星z370主板装win7及BIOS设置详细教程
- 【阿里云IoT YF3300】6.物联网设备报警配置
- 裁员风暴下,脉脉们却在背后偷着笑?
- Android---AndroidX
- python 基础之文件读操作
- 上班防摸鱼插件(知乎页面)
- 教大家如何下載土豆,56,youku等在綫視頻網站視頻
- discuz 单点登录 ucenter
- 你会阅读Java源码吗
- ubuntu安装截图工具 flameshot(对标windows下snipaste)
热门文章
- 成功解决‘nvidia-smi‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
- CV之IS:计算机视觉之图像分割(Image Segmentation)算法的挑战任务、算法演化、目标检测和图像分割(语义分割/实例分割/全景分割)的对比
- ML之LoR:基于LoR(逻辑回归)算法对乳腺癌肿瘤(9+1)进行二分类预测(良/恶性)
- Python命令行解析:IDE内点击Run运行代码直接得出结果、基于TF flags(或argparse、sys.argv)在Dos内命令行(一条命令)调用代码文件得出结果
- Crawler:爬虫基于urllib.request库实现获取指定网址上的所有图片
- Py之pipenv:Python包的管理利器pipenv简介、安装、使用方法详细攻略
- 互联网大厂高频重点面试题
- Windows安装MySQL教程
- Spring Boot后端+Vue前端+微信小程序,完整的开源解决方案!
- C++ 管理数据内存的方法