近源渗透|HID ATTACK从0到1

前言

对于“近源渗透”这一术语,相信大家已经不再感到陌生。它涉及通过伪装、社会工程学等手段,实地侵入企业办公区域,利用内部潜在的攻击面——例如Wi-Fi网络、RFID门禁、暴露的有线网口、USB接口等——获取关键信息,并以隐蔽的方式将评估结果带出并上报,以此揭示企业安全防护的漏洞。

在此,我们仅作为学习交流,提醒大家,近源渗透涉及相关法律规定,请务必谨慎行事!

我自己对HID ATTACK的启蒙非常早,在16年左右,就有使用过类似橡皮鸭的HID(Human interface device,缩写HID,直译为人类接口设备)设备,最初的时候应该是在freebuf上看到的,以及国内的badusb网站。使用便宜的Digispark USB开发板基于ATTiny85,其速度较慢,且对于win7不免驱。使用Arduino IDE开发相关的payload,如今在github还是可以找到很多案例,对于入门HID非常简单。然后又找到一个速度较快的,基于ATmega32U4的开发板,免驱,但开发的代码比较复杂,但github也有案例。

我本人最终选择了2个方案,树莓派pico(RP2040)与DIY基于CH552/554的开发板,因为他们俩都能实现自带flash,本篇文章将主要循序渐进的讲这两个方案的实现过程

当然还有一个高阶方案就是给支持Nethunter Kali内核的手机刷上Nethunter系统,内自带两种HID ATTACK方式,本人使用的是Google Pixel 6p

PicoDucky

此方案主要围绕https://github.com/dbisu/pico-ducky来实现

需要准备

  • RP2040开发板 or 树莓派pico开发板 (成本20以内)!

  • 一根带数据传输功能的 Type-C线

开始部署

设备到手后先长按BOOT按钮,如图,然后使用数据线连接上电脑,直到出现一个名为RPI-RP2的存储设备

将adafruit-circuitpython-raspberry_pi_pico-en_US-8.x.x.uf2复制进去,版本不限只需是8.x.x即可,可以到上方GitHub链接中获取,也可以到文末的附件中获取,此操作为安装micro-python到设备

复制完成后刚刚的存储设备名字会变为U盘,若没变的话请重新接入设备,发现其中文件消失,此时再复制pico-ducky的文件进去,此操作为安装pico-ducky进去,过程消耗1分钟左右

复制完成后,单点RST按钮,等待几秒会自动打开notepad输入Hello World!字样,即完成

具体攻击代码可在payload.dd中修改,其语法规范为橡皮鸭duck的规范,但某些功能不支持,最后面会阐述

此方案还可以使用W版本,就是带WIFI的版本,可以手机连接热点切换payload,具体看作者GitHub中内容

此方案成本控制在20以内甚至更低

CH552G

此方案主要围绕https://github.com/Push3AX/USBAirborne来实现

需要准备

  • 首先注册嘉立创,下载嘉立创下单助手到其中左侧下拉栏中免费领取打板券(需进行考试,内容为电子相关

  • 下载工程Gerber文件导入到嘉立创内进行生产PCBhttps://raw.githubusercontent.com/Push3AX/USBAirborne/main/Hardware/Gerber_PCB1_2022-06-19.zip也可以在嘉立创开源平台中自己编辑项目后导出Gerber文件(主要是添加点自己的丝印等)https://oshwhub.com/PushEAX/3079905e2c434c54902d77ab60f6c747

  • 打板的时候,板子2层 1.6厚即可,沉金,其他参数默认
  • 物料 10uf电容 100NF电容 22k电阻 W25QFLASH CH552G/554G单片机 拨码开关2PIN USB公头

  • 电阻电容焊接点位

开始焊接

热风枪焊接(推荐)

电烙铁焊接

焊接前将双手去静电,焊接时准备防静电镊子

根据点位焊接,注意器件的方向

  • 最终成品如下

  • 也可以购买一个G2版型通用的U盘外壳搭配使用

开始部署

下载烧录软件WCHISPTool

将拨码开关2打开开启烧录模式

插入设备后打开烧录软件

配置型号 用户程序文件 且USB设备列表成功显示了CH552设备

关闭烧录模式,插入设备,会HID打开百度网站,说明此设备已经部署成功

关闭攻击模式使得设备flash可读写,Autorun.inf文件中为具体payload,其可利用Windows的自动播放功能进行攻击也可以使用HID攻击,我们只使用HID功能,因为前者在部分系统中是默认关闭的,没有效果

[BadUSB]
[Win+R]
[Delay][Delay]
notepad[Enter]
[Delay]
Hi![Enter]
ThisisatestofUSBAirborne[Enter]
[Win+R]
[Delay]
[Delay]
https://www.bilibili.com/video/BV1uT4y1P7CX/
[Enter]
[BadUSB];后续是AutoRun攻击的配置文件。USBAirborne支持同时进行两种攻击。
[AutoRun]
autoplay=true;将驱动器图标伪装为U盘图标
icon=c:\windows\system32\shell32.dll,79;驱动器名称
label=Nothinginside;攻击Payload,此处为调用cmd打开网页
open=cmd.exe/c"start https://www.bilibili.com/video/BV1uT4y1P7CX"
run=cmd.exe/c"start https://www.bilibili.com/video/BV1uT4y1P7CX";劫持右键菜单
shell\open=打开(&O)
shell\open\Command=cmd.exe/c"start https://www.bilibili.com/video/BV1uT4y1P7CX"
shell\opennewwindow=在新窗口中打开(&E)
shell\opennewwindow\Command=cmd.exe/c"start https://www.bilibili.com/video/BV1uT4y1P7CX"

设备根据[BadUSB]中框起的代码作为HID攻击代码,其语法类似橡皮鸭duck,我们可以在作者固件源码中得到具体内容,后续[AutoRun]则为一些配置和Windows自动播放攻击的代码

BadUSB的配置文件支持一些组合键和高级命令:

[Enter]:按下回车键
[Shift]:按下Shift键
[Capslock]:切换大小写
[Win]:按下Win键
[Win+R]:打开“运行”窗口
[Alt+F4]:关闭当前窗口
[Win+D]:显示桌面
[Win+L]:锁定计算机
[Win+E]:打开Windows资源管理器
[Ctrl+Alt+Del]:打开安全选项
[Delay]:等待500毫秒
[Format]:格式化储存

此方案成本控制在10以内甚至更低(单个)

思考问题

  • 这两个方案的操作是否过于复杂了?对于其他现成方案来说有什么优点呢?

其实我们可以使用市面上的其他开发板来实现HID攻击,但是本文章所述的两个方案他们都自带4-16mb的flash(取决于购买的设备)可以存储,可以作为U盘使用,更重要的是,可以存储恶意进程到U盘之内,使用cmd或者powershell指令,低风险的执行,不用远程下载

有些人说,是不是可以直接把恶意进程转base64后使用HID设备全部打出来然后解码转二进制文件运行?是可以,但太慢了

  • 方案目前是最优解吗?

其实并不是最优解,这两个方案的伪装效果不如数据线类型的HID设备

方案一其中的pico-ducky只不过是将pico废物利用了,其不兼容很多外壳,且其USB-A版本价格偏高,虽小但也没有外壳可用,如图,且其会发出光亮,伪装效果不佳,但速度较快,部署简单

方案二作为自diy的设备,可以实现外壳兼容,flash存储,且可以自写固件添加功能,例如格式化设备清除痕迹等,但其不是最优解主要体现在他的速度稍慢,连接上电脑需要5秒左右的初始化时间,且其固件功能不够多

  • 能过输入法吗?

过输入法常常出现在中文系统下,输入法开启导致HID输入的内容变更,导致无法执行

常用的方法是开大小写,但是遇到一些区分大小写的内容,就无法使用了

解决问题

  • 如何取flash中的恶意进程出来
((wmiclogicaldiskwheredrivetype=2getdeviceid|findstr/v"DeviceID")-join""-replace"[\s]","")+"\\1.exe"|Out-File-FilePath"c:\\users\\public\\x";Invoke-Expression(Get-Content"c:\\users\\public\\x")

使用这个powershell代码可从最新插入的U盘设备(type2)中获取1.exe的路径,保存在public文件夹内,然后取这个路径文件运行,算是比较好用的一个取文件方案,欢迎补充优化!

  • 伪装性

解决这个问题最优解是使用hackusb数据线,在几年前其作者因当兵鸽子了很久,现在复出了(很多人以为是进去了),听说现在迭代到很强的版本了

对于本文方案一的解决思路就是,重绘RP2040的PCB制作一个类似G2板样的,去除或保留RGB灯,这个思路成本太高了

对于其他建议我认为可以使用无flash版本的最小ch552g板子的HID设备,开源地址https://oshwhub.com/Inkusa/ch552g-zui-xiaobadusb_copy 基本上就是贴着usb母口来执行了,缺点是难扣下来,成本非常低,还可以使用usb接收器外壳的HID设备,https://oshwhub.com/hexesdesu/USBjie-shou-qi-wai-qiao-Badusb,自认为挺不错的,当然还有数据线版本,https://oshwhub.com/monkeylord/badusb-cable

  • 输入法

解决这个问题目前我个人知道的方案就是使用 橡皮鸭v3版本其固件可以读取大小写锁定状态 使用if语句判断来看是否要大小写来绕过,而输入法是系统软件层面的,我们可以使用阶段payload,比如一阶段执行一个程序将输入法切换为英文后使用阶段二来进一步利用,提供一个思路:Windows在不同进程窗口中会自动切换输入法状态为英文或中文

  • 速度

速度取决于单片机,越高端的理论上速度越快,当然也需要搭配一个较好的固件,不如方案二中作者给了解决方法,将payload直接在编译前写死在代码中,不用等待5秒初始化就可以执行payload了,毕竟还需要读取autorun.inf中的内容再执行

  • 什么是最优解

没有最优解,适合自己的才是最优解

免责声明

(1)本文提到的两个方案均取自于网络

(2) 本项目仅用于网络安全技术的学习研究。旨在提高安全开发能力,研发新的攻防技术。

(3) 若执意要将本项目用于渗透测试等安全业务,需先确保已获得足够的法律授权,在符合网络安全法的条件下进行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/478034.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python爬取豆瓣电影全部分类数据并存入数据库

在当今数字化的时代,网络上丰富的影视资源信息吸引着众多开发者去挖掘和利用。今天,我就来和大家分享一段有趣的代码,它能够从豆瓣电影平台获取相关数据并存储到数据库中哦。 结果展示(文末附完整代码): 目…

java: itext8.05 create pdf

只能调用windows 已安装的字体,这样可以在系统中先预装字体,5.0 可以调用自配文件夹的字体文件。CSharp donetItext8.0 可以调用。 /*** encoding: utf-8* 版权所有 2024 ©涂聚文有限公司 言語成了邀功盡責的功臣,還需要行爲每日來值班…

基于Java Springboot公园管理系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数据…

Java中的File和IO流

File对象 File对象本质是一个文件或文件夹,用于写入和读取文件内容 注意:对于相对路径而言,在单元测试方法中的File是相对于Module,在main中的File是相对于Project 构造器 File(String pathname)File file1 new File("D:…

(Keil)MDK-ARM各种优化选项详细说明、实际应用及拓展内容

参考 MDK-ARM各种优化选项详细说明、实际应用及拓展内容 本文围绕MDK-ARM优化选项,以及相关拓展知识(微库、实际应用、调试)进行讲述,希望对你今后开发项目有所帮助。 1 总述 我们所指的优化,主要两方面: 1.代码大小(Size) 2.代码性能(运行时间) 在MDK-ARM中,优…

ssm实战项目──哈米音乐(二)

目录 1、流派搜索与分页 2、流派的添加 3、流派的修改 4、流派的删除 接上篇:ssm实战项目──哈米音乐(一),我们完成了项目的整体搭建,接下来进行后台模块的开发。 首先是流派模块: 在该模块中采用分…

STM32的中断(什么是外部中断和其他中断以及中断号是什么)

一、什么是EXTI 和NVIC EXTI(External Interrupt/Event Controller)EXTI 是外部中断/事件控制器,它负责处理外部信号变化,并将信号传递给中断控制器(如 NVIC)。主要负责以下功能: 外部事件检测…

5、AI测试辅助-生成测试用例思维导图

AI测试辅助-生成测试用例思维导图 创建测试用例两种方式1、Plantuml思维导图版本 (不推荐)2、Markdown思维导图版本(推荐) 创建测试用例两种方式 完整的测试用例通常需要包含以下的元素: 1、测试模块 2、测试标题 3、前置条件 4、…

IDEA 2024安装指南(含安装包以及使用说明 cannot collect jvm options 问题 四)

汉化 setting 中选择插件 完成 安装出现问题 1.可能是因为之前下载过的idea,找到连接中 文件,卸载即可。

js+jquery实现经典推箱子游戏

纯前端项目,只使用html,css,js,jquery实现经典推箱子游戏,直接下载本地双击index.html即可运行体验。 游戏展示 开始界面 完成游戏 代码展示

《文件操作》

一 . 文本文件和二进制文件 根据数据的组织形式,数据文件被分为了二进制文件和文本文件 数据在内存中是以二进制的形式存储,如果不加转换的输出到外存的文件中,就是二进制文件。 如果要求在外存上以ASCII 码的形式存储,则需要再存…

监控报警系统的指标、规则与执行闭环

随笔 从千万粉丝“何同学”抄袭开源项目说起,为何纯技术死路一条? 数据源的统一与拆分 监控报警系统的指标、规则与执行闭环 java 老矣,尚能饭否? 一骑红尘妃子笑,无人知是荔枝来! 有所依 我们如何知道系统交易…

LLaMA-Mesh: Unifying 3D Mesh Generation with Language Models 论文解读

目录 一、概述 二、相关工作 1、LLMs到多模态 2、3D对象生成 3、自回归的Mesh生成 三、LLaMA-Mesh 1、3D表示 2、预训练模型 3、有监督的微调数据集 4、数据集演示 四、实验 1、生成的多样性 2、不同模型text-to-Mesh的比较 3、通用语境的评估 一、概述 该论文首…

【大数据学习 | Spark-Core】Spark提交及运行流程

spark的集群运行结构 我们要选择第一种使用方式 命令组成结构 spark-submit [选项] jar包 参数 standalone集群能够使用的选项。 --master MASTER_URL #集群地址 --class class_name #jar包中的类 --executor-memory MEM #executor的内存 --executor-cores NUM # executor的…

ES6 、ESNext 规范、编译工具babel

ES6 、ESNext 规范、编译工具简介 ES6ES(ECMAScript) vs JS常量进一步探讨 obj对象的扩展面试:使对象属性也不能更改——Object.freeze(obj) 解构deconstruction变量的解构赋值:数组解构赋值:对象解构赋值:…

【MyBatis】全局配置文件—mybatis.xml 创建xml模板

文章目录 模板文件配置元素typeAliasessettings 模板文件 创建模板 按照顺序打开【File】–>【settings】–>【Editor】–>【File and Code Templates】&#xff08;或直接搜索&#xff09; <?xml version"1.0" encoding"UTF-8" ?> <…

小程序免备案:快速部署与优化的全攻略

小程序免备案为开发者提供了便捷高效的解决方案&#xff0c;省去繁琐的备案流程&#xff0c;同时通过优化网络性能和数据传输&#xff0c;保障用户体验。本文从部署策略、应用场景到技术实现&#xff0c;全面解析小程序免备案的核心优势。 小程序免备案&#xff1a;快速部署与优…

【数据结构】—— 线索二叉树

引入 我们现在提倡节约型杜会&#xff0c; 一切都应该节约为本。对待我们的程序当然也不例外&#xff0c;能不浪费的时间或空间&#xff0c;都应该考虑节省。我们再观察团下图的二叉树&#xff08;链式存储结构)&#xff0c;会发现指针域并不是都充分的利用了&#xff0c;有许…

Outlook for Mac同步错误:The total attachment size exceeds the limit.

现象 mac一直弹出同步错误提示&#xff1a;The total attachment size exceeds the limit. 怎么也去不掉 解决办法 ①清除收件箱和已发送邮件的缓存 ②删除邮箱账号再重新添加