渗透测试人员其实都知道,只要能够直接接触到目标设备,并且选对了工具,那么任何设备都会成为“待宰的羔羊”。 早在2005年,Hak5就已经研发出了一款简单又暴力的渗透测试工具。随着BashBunny的问世,渗透测试可能又更进了一步。 组合各种USB设备的攻击方式 按照Hak5自己的说法,这款设备是“世界上最先进的USB攻击工具”。我们就来看看这款工具究竟有哪些本领。 这款设备“打开”的攻击面的确比先前的设备大了很多。渗透测试攻击和IT自动化工作,对Bash Bunny而言几秒内就能完成。 通过各种USB设
在使用 Google 搜索相关学习资料的过程中,搜到一本书——《圈圈教你玩 USB》,在阅读中发现需要购买相关硬件设备。
今天的主角就是这款名叫Flashsploit的工具,它是一款基于ATtiny85的HID攻击的漏洞利用框架,广大研究人员可以在它的帮助下,可以对各类设备进行HID渗透攻击测试。
基于X86架构的Linux内核,在移植驱动的过程中,发现GPIO和I2C的device ID添加到pnp驱动框架后无法进入probe函数,后面找了下原因,因为pnp遵循的是ACPI规范,是由于如下Hardware ID字段是需要从BIOS中进行描述的,而目前的驱动匹配不到对应的字段,自然就不可能注册成功了。 PNP是什么东西?不是三极管的那个PNP啦,这个PNP表示的是:Plug-and-Play,译文为即插即用。 PNP的作用是自动配置底层计算机中的板卡和其他设备,然后告诉对应设备都做了什么。PnP的任务是把物理设备和软件设备驱动程序相配合,并操作设备,在每个设备和它的驱动程序之间建立通信信道。然后,PnP分配下列资源给设备和硬件:I/O地址、IRQ、DMA通道和内存段。即插即用设备配置的控制权将从系统BIOS传递到系统软件,所以驱动中一定会有代码进行描述,到时可以跟一下这部分的代码深入了解一下。由于PNP遵循ACPI的规范,那么既然是规范,那肯定要照着做了,规范怎么说,那就怎么做。 以下是关于ACPI Spec中对Hardware ID的描述,描述如下:
一、Linux内核概览 Linux是一个一体化内核(monolithic kernel)系统。 设备驱动程序可以完全访问硬件。 Linux内的设备驱动程序可以方便地以模块化(modularize)的形式设置,并在系统运行期间可直接装载或卸载。 1. linux内核 linux操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。 一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。 计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。 但是没有软件来操作和控制它,自身是不能工作的。 完成这个控制工作的软件就称为操作系统,在Linux的术语中被称为“内核”,也可以称为“核心”。 Linux内核的主要模块(或组件)分以下几个部分: . 进程管理(process management) . 定时器(timer) . 中断管理(interrupt management) . 内存管理(memory management) . 模块管理(module management) . 虚拟文件系统接口(VFS layer) . 文件系统(file system) . 设备驱动程序(device driver) . 进程间通信(inter-process communication) . 网络管理(network management . 系统启动(system init)等操作系统功能的实现。 2. linux内核版本号 Linux内核使用三种不同的版本编号方式。 . 第一种方式用于1.0版本之前(包括1.0)。 第一个版本是0.01,紧接着是0.02、0.03、0.10、0.11、0.12、0.95、0.96、0.97、0.98、0.99和之后的1.0。 . 第二种方式用于1.0之后到2.6,数字由三部分“A.B.C”,A代表主版本号,B代表次主版本号,C代表较小的末版本号。 只有在内核发生很大变化时(历史上只发生过两次,1994年的1.0,1996年的2.0),A才变化。 可以通过数字B来判断Linux是否稳定,偶数的B代表稳定版,奇数的B代表开发版。C代表一些bug修复,安全更新,新特性和驱动的次数。 以版本2.4.0为例,2代表主版本号,4代表次版本号,0代表改动较小的末版本号。 在版本号中,序号的第二位为偶数的版本表明这是一个可以使用的稳定版本,如2.2.5; 而序号的第二位为奇数的版本一般有一些新的东西加入,是个不一定很稳定的测试版本,如2.3.1。 这样稳定版本来源于上一个测试版升级版本号,而一个稳定版本发展到完全成熟后就不再发展。 . 第三种方式从2004年2.6.0版本开始,使用一种“time-based”的方式。 3.0版本之前,是一种“A.B.C.D”的格式。 七年里,前两个数字A.B即“2.6”保持不变,C随着新版本的发布而增加,D代表一些bug修复,安全更新,添加新特性和驱动的次数。 3.0版本之后是“A.B.C”格式,B随着新版本的发布而增加,C代表一些bug修复,安全更新,新特性和驱动的次数。 第三种方式中不使用偶数代表稳定版,奇数代表开发版这样的命名方式。 举个例子:3.7.0代表的不是开发版,而是稳定版! linux内核升级时间图谱如下:
一、介绍 前段时间翻译了有关BadUSB的两篇文章《解密BadUSB:世界上最邪恶的USB外设》和《研究人员公布BadUSB攻击测试(exploit)代码》,大家反应强烈,很多人都在打听BadUSB的实现方法,或者从那里可以买到这样的U盘。原本打算本周写一篇分析已公开的BadUSB利用代码,兑现一下诺言,但实在是抽不出时间。在此先给大家介绍一下BadUSB的“老前辈”:USB RUBBER DUCKY和Teensy,满足一下大家的好奇心。USB RUBBER DUCKY和Teensy都可用于实施HID模拟攻
00x0 元旦快乐 这是第一次用Markdown编辑器写东西。感觉还是不错的,可以省下很多排版的时间。@豆瓣将军,夜豆女侠可以尝试着使用呦!然后发现微信公众号的编辑器不支持Markdown,不过一折腾发现是有方法的! 写在文章前面的东西,对,今天是元旦。大家昨天晚上都在跨年,看烟花,约会,看电影。而我,弄着某sb单片机做的傻逼东西,说实话真的是吃力不讨好,具体原因不详。其实对我等对跨年没有什么感觉了,自从中国台湾回来之后,感觉没有这个气氛了。别的不说,原单快乐吧,然后明天答辩快乐~ 00x1
SSH(Secure Shell)是一个为网络服务提供安全通信通道的协议,广泛应用于远程服务器管理、文件传输等多种场景。为了确保通信的安全性,SSH协议提供了多种身份验证机制。其中,内置的USB HID(Human Interface Device)支持是SSH为用户提供安全、简便身份验证方式的重要特性之一。本文将深入探讨SSH的内置USB HID支持及其对用户和管理员的益处。
介绍 今年9月15日,Chrome61发布,它启用了WebUSB作为其默认功能。而WebUSB是一个Javascript API,可以允许网页访问已连接的USB设备。这里的USB设备是指系统和工业的USB设备,所以不支持常见的USB设备(比如网络摄像头,HID或大容量储存设备)。然而通过WebUSB API,很多其他的USB设备可以被访问,且当用户授权给网页时,自己可能根本不了解网页获取的访问权限级别。 这篇文章探寻WebUSB的功能,以深入了解其工作原理,攻击方法及隐私问题。我们会解释访问设备所需的过程,
现在越来越多的电子设备采用USB接口进行通讯,通讯标准也在逐步提高。那么,我们就会好奇这些设备是如何工作的?而无论你是一个硬件黑客,业余爱好者或者只是对它有一点兴趣的,USB对我们都是具有挑战性的。 事实上通过wireshark,我们可以捕获到usb设备发送给我们主机的数据,这样就可以进一步研究了。 本文中,我们将向大家介绍怎样通过wireshark捕获usb数据,使用的环境如下: l Wireshark 2.0.1(SVN)l Linux kernel 4.1.6 你也可以用其他版本的wiresh
经过上一篇文章的学习,对USB HID驱动有了更多的了解,但是也产生了许多疑问,在后续的学习中解决了一些疑问,本篇文章先对已经解决的问题进行讲解。
USB是连接计算机系统与外部设备的一种串口总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通讯产品,USB就是简写,中文叫通用串行总线。最早出现在1995年,伴随着奔腾机发展而来。自微软在Windows 98中加入对USB接口的支持后,USB接口才推广开来,USB设备也日渐增多,如数码相机、摄像头、扫描仪、游戏杆、打印机、键盘、鼠标等等,其中应用最广的就是摄像头和U盘了。
关于scrcpy scrcpy是一款针对Android设备的管理和控制工具,该工具可以通过USB或TCP/IP来帮助广大研究人员显示、管理和控制Android设备。该工具不需要root访问权限,支持GNU/Linux、Windows和macOS系统。 工具特性 1、性能:30~120fps,具体取决于设备 2、分辨率:1920×1080或以上 3、低延迟:35~70ms 4、低启动时间:约1秒显示第一个图像 5、非侵入性:Android设备上未安装任何内容 6、工具优势:无需账户,无需广告,无需
在上一篇的Paper中,我们尝试对USB键盘进行模拟,下一步再尝试对USB鼠标设备进行模拟。
usbsas是一款功能强大的开源(GPLv3)工具&框架,该工具可以帮助广大用户以安全的方式读取不受信任的USB大容量存储设备。
4.Badusb内部结构 从这张图便可以了解到–Badusb和普通的U盘并没有什么两样,因此迷惑性极高,很容易攻击成功
HID Attack是最近几年流行的一类攻击方式。HID是Human Interface Device的缩写,意思是人机接口设备。它是对鼠标、键盘、游戏手柄这一类可以操控电脑设备的统称。 由于电脑对这类设备缺少严格2的检测措施,只是简单的识别设备类型,就允许设备对电脑进行各项操作。所以,通过修改篡改设备反馈信息,就可以很轻松的让电脑将其他设备误认HID设备为,从而获取控制权限。尤其是USB和蓝牙这类即插即用接口出现,导致HID Attack成为重要方式。例如,Bad USB就是USB类攻击的典型代表。 近日
近源渗透是这两年常被安全业内人员谈起的热门话题。不同于其他虚无缥缈的安全概念,近源渗透涉及到的无线安全、物理安全、社会工程学都十分容易落地实践,许多企业内部的攻防对抗演练也都出现了看上去“很过分”的近源渗透攻击手法,给防守方团队上了生动的一课。
USB的全称是Universal Serial Bus,通用串行总线。它的出现主要是为了简化个人计算机与外围设备的连接,增加易用性。USB支持热插拔,并且是即插即用的,另外,它还具有很强的可扩展性,传输速度也很快,这些特性使支持USB接口的电子设备更易用、更大众化。
本文源码下载地址:《仅通过蓝牙HID将安卓手机模拟成鼠标和键盘》源码 多文源码打包下载: 《仅通过蓝牙HID将安卓手机模拟成鼠标和键盘》+《蓝牙HID TouchScreen协议让你的安卓手机变成触摸屏》两份源码打包下载 《仅通过蓝牙HID将安卓手机模拟成鼠标和键盘》+《蓝牙HID TouchScreen协议让你的安卓手机变成触摸屏》+《通过蓝牙将安卓手机模拟成游戏方向盘-支持旋转轮胎》三份源码打包下载
在文章开始之前我们先看看BadUSB内部构造在接下来看看BadUSB HID的攻击原理以及优势HID是Human Interface Device的缩写,由其名称可以了解HID设备是直接与人交互的设备,。一般来讲针对HID的攻击主要集中在键盘鼠标上,因为只要控制了用户键盘,基本上就等于控制了用户的电脑。攻击者会把攻击隐藏在一个正常的鼠标键盘中,当用户将含有攻
近期一个小项目需要获取本机摄像头,声卡的信息,提供配置文件,用作软件配置。然后开始慢慢研究,说一下自己遇到的一些坑。
近源渗透(物理渗透)是红蓝对抗演练中的一个关键点,从相关新闻及实际测试结果来看,许多企业线上部署各种安全设备严阵以待,结果马奇诺防线在线下被物理渗透绕过 —— 物理安全或许就是部分企业的短板。本期TSRC特别邀请到腾讯企业IT部蓝军团队成员、《黑客大揭秘:近源渗透测试》第二作者杨芸菲(yyf),他将撰文与大家一起探讨近源渗透攻防。同时也向对近源渗透感兴趣的同志推荐该书。
本文介绍了如何通过Linux内核模块编程,实现USB设备驱动,特别是针对键盘、鼠标等输入设备的驱动开发。通过分析具体的实现过程,作者让读者了解如何通过Linux内核模块编程,实现USB设备驱动,特别是针对键盘、鼠标等输入设备的驱动开发。
在说 WPF 开发的时候,如果开发的应用是触摸应用,那么熟悉的小伙伴会说到触摸失效问题。从分类上触摸失效有系统的触摸失效,应用程序的触摸失效,同时触摸失效指的不是触摸没反应,本文详细告诉大家什么是触摸失效
Chrome 86 在2020年10月推出了稳定版,现已全面应用于Android、Chrome OS、Linux、macOS 和 Windows等平台,我们一起来看下这次的重要更新。若要看全部更新,请移步(https://www.chromestatus.com/features#milestone=86)。
kali nethunter 是在已有的 rom上对内核进行修改而定制的一个系统,他通过 chroot 来在安卓设备中运行 kali。故在安装 kali nethunter前你得先有一个被支持的rom.官方支持的设备和rom列表: https://github.com/offensive-security/kali-nethunter/wiki 。这里我用的是 nexus4 ,其他设备的流程应该大概差不多。具体流程如下:
UT181A是优利德门下旗舰级手持数字万用表,主打数据记录(Data Logging)功能,支持USB联机通讯。基本评测可以看我以前发的文章。前文说到,其官方或第三方软件功能有限,缺少最重要的导出功能。另外,数据传输的速度也比较慢。 所以,欲对其协议进行分析,方便扩展、改进、和其它设备(比如树莓派)连接、等等。 本文的破解/破译方法及结论应该适用于UT171系列;UT71系列也可以参考。对破译其它联机通讯的设备也有借鉴意义。 可行性分析 UT181A使用了Silicon Labs HID-to-UART接口
看到 HID#Vid_3689&Pid_8762 这一段,觉得可以先遍历所有的设备:
*本文原创作者:kincaid,本文属FreeBuf原创奖励计划,未经许可禁止转载
上篇文章我们讲述了如何定制Linux外围文件系统,本文我们来讲讲如何定制Linux内核。
HID是一种USB通信协议,无需安装驱动就能进行交互,在学习HID之前,先来复习一下USB协议的相关内容。
扫描枪(BarCoder Reader )作为光学、机械、电子、软件应用等技术紧密结合的高科技产品,是继键盘和鼠标之后的第三代主要的电脑输入设备。扫描枪自 80 年代诞生之后,得到了迅猛的发展和广泛的应用,从最直接的图片、照片、胶片到各类图纸图形以及文稿资料都可以用扫描枪输入到计算机中,进而实现对这些图像信息的处理、管理、使用、存储或输出。
首先需要打开 Nuget 安装 CoreCompat.LibUsbDotNet ,这是一个usb连接的库。
问1. 既然还没有"驱动程序",为何能知道是"android phone" 答1. windows里已经有了USB的总线驱动程序,接入USB设备后,是"总线驱动程序"知道你是"android phone" 提示你安装的是"设备驱动程序" USB总线驱动程序负责:识别USB设备, 给USB设备找到对应的驱动程序
漏洞背景 “BadUSB”是今年计算机安全领域的热门话题之一,该漏洞由Karsten Nohl和Jakob Lell共同发现,并在今年的BlackHat安全大会上公布。BadUSB号称是世界上最邪恶的USB外设。 笔者使用他们的代码做了个类似的U盘,用户插入U盘,就会自动执行预置在固件中的恶意代码,下载服务器上恶意文件,执行恶意操作。注意,这里的U盘自动运行可不是以前的autorun.inf自动运行程序哦,具体的技术细节可以参考后文内容。 视频链接:http://v.qq.com/boke/page/l/g
在 Windows 提供很底层的方法接收硬件设备的裸数据,通过接收裸数据可以做到性能更高的全局键盘,还能支持多个鼠标。但是用这个方法需要自己解析裸数据,同时会因为接受到很多消息降低性能
适用于Apple MacBook / Magic Trackpad的Wi??ndows Precision触摸板驱动程序实现 众所周知 Boot Camp 的触摸板驱动不是那么好用,所以我们就来实现一
对于那些经常使用的,或者是特别复杂的Git命令,我们可以为其设置别名,这样在我们想要执行对应的Git命令时,只要执行这个别名命令就好了,简单方便。
USB,全称是 Universal Serial Bus,即通用串行总线,既是一个针对电缆和连接器的工业标准,也指代其中使用的连接协议。本文不会过多介绍标准中的细节,而是从软件工程师的角度出发,介绍一些重要的基本概念,以及实际的主机和从机应用。最后作为实际案例,从 USB 协议实现的角度分析了checkm8漏洞的成因。
本系列参考: 学习开发一个RISC-V上的操作系统 - 汪辰 - 2021春 整理而来,主要作为xv6操作系统学习的一个前置基础。
在Windows 2000 与Windows XP 系统采用是WINDDK来开发WINDOWS驱动程序,我手头也有WINDDK,可是从Windows Vista开始之后,一般采用Microsoft Windows Driver简称(WDK)。这段时间刚好项目有用到USB HID,需要用到HID.lib库文件,因此下载了这个WDK7.1.0版本,采用HID.LIB,以及采用USB HID的目的,就是省去了PC端的驱动程序的编写,直接采用Windows内置的驱动程序,只需要了解USB HID通信数据包的机制即可。免去了安装驱动程序的烦恼。当然下位机也需要写一个USB HID的USB Device驱动。简单的说下USB HID的枚举吧:
作者 | 李冬梅 当地时间 2 月 20 日,Linux 创始人 Linus Torvalds 发布了稳定的 Linux 6.2 内核更新,他将该版本描述为:“也许它不像 6.1 那样是一个性感的 LTS 版本,但还是希望这版普通的内核得到更多测试人员的偏爱。” 这是 Linux 在 2023 年的第一个主要内核版本更新。 为了做到真正的开箱即用,Linux 6.2 提升了 Intel Arc Graphics(DG2/Alchemist)的稳定性。英特尔的 On Demand 驱动程序现在状态良好,已适
触摸在 Windows 下属于比较特殊的输入,不同于键盘和鼠标,键盘和鼠标可以通过全局 Hook 的方式获取到鼠标和键盘的输入消息。而触摸则没有直接的 Hook 的方法。如果期望自己的应用,可以在没有作为前台获取焦点的应用时,可以抓取到全局的触摸消息,抓取到其他应用程序的触摸输入,那么可以尝试使用 RawInput 的方式。通过 RawInput 的方式,可以让一个没有任何激活的、触摸直接命中的窗口的应用程序接收到全局的所有触摸消息
最近在玩STM32CUBE的USB功能,用起来还是挺方便的。只要配置一下,设备描述符、配置描述符、接口描述符什么的,都能给你自动生成,其中还包括比较复杂的报告描述符。
USB 有主机功能和从设备功能。做主机时,能连接 U 盘、USB 鼠标等 USB 设备;做从设备时,具有 ADB 调试等从设备功能。
网上有很多调试工具,比如串口调试助手,网络调试助手,HID调试助手。这些不可否认,确实带来挺多debug便利。但是对于一个产品来说,如果有一个定制版的调试助手,那么对于我们开发就提供了更加美好便利,以及节省很多时间。
领取专属 10元无门槛券
手把手带您无忧上云