教你制作一款可记录用户输入的帐号密码的“黑武器”
2023-10-18 23:04:23发布 浏览486次 信息编号:79305
友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。
教你制作一款可记录用户输入的帐号密码的“黑武器”
大家好! 我是每天给大家分享好文章的柠檬! 与你一起成长~
如果您需要系统的黑客渗透视频教程,可以在文末观看。
一。
前言
小时候,我是一名逃课、去黑暗网吧的小学生。
传说,网吧老板会在电脑背面的USB接口上安装一个小工具,用来记录小学生的网络游戏账号。
现在我知道了,这是一个硬件键盘记录器。
硬件键盘记录器
与该软件的键盘记录器一样,它会记录用户在键盘上的所有输入,例如账户密码、网站地址、手机号码等。
硬件版本的独特之处在于:
尽管现在各种防御措施可以防御大多数软件键盘记录器,但基于硬件的键盘记录器对于操作系统来说是无法察觉的。 毕竟它是一个标准的输入设备。
识别和防御它们变得非常困难。
图片中的设备之一是键盘记录器,你能找到它吗?
在这篇文章中,我们将讨论硬件键盘记录器的原理。
从 PCB 和固件开始,制作一个可以通过 Wi-Fi 远程控制的硬件键盘记录器。
二。
原则
国内外电商上有很多硬件键盘记录器的成品,但价格稍贵。
网上有开源设计、@的作品等。
我们举个例子,它是一个基于.
自带Wi-Fi功能,可以存储录制的键盘输入并通过其来源的Wi-Fi网络查看录制的数据
但是,您可能会发现它不切实际:它太大并且难以安装在计算机后面。
原因是USB键盘使用HID协议。 对于 ,它的读取速度太快了。 所以除此之外还必须添加其他读取HID协议的设备。
解决办法是使用USB Host模块(图中白色部分),@的方法是使用适配器将USB键盘转换成PS2键盘,并分析PS2协议。
这些解决方案有两个缺点:一是体积较大,二是这些解决方案会对键盘产生一些影响,例如多媒体按键无法使用、不同键盘布局的兼容性问题等。
为了实现更紧凑和兼容的设计,您必须使用其他芯片并重新设计PCB。 最好将HID协议转换、键盘数据分析与记录、Wi-Fi功能集成在一块板上,而且尺寸比较紧凑。
本文设计并制作了这样一个键盘记录器。
三。
设计
本文中的键盘记录器实现了USB键盘输入的分析和记录,并提供Wi-Fi功能。 本章我们详细分析各部分的设计。
无线网络部分
在渗透场景中,植入硬件设备,然后几天后回来取走它可能会让您入狱。
如果键盘记录器具有 Wi-Fi 功能,则可以远程读取键盘日志。 它甚至可以配置为连接到目标办公室的 Wi-Fi,并将键盘日志直接传输回攻击者的控制服务器。
通过 Wi-Fi 读取记录
对于Wi-Fi部分,我们使用著名的芯片——廉价且功能强大的Wi-Fi SOC,该芯片广泛应用于物联网领域。
本文使用的是-07S模块。 它的体积非常小,并且有常用的引脚,可以满足本文的需要。
-07S模块
键盘记录部分
首先,需要一个芯片将HID协议转换为UART协议,以便分析和记录键盘数据。
实现后端数据分析和记录。
是南京勤恒微公司生产的USB键盘鼠标转串口通信控制芯片。 可实现HID协议和UART协议相互转换,完成度高,开发方便。
我们将USB键盘的HID协议转换为UART协议,解析并记录键盘输入内容,并提供WI-FI接入功能。
整体电路设计
整个电路原理图如图所示:
原理图,示意图
左下角是电源模块。 由于需要3.3V供电,而USB接口是5V供电,所以采用了-3.3芯片进行转换。
正下方是-07S模块。 我们使用其UART接口的RX(接收端)来接收发送的数据。 连接到键盘侧UART的TX(发送端),用于“观察”通信。
这还有另一个优点:键盘记录器的分析模块是站在“旁观者”的角度。 即使解析缓慢甚至崩溃,也不会对键盘产生任何影响。
中间的两个芯片是。
根据官方文档,两台电脑分别作为连接键盘的下位机和连接电脑的上位机,供电统一为3.3V。
两侧为USB接头和母座,用于插入电脑的USB接口,连接USB键盘。
固件设计
具体的键盘数据分析、数据存储、Wi-Fi功能需要我们在模块中编写相关程序,即固件。
支持开发,这为我们的固件开发提供了方便,所以本文就是在该环境下进行开发的。
固件需要实现:
通过UART串口读取它们之间的键盘数据并进行分析。
其中存储数据并提供读取和清除功能。
提供通过 Wi-Fi 查看录制内容的能力
上电后,两个设备将自动协商进入“模式1”并在UART接口上传输各种数据帧。 具体流程和数据帧信息请参考官方文档。
我们需要的是“有效键值框”,它包含了用户在键盘上按下的按键信息。
其格式如下:
有效键值框
由于我们截取的是USB键盘数据,所以帧格式一般如下:
57AB 83 0C 12 01 00 00 04 00 00 00 00 00 12 17 //有一个键被按下
57AB 83 0C 12 01 00 00 00 00 00 00 00 00 13 14 //按钮被释放
前6位是固定的,接下来的8位是标准USB键盘数据,最后两位是序列号和验证。
我们可以使用前 6 位作为特征来识别有效的键值帧,然后读取后 8 位来获取击键信息。
具体数据表请参考USB HID使用表,链接在文末。
,识别有效键值帧的示例代码如下:
无效循环(){
while (.() > 0) { //串口缓冲区有数据
if (.read() == 0x83){ //帧的第二位83是第一个特征
延迟(10); //适当延迟,等待后续数据到达串口缓冲区
如果(.read()== 0x0C){
延迟(10);
如果(.read()== 0x12){
延迟(10);
如果(.read()== 0x01){
//这里读取8位键盘数据
模块通过连接上位机的TX口接收键盘数据帧。 并将其解码为关键信息。
接下来,将获得的数据保存在 .
如何从零开始学习网络安全!扫描二维码获取视频教程
扫描二维码领取
(我们正在为您配置合适的助教)
(Flash File)是模块自带的闪存,即使断电其数据也不会丢失。
在-07S模块中,这个闪存的大小为4M,足以让我们保存相当多的键盘日志。
我们可以通过FS.h来读取和修改它。 示例代码如下:
#
文件; //创建文件对象
无效设置(){
。开始();
= .open("/.txt", "a+"); //打开一个文件
.(“也许这里有一些数据”); //写入数据
。关闭();
最后是 Wi-Fi 部分:创建一个 Wi-Fi 网络,允许攻击者在连接后查看或清除键盘日志。
这里引用了一些想法。 示例代码如下:
#
#
#
const char *ssid = ""; //创建的接入点名称
const char * = ""; //接入点密码
(80); //开启80端口服务(ip为192.168.4.1)
无效设置(){
WiFi.模式(); //Wi-Fi处于接入点模式
WiFi。(ssid,); //打开Wi-Fi
.on("/", , [](t *){ //显示访问根目录时的记录内容
->send(, "/.txt", "text/plain");
});
.on("/clear", , [](t *){ //访问“/claer”时清除现有记录
。关闭();
= .open("/.txt", "w");
->send(200, "text/plain", "日志文件!");
});
。开始(); //启动服务器
三者组合起来就是整个代码。 完整的固件源代码可以在文章末尾给出的链接下载。 ,
四。
五金生产
PCB设计与生产
为了将理论变为现实,我们需要将原理图转换为 PCB 并继续进行。
这里使用力创EDA进行生产。
具体过程限于篇幅,这里不再赘述。
作者的PCB设计如图所示:
PCB设计(铜布局未显示)
原理图和PCB设计均开源,文末有项目链接。 如果您想参考、二次开发或者直接制作,欢迎fork作者的项目。
完成设计后,将PCB工程导出为文件,提交给PCB制造商,然后投入生产。
您可以自行选择国内打样工厂。 常见的有嘉立创、杰培、华强PCB等。现在国内PCB行业已经发展到了可怕的程度:这种小双层板5个样品的价格在5-30元左右,而且内可交货2-3天。
这里笔者选择了嘉里创。 相关生产参数如图所示:
生产参数
提交订单后,如果不需要特殊工艺或杂色,通常可以在48小时内获得成品。 制作出来的PCB是这样的:
印刷电路板
烧录固件
您可能认为下一步是焊接元件?
还是要等,焊接之前,我们首先需要烧录固件。
请注意,模块必须首先使用固件进行编程,然后焊接到 PCB 上。
否则,在正常编程之前必须先断开RX触点和PCB,这会带来很多麻烦。
烧录需要使用模块。 淘宝买个CH340什么的就行了,6块钱左右。
模块
烧录的方法是将TXD0、RXD0、VCC、GND和GPIO0连接到
连接方法如下:
模块应如图所示接线(注意电线的颜色):
模块引线
模块接线
(这里需要注意的是,ESP-07 和 ESP-07S 之间的区别不仅仅是天线。
两者的编程方法完全不同。 ESP-07S 的引脚内置上拉/下拉电阻。 只需要拉低GPIO0即可下载。
但ESP-07没有,需要手动连接。 作者最初画的板子是错误的。 )
连接完成后,就会连接到电脑了。
烧录还需要安装环境,可以网上下载。 比较简单,这里不再详细描述。
麻烦的部分是要安装的扩展。 在笔者的网络环境下,相关链接会出现404,所以需要科学上网。
具体方法是打开固件源码(文末有下载链接)。
进入IDE后,点击“File-”,在“ Board URL”中输入:
第一选择
保存后,打开“工具-开发板-开发板管理器”,在“贡献”类型中找到“”,点击安装
开发板经理
现在您应该可以在“工具-开发板”中找到“ ”。
选择它并调整其他设置(例如Flash Size等),如下所示:
开发板设置
最后在端口菜单中选择COM端口(肯定不是COM1,可能是COM3、COM4等),然后点击“-”将代码烧录到开发板。
此过程需要 2-3 分钟。 如果看到如下调试信息,则说明固件烧录成功。
固件烧录成功
元件焊接
接下来是板上元件的焊接。 相关BOM(物料清单)如下:
焊接需要烙铁、松香、锡丝和高温海绵。
由于要焊接的引脚比较密集,建议使用带刀片的烙铁头。 这套售价约60元。
烙铁可以熔化锡丝,用于焊接各种元件。
松香可以恢复长期高温氧化的锡,高温海绵浸水后可以清洁烙铁头。
笔者使用的是黄花907带刀片烙铁。
这款烙铁价格实惠,温度可调,烙铁头可更换,使用寿命长。
使用上述工具,可以焊接大多数常见元件。
黄花907烙铁及刀片
至于焊接的具体方法,仅靠作者的话很难表达出来。
如果你想学习,你可以在或其他视频网站上找到不少视频教程,以及特定组件的焊接技术教程。
一个小技巧:
焊接的最佳顺序是——电容——USB连接器——模块。 一定要先烧掉它。
焊接模块只需要一点点锡和大量松香。 刀片连接到一侧的所有销钉并向外或向一侧拖动。 这个过程对于强迫症来说是非常舒服的。
该烙铁可转动至 400°,这是可能的,但不是必需的。 如果太热,锡很容易氧化。 一般250-300°就足够了。
焊接后的黑色松香污渍可以用小刀切割并用棉签蘸酒精清洁。
焊接好的成品是这样的:
完成的产品
所有配件安装完毕后,您可以根据需要安装-07S天线,因为它内置的天线信号一般,距离也不是很远。
五。
测试
现在你已经有了成品,将其安装在受害者计算机背面的USB端口上,连接键盘,它就会记录受害者的所有键盘日志。
连接图
安装后,您应该能够使用密码“”搜索名为“”的 Wi-Fi 网络。 (名称和密码可在固件源码中修改)
无线网络列表
接下来,打开浏览器并访问,您可以看到所有的键盘日志。
查看记录内容
访问清除已保存的记录。
六。
提醒:请联系我时一定说明是从星空网上看到的!