Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
WiFi-password-stealer — 一个简单的Windows和Linux击键注入工具,用于窃取存储的WiFi数据(SSID和密码)。 | Kitploit
工具/GitHubGitHub/aleksamcode/wifi-password-stealer
Wi-Fi审计密码攻击Payload生成数据泄露信息收集硬件黑客社会工程学学习与教育红队
GitHubaleksamcode/wifi-password-stealer

WiFi-password-stealer

一个简单的Windows和Linux击键注入工具,用于窃取存储的WiFi数据(SSID和密码)。

查看仓库
59547121年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

WiFi密码窃取器

License: GPL v2

你是否曾在电影中见过这样的场景:黑客将一个看似普通的U盘插入电脑,瞬间窃取数据?今天,你将亲手打造一个能够实现同样功能的设备。

⚠️ 声明:

本项目中的所有内容仅供安全研究目的使用。

目录

  • WiFi密码窃取器
    • 目录
    • 引言
    • 设置
      • 前提条件
    • Rubber Ducky攻击
      • 所需材料 - 你需要什么
      • 击键注入工具
        • 击键注入
        • 延迟
      • 数据窃取
        • Windows漏洞利用
          • 通过电子邮件发送被盗数据
        • Linux漏洞利用
          • 将被盗数据存储到U盘
          • Bash脚本
          • 负载快速概览
        • 窃取数据的格式化
      • USB大容量存储设备问题
      • 负载编写器
    • Bash Bunny攻击
    • 局限性与缺点
    • 参考

引言

2022年夏天,我开始着手构建一个能从目标电脑中提取数据的设备。但究竟如何部署恶意软件并窃取信息呢?在以下章节中,我将逐步讲解创建自定义击键注入工具所涉及的关键步骤、基本概念以及技术细节。虽然本项目专门针对WiFi凭证,但你可以轻松修改负载以实现更高级或更恶意的目的——真正的限制只在于你的创造力和技术专长。

设置

随着时间的推移,该项目已发展壮大,包含了多种脚本和工具。它最初是为了演示Rubber Ducky的能力而创建的——具体来说,是使用树莓派Pico(RPi Pico)的经济型版本。目前,该项目的主要两部分是:

  1. Rubber Ducky攻击
  2. Bash Bunny攻击

前提条件

  • 物理接触目标已解锁的电脑。

  • 电脑必须能够访问互联网,以便通过SMTP通过网络介质发送被盗数据。

  • 对于Linux漏洞利用,需要知道受害者电脑的密码。

Rubber Ducky攻击

创建pico-ducky后,你只需将修改后的负载(针对Windows漏洞利用调整了你的SMTP信息,以及/或者针对Linux漏洞利用调整了密码和U盘名称)复制到RPi Pico上。

所需材料 - 你需要什么


  • RPi Pico
  • Micro USB转USB数据线
  • 杜邦线(可选)
  • pico-ducky:将RPi Pico转换为USB Rubber Ducky
  • U盘(仅用于物理介质窃取)



[!NOTE]

  • 你也可以使用Rubber Ducky来构建此工具,但请注意,RPi Pico售价约4美元,而Rubber Ducky售价80美元。

  • 然而,虽然pico-ducky是一个经济实惠的解决方案,但Rubber Ducky在隐蔽性和使用最新版DuckyScript方面更具优势。

  • 为了在RPi Pico上使用Ducky Script编写负载,你需要先将其转换为pico-ducky。请按照这些简单步骤来创建pico-ducky。

击键注入工具

击键注入工具一旦连接到主机,就会通过运行模拟用户输入的击键代码来执行恶意命令。它看起来像是一个U盘,但实际上就像一个键盘,会自动输入预编程的负载。像Rubber Ducky这样的工具每分钟可以输入超过1000个单词。一旦创建,任何拥有物理接触的人都可以轻松部署该负载。

击键注入

负载使用STRING命令来处理注入的击键。它接受一个或多个字母数字/标点符号字符,并按原样将剩余的行输入到目标机器中。ENTER/SPACE将模拟键盘按键的按下操作。

延迟

我们使用DELAY命令来暂时暂停负载的执行。当负载需要等待某个元素(如命令行)加载完成时,这非常有用。在刚开始时,当新的USB设备连接到目标电脑时,使用延迟尤其重要。最初,电脑必须完成一系列操作后才能开始接受输入命令。对于HID设备而言,设置时间非常短。大多数情况下,只需几分之一秒,因为驱动程序是内置的。但在某些情况下,较慢的PC可能需要更长时间才能识别pico-ducky。一般建议根据你的目标调整延迟时间。

数据窃取

数据窃取是指未经授权将数据从电脑/设备中转移出去。一旦数据被收集,攻击者可以将其打包,通过加密或压缩等方式避免在通过网络发送数据时被检测到。两种最常见的数据窃取方式是:

  • 通过网络介质窃取。
    • 这种方法用于Windows漏洞利用。完整的负载可以在此处查看这里。

  • 通过物理介质窃取。
    • 这种方法用于Linux漏洞利用。完整的负载可以在此处查看这里。

Windows漏洞利用

要使用Windows负载(payload1.dd),你无需在引脚之间连接杜邦线。

通过电子邮件发送被盗数据

一旦密码被导出到.txt文件,负载将使用Yahoo SMTP将数据发送到指定的电子邮件。有关更详细的说明,请访问以下链接。此外,负载模板需要更新你的SMTP信息,即需要更新RECEIVER_EMAIL、SENDER_EMAIL以及你的电子邮件PASSWORD。此外,你也可以更新邮件的正文和主题。

https://github.com/AleksaMCode/WiFi-password-stealer/blob/25cf7c56a7df4a9811b4d3eab8d6e6dad4282055/payload/payload_windows.template.dd#L31

[!NOTE]

  • 通过电子邮件发送数据后,.txt文件会被删除。

  • 你也可以使用其他邮件提供商的SMTP,但需要注意在负载中写入正确的SMTP服务器和端口号。

  • 请注意,某些网络可能会在防火墙中阻止未知SMTP的使用。

Linux漏洞利用

要使用Linux负载(payload2.dd),你需要在GND和GPIO5之间连接一根杜邦线,以符合RPi Pico上code.py中的代码。关于如何在RPi Pico上设置多个负载的更多信息,请访问此链接。

Linux Mint上的漏洞利用

图1:Linux上的漏洞利用

将被盗数据存储到U盘

一旦密码从电脑中导出,数据将保存到指定的U盘中。为了使此负载正常工作,需要更新U盘的正确名称,即在两个位置将USBSTICK替换为你的U盘名称。

https://github.com/AleksaMCode/WiFi-password-stealer/blob/25cf7c56a7df4a9811b4d3eab8d6e6dad4282055/payload/payload_linux.template.dd#L3

https://github.com/AleksaMCode/WiFi-password-stealer/blob/25cf7c56a7df4a9811b4d3eab8d6e6dad4282055/payload/payload_linux.template.dd#L11

此外,你还需要在负载中更新Linux的PASSWORD,共有三处。如上所述,要使此漏洞利用成功,你需要知道受害者Linux机器的密码,这降低了攻击的可行性。

https://github.com/AleksaMCode/WiFi-password-stealer/blob/a90ffb208e6a09d1b0ae44d1afe81d82248ba3fe/payload/payload_linux.template.dd#L7

https://github.com/AleksaMCode/WiFi-password-stealer/blob/a90ffb208e6a09d1b0ae44d1afe81d82248ba3fe/payload/payload_linux.template.dd#L9

Bash脚本

要运行wifi_passwords_print.sh脚本,你需要用正确的U盘名称更新该脚本,之后可以在终端中输入以下命令:

root@kitploit:~
echo PASSWORD | sudo -S sh wifi_passwords_print.sh USBSTICK

其中PASSWORD是你的账户密码,USBSTICK是你的USB设备名称。

负载快速概览

NetworkManager基于连接配置文件的概念,并使用插件来读写数据。它采用.ini风格的keyfile格式并存储网络配置配置文件。keyfile是一个支持NetworkManager所有连接类型和功能的插件。这些文件位于/etc/NetworkManager/system-connections/。基于keyfile格式,负载使用grep命令配合正则表达式来提取感兴趣的数据。对于文件过滤,使用了修改过的正向预查断言((?<=keyword))。正向预查断言会在字符串的特定位置进行匹配,即紧跟在keyword之后的位置,而不将该文本本身作为匹配的一部分,而正则表达式(?<=keyword).*将匹配keyword之后的任何文本。这使得负载能够匹配SSID和psk(预共享密钥)关键字之后的值。

关于NetworkManager的更多信息,这里有一些有用的链接:

  • 手动创建NetworkManager keyfile格式的配置文件
  • keyfile设置插件描述

窃取数据的格式化

以下是窃取并格式化后的受害者机器数据示例,保存在.txt文件中。

https://github.com/AleksaMCode/WiFi-password-stealer/blob/f5b3b11328764eb07d765a210fbf25db3a828455/resources/wifi_pass.txt#L1-L5

USB大容量存储设备问题

Rubber Ducky相对于RPi Pico的优势之一在于,它插入后不会显示为USB大容量存储设备。电脑只会将其识别为USB键盘。这不是RPi Pico的默认行为。如果你想防止RPi Pico插入时显示为USB大容量存储设备,需要在引脚18(GND)和引脚20(GPIO15)之间连接一根杜邦线。更多详情请访问此链接。

💡 提示:

  • 在连接引脚之前,请先将负载上传到RPi Pico。
  • 不要焊接引脚,因为你很可能在某个时候需要更改/更新负载。

负载编写器

创建有效的负载文件时,你可以使用writer.py脚本,或者手动修改模板文件。要成功运行该脚本,除了脚本文件名外,还需要传入操作系统名称(windows或linux)以及负载文件名称(例如payload1.dd)。以下是如何运行writer脚本创建Windows负载的示例。

root@kitploit:~
python3 writer.py windows payload1.dd

Bash Bunny攻击

只需稍作修改,之前使用的脚本也可以适配到Bash Bunny上运行。Bash Bunny通过模拟受信任的USB设备来工作[1]。对于本项目,我们将使用以下命令将其配置为模拟闪存存储设备[1, 2]:

root@kitploit:~
ATTACKMODE HID STORAGE

使用DuckyScript的ATTACKMODE命令,我们可以定义Bash Bunny应模拟的设备类型[1]。每种攻击模式都使用唯一的USB供应商ID(VID)和产品ID(PID)向系统注册[1]。也可以将多种攻击模式组合在一起。

插入电脑的Bash Bunny

图2:Bash Bunny Mark I插入电脑

Bash Bunny支持原始的DuckyScript命令,因此我可以重用Rubber Ducky部分的脚本。要内联使用这些命令,我们需要在它们前面加上QUACK命令[1]。例如,我们不再写WINDOWS r,而是写Q WINDOWS r。

要将负载加载到Bash Bunny上,设备必须设置为arming模式(开关位置3——最靠近USB插头的那一个)[1]。连接后,将payload.txt和exfil.txt复制到payloads\switch1。负载文件必须命名为payload.txt[1,2],而负载引用的任何辅助文件可以自由命名。

作为参考,Bash Bunny的大容量存储目录结构如下[2]:

root@kitploit:~
BashBunny/
├── loot/
│   └── (从负载中窃取的数据将保存在这里)
└── payloads/
    ├── library/
    │   └── (可重用脚本或模块)
    ├── switch1/
    │   ├── payload.txt
    │   └── (可选文件,例如exfil.txt,脚本等)
    └── switch2/
        ├── payload.txt
        └── (可选文件)

图3:Bash Bunny大容量存储目录结构

脚本执行完毕后,结果将保存在loot\wifi_pass.txt中。如果目标电脑没有保存任何WiFi密码,该文件将为空。

[!NOTE]

由于Bash Bunny攻击依赖于PowerShell脚本(exfil.txt),因此它只能在Windows系统上使用。要在Linux上使用类似方法,你需要修改负载,将PowerShell脚本替换为上面Linux部分提到的Bash脚本。

局限性与缺点

  • 此pico-ducky目前仅适用于Windows操作系统。

  • 此攻击需要物理接触已解锁的设备才能成功部署。

  • Linux漏洞利用成功的可能性远低于Windows,因为要成功,你不仅需要物理接触已解锁的设备,还需要知道Linux机器的管理员密码。

  • 机器的防火墙或网络防火墙可能会阻止通过网络介质发送被盗数据。

  • 由于用于部署攻击的不同电脑速度各异,负载延迟可能不适当。

  • pico-ducky设备并不隐蔽,实际上恰恰相反,它非常笨重,尤其是当你焊接引脚时。

  • 此外,pico-ducky设备在运行相同脚本时明显比Rubber Ducky慢。

  • 如果Caps Lock处于开启状态,部分负载代码将无法执行,导致漏洞利用失败。

  • 如果电脑设置为非英语环境,此漏洞利用将不会成功。

  • 目前,pico-ducky不支持DuckyScript 3.0,只能使用DuckyScript 1.0。如果你需要3.0版本,则必须使用Rubber Ducky。对于此漏洞利用,3.0版本不是必需的!

参考

  1. Hak5的Bash Bunny文档
  2. Bash Bunny基础Wiki
下载工具