网站客服:zx81024163 |

教你制作一款可记录用户输入的帐号密码的“黑武器”

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 网络。 (名称和密码可在固件源码中修改)

无线网络列表

接下来,打开浏览器并访问,您可以看到所有的键盘日志。

查看记录内容

访问清除已保存的记录。

六。

提醒:请联系我时一定说明是从星空网上看到的!