maruf009sultan/FLUCKY

GitHub: maruf009sultan/FLUCKY

基于ESP32的无线蓝牙HID安全测试平台,突破传统USB HID工具的物理连接限制,支持无线按键注入、心理操纵测试与LOLBAS集成。

Stars: 2 | Forks: 0

# 🦆 FLUCKY ### 高级蓝牙 HID 安全研究平台 Version Platform License Purpose **一款专业级无线安全测试工具,用于授权红队、安全意识培训和学术研究** ### ⚠️ 关键免责声明 - 继续操作前请务必阅读
## 📚 目录 | 部分 | 章节 | 描述 | |------|---------|-------------| | **0** | [🧭 入门指南](#part-0-getting-started---the-creators-manifesto--ethical-foundation) | 创作者宣言与道德基础 | | | [🎯 我为何构建 FLUCKY](#-why-i-built-flucky---the-real-story) | 项目背后的真实故事 | | | [⚖️ 道德使用政策](#️-strict-ethical-usage-policy) | 严格的道德使用政策 | | | [🎓 教育重点](#-educational--awareness-focus) | 教育与意识重点 | | | [👨‍💻 关于创作者](#-about-the-creator) | 关于创作者 | | | [🤝 如何支持](#-how-to-support-this-project) | 如何支持本项目 | | | [🔍 重要免责声明](#-important-disclaimer) | AI 辅助文档说明 | | | [🚀 快速开始](#-getting-started-the-right-way) | 正确的入门方式 | | **I** | [⚙️ 核心平台概述](#part-1-core-command-system) | HID 攻击的革命 | | | [🚀 快速入门指南](#-quick-start-guide) | 快速入门指南 | | | [🎮 核心命令系统](#-core-command-system) | 命令结构与基本操作 | | **II** | [🕶️ 隐秘行动](#part-2-stealth-encryption--advanced-operations) | 隐秘、加密与高级操作 | | | [🔐 加密](#-encryption--security) | 加密与安全 | | | [🎭 混淆](#-obfuscation--evasion) | 混淆与规避 | | | [⏰ 定时与调度](#-timing--scheduling) | 定时与调度 | | | [🔄 高级 Payload 管理](#-advanced-payload-management) | 高级 Payload 管理 | | | [🎪 混乱模式](#-chaos-mode--behavioral-randomization) | 混乱模式与行为随机化 | | | [🔧 按钮管理](#-button-management) | 按钮管理 | | **III** | [🏴‍☠️ LOLBAS 集成](#part-3-lolbas-psychological-warfare--real-world-operations) | LOLBAS 集成 | | | [🧠 心理操纵](#-gaslighting---psychological-operations) | 心理战行动 | | | [🎯 现实场景](#-real-world-operational-scenarios) | 现实世界中的行动场景 | | | [🔧 高级 OpSec](#-advanced-operational-security) | 高级行动安全 | | | [🎯 最佳实践](#-best-practices--operational-guidelines) | 最佳实践与操作指南 | | **IV** | [📋 命令参考](#part-4-essential-reference-troubleshooting--community) | 完整命令参考表 | | | [🚨 故障排除](#-troubleshooting--error-guide) | 故障排除与错误指南 | | | [🔧 高级配置](#-advanced-configuration-guide) | 高级配置指南 | | | [🎯 高级模式](#-advanced-usage-patterns) | 高级使用模式 | | | [🔒 安全最佳实践](#-security-best-practices-1) | 安全最佳实践 | | | [🤝 社区](#-community--contribution) | 社区与贡献 | | | [📚 资源](#-learning-resources) | 学习资源 | | | [🎊 结语](#-final-words) | 结语 |
# 第 0 部分:入门指南 - 创作者宣言与道德基础
### 为教育而构建,为意识而设计,为责任而受限 *“巨大的权力需要更大的责任。这就是旅程开始的地方。”*
## 🎯 我为何构建 FLUCKY - 真实的故事 ### 市场空白 多年来,我观察并注意到现有的 HID 安全测试工具存在一些显著的局限性: **安全测试中缺失的心理要素:** 传统工具纯粹专注于技术性的按键注入,而没有考虑到安全中人的因素。它们可以执行命令,但无法测试用户是否会注意到细微的系统异常,是否会质疑意外行为,或者安全意识培训是否真正有效。安全不仅仅是技术——它是人、流程和技术的协同工作。当工具只解决技术组件时,它们在全面的安全评估能力上留下了巨大的空白。 **现有工具的操作安全性较差:** 许多现有工具具有明显的指纹特征,使其易于被检测。它们会创建明显的日志,有可见的入侵指标,并留下任何合格的安全团队都能识别的痕迹。在现实世界的红队行动中,隐秘性至关重要。如果你的测试工具立即被检测到,你就不是在测试组织的安全性——你只是在确认他们能发现明显的威胁。真正的操作安全需要多层保障:无串口输出、无 LED 指示灯、加密的 payload 存储,以及模拟合法设备活动的行为模式。 **用于意识培训的现实测试能力有限:** 安全意识培训通常依赖于理论场景或模拟的网络钓鱼邮件。但是,测试用户是否会注意到他们的键盘开始表现怪异呢?测试他们是否会在窗口莫名其妙地最小化或 Caps Lock 键似乎有自己的想法时进行报告呢?传统的 HID 工具无法提供这种微妙、现实的安全意识测试。它们是为利用而设计的,而不是为教育。 **无线局限性导致需要物理访问:** 我遇到的每一个 HID 工具都需要物理 USB 连接。这意味着你必须将设备物理插入目标计算机,这极大地增加了被发现的风险并限制了测试场景。在具有严格物理安全控制的现代环境中,这种方法通常是不切实际或不可能的。无线方法为安全评估开辟了全新的可能性,同时保持了进行现实测试的能力。 我不想只是制作另一个 Rubber Ducky 克隆品。我想创造一些能够真正推动该领域发展并帮助安全专业人员更好地完成工作的东西。我想要一个理解现代安全测试不仅仅是闯入的工具——它是关于理解系统和人员如何应对微妙、复杂威胁的。 ### 愿景 FLUCKY 代表了 HID 攻击工具在 2025 年及以后应有的样子: **📡 无线且灵活:** 从有线到无线的转变不仅仅是为了方便——这是安全评估方式的一个根本性转变。通过低功耗蓝牙 (BLE) 进行的无线操作意味着可以从远处进行评估,而无需物理连接设备的可疑行为。这开启了以前不可能的测试场景,例如在具有严格物理控制的空间中评估安全性,测试用户是否会注意到异常的蓝牙设备,或者在不冒物理证据留在目标位置风险的情况下进行评估。 **🧠 心理复杂性:** 安全不仅仅是技术性的——它是心理性的。FLUCKY 的心理操纵能力代表了安全意识测试的新前沿。通过创建微妙、现实的系统异常,安全团队可以评估用户是否真正内化了他们的培训。他们是否注意到 Caps Lock 键随机切换?他们是否报告窗口神秘失去焦点?这些心理要素将 FLUCKY 从简单的按键注入工具转变为全面的安全意识平台。 **🕶️ 操作安全:** FLUCKY 的各个方面都考虑到了操作安全。多层隐身确保设备可以在不被发现的情况下运行。加密的 payload 存储意味着即使设备被捕获,脚本仍然受到保护。自毁机制确保敏感 payload 不会被意外或故意重用。这些特性使 FLUCKY 适用于对操作安全要求极高的专业安全评估。 **🔄 适应现代防御:** 现代端点检测与响应 (EDR) 解决方案、行为分析工具和用户意识计划使传统的 HID 攻击越来越容易被检测到。FLUCKY 通过改变执行模式的变形 payload、模仿人类打字行为的混淆技术以及使用内置系统工具而非投放外部文件的 LOLBAS 集成来解决这些挑战。这种适应性确保 FLUCKY 在防御技术不断发展的同时保持相关性。 **🎓 教育与意识聚焦:** 也许最重要的是,FLUCKY 从一开始就是为教育而设计的。每一个功能、每一个能力都有文档记录和解释。目标不仅仅是提供一个工具——而是提升对 HID 安全的理解,帮助组织改进其意识培训,并为更广泛的安全社区知识库做出贡献。这种教育重点体现在详尽的文档、道德指南和对负责任使用的强调上。 ### 🔒 重要分发声明 #### 为何不提供源代码 出于以下几个重要原因,我特意只分发编译好的 .bin 文件: **负责任的披露原则:** 提供完整的源代码可能会使缺乏道德基础或未经授权进行安全测试的个人滥用。虽然我相信开源安全研究的价值,但我也相信负责任的披露和受控分发。编译后的二进制文件提供了合法安全研究所需的所有功能,同时增加了一层防止随意滥用的保护。 **保护安全社区:** 当研究人员、从业者和组织之间存在信任时,安全社区就会繁荣。发布容易被修改用于恶意目的的源代码会破坏这种信任,并可能导致对安全研究工具实施更严格的法规。通过控制分发,我可以帮助确保 FLUCKY 仍然是合法安全专业人员的工具,而不是恶意行为者的武器。 **鼓励负责任的参与:** 当研究人员和从业者需要参与项目时——无论是报告错误、请求功能还是讨论实施细节——鼓励他们通过适当的渠道进行。这创造了一个对话,帮助我了解合法的用例,改进工具以用于道德目的,并在安全社区内建立关系。 #### 致开发者与爱好者 我理解对源代码的渴望。虽然完整源代码未公开: **功能请求是受欢迎的,并会被考虑:** 如果你有有益于合法安全研究或意识培训的功能想法,我非常乐意听取。FLUCKY 的许多当前功能来自社区反馈,我致力于继续这种协作方式。功能请求应包括对用例的清晰解释,它如何有益于安全研究或培训,以及为什么现有能力不能满足需求。 **错误报告会被认真对待并及时修复:** 质量很重要,尤其是在安全工具中。如果你遇到错误、意外行为或文档错误,请通过 GitHub issues 报告。包括详细的复现步骤、你的硬件配置以及你期望发生什么与实际发生了什么。错误报告有助于让 FLUCKY 对安全社区中的每个人变得更好。 **鼓励关于实现的教育性咨询:** 如果你是学生、研究人员或教育工作者,对 FLUCKY 的工作原理或其背后的概念有疑问,我很乐意参与。了解 HID 安全、BLE 协议和安全测试方法论对下一代安全专业人员很有价值。教育性咨询应来自机构电子邮件地址,并包括有关你的研究或教育背景的信息。 ## ⚖️ 严格的道德使用政策 ### 法律与道德边界 本节不是可选阅读。它不是建议。它是使用 FLUCKY 的基本要求。 #### 🚫 绝对禁止 - 无一例外 以下用途在任何情况下都严格禁止,无论意图、理由或感知的授权如何: **未经授权的系统访问:** 测试任何你不拥有或没有明确书面授权测试的系统是绝对禁止的。这包括属于雇主的系统(除非你有特定的测试授权)、教育机构的系统(除非是经批准的课程或研究项目的一部分)、朋友或家人的系统(即使有口头许可)、公共系统、政府系统以及任何其他未记录和核实适当授权的系统。 **恶意活动:** 任何旨在造成伤害、窃取数据、破坏服务或以其他方式对个人或组织产生负面影响的活动都是严格禁止的。这包括但不限于:安装恶意软件或勒索软件、渗出敏感数据、造成拒绝服务、损坏系统或数据,以及为未来访问创建后门。 **未经明确许可的使用:** 即使你认为系统有漏洞或测试会使所有者受益,未经明确、书面许可使用 FLUCKY 也是被禁止的。良好的意愿并不授权未经授权的访问。如果你通过其他方式发现漏洞,请遵循负责任的披露程序,而不是使用 FLUCKY 进行测试。 **任何非法活动:** FLUCKY 绝不得用于违反任何法律、法规或组织政策。这包括地方、州、联邦和国际法律。用户有责任了解并遵守其司法管辖区内的所有适用法律要求。 **骚扰或恐吓:** 使用 FLUCKY 骚扰、恐吓、威胁或造成任何个人痛苦是绝对禁止的。这包括直接骚扰(针对特定个人)和间接骚扰(制造旨在造成痛苦的条件)。 #### ✅ 批准的用途 - 需适当授权 以下用途在具备所有必要授权和保障措施的情况下是批准的: **参与者知情的安全意识培训:** 当参与者知道他们正在被测试时,FLUCKY 是一个极好的安全意识培训工具。这包括通知员工将进行安全演习的企业培训计划、学生了解学习目标的教育环境,以及与会者同意参与的专业发展研讨会。 **有书面授权的红队行动:** 具有适当文档的专业红队行动是 FLUCKY 的适当用途。这包括具有定义范围的渗透测试合同、具有组织授权的红队演习,以及具有系统所有者批准文档的安全评估。 **你拥有和控制的个人系统:** 在你个人拥有和控制的系统上进行测试是可以接受的。这包括你的个人计算机、家庭实验室环境和你为学习目的构建的测试基础设施。请注意,即使分配给你,雇主拥有的系统通常也需要组织批准才能进行安全测试。 **有适当监督的教育环境:** 当有适当的监督时,学术机构可以使用 FLUCKY 进行网络安全教育。这包括大学网络安全课程、专业认证培训和教育研讨会。学生应由合格的讲师监督,所有活动应在隔离的实验室环境中进行。 **有道德监督和批准的研究:** 当有适当的道德监督时,鼓励使用 FLUCKY 进行学术和行业研究。这包括获得机构审查委员会 (IRB) 批准的大学研究、具有适当公司监督的行业研究,以及通过同行评审场所发表的研究。 ### 滥用的后果 了解滥用的后果对于负责任的使用至关重要: #### 法律 **刑事起诉:** 未经授权访问计算机系统在几乎每个司法管辖区都是犯罪。在美国,《计算机欺诈与滥用法》(CFAA) 规定了严厉的处罚,包括监禁。其他国家也有类似的法律,国际行动可能面临多个司法管辖区的起诉。认为“白帽”活动受保护的观点在法律上通常是不正确的——如果没有适当的授权,任何访问都可能是犯罪。 **民事责任:** 除了刑事处罚外,未经授权的访问还可能导致民事诉讼。遭受未经授权测试损害的组织和个人可以起诉要求赔偿。这些损害可能包括直接成本(系统补救、生产力损失)、间接成本(声誉损害、客户流失)和惩罚性赔偿。民事责任可能会困扰你多年,并导致严重的经济困难。 **职业后果:** 计算机犯罪的犯罪记录可能会永久损害你在网络安全方面的职业生涯。许多雇主进行背景调查,计算机犯罪定罪可能会取消从事需要安全许可、信任职位或任何访问敏感系统职位的资格。此外,专业认证(CISSP、CEH、OSCP 等)有道德要求,不当行为可能导致撤销。 **证书丢失:** 专业认证是证明专业知识和对道德实践承诺的宝贵证书。大多数认证机构都有道德准则,要求证书持有者合法和道德地行事。滥用 FLUCKY 等工具可能导致这些认证被永久撤销,从而失去你努力获得的证书。 #### 道德后果 **信任侵蚀:** 安全社区建立在信任的基础上。当个人滥用工具或进行未经授权的测试时,它会侵蚀这种信任,使组织对合法的安全研究人员更加怀疑。这通过使道德研究人员难以进行重要工作而损害整个社区。 **对个人和组织的伤害:** 即使是“无害”的测试也可能产生意想不到的后果。系统可能崩溃,数据可能损坏,操作可能中断。看似简单的测试可能会对受影响的个人和组织产生级联的重大现实影响。 **对合法研究的 setback:** 每一次高调的安全工具滥用案例都会导致对限制此类工具的呼吁。滥用 FLUCKY 可能会导致监管反应,使合法研究人员更难获得改善安全所需的工具。 **个人声誉毁灭:** 在社交媒体和专业网络时代,消息传播很快。与不道德的安全实践相关联可能会永久损害你的职业声誉。安全社区相对较小,声誉对职业发展和专业机会至关重要。 ### 你的责任 通过使用 FLUCKY,你同意并接受以下责任: **仅用于合法、授权的安全测试:** FLUCKY 的每一次使用都必须是为了合法目的并有适当授权。在每次使用前,问自己:我有书面授权吗?这在批准的范围内吗?如果被质疑,我准备好解释我的行为吗? **在任何测试前获得书面许可:** 口头许可是不够的。书面许可应包括测试范围、要测试的系统、测试时间表和授权方的联系信息。将此文档保存在档案中并易于访问。 **遵守所有适用法律和法规:** 法律因司法管辖区而异,你有责任了解并遵守所有适用要求。这不仅包括计算机犯罪法,还包括隐私法规、特定行业的要求和组织政策。 **对你的行为承担全部责任:** 你独自对使用 FLUCKY 的后果负责。FLUCKY 的创建者、贡献者和分发者不对滥用或其后果承担任何责任。如果你不愿意承担此责任,请不要使用该工具。 **负责任地报告发现的任何漏洞:** 如果你在授权测试期间发现漏洞,请遵循负责任的披露做法。这意味着与系统所有者协调,提供足够的补救时间,并且在漏洞得到解决之前不公开披露细节。 ## 🎓 教育与意识聚焦 ### 为什么这个工具对安全很重要 FLUCKY 旨在解决当今组织面临的真正安全挑战: #### 对于防御者 **测试无线 HID 攻击的检测能力:** 现代组织在端点检测方面投入巨资,但无线 HID 攻击代表了一个相对较新的攻击面。FLUCKY 使防御者能够测试其检测工具是否可以识别异常的蓝牙设备行为、意外的按键模式和异常的输入活动。这种测试有助于在恶意行为者利用检测覆盖范围中的空白之前识别它们。 **培训用户识别微妙的社会工程:** 传统的安全意识培训通常侧重于网络钓鱼邮件等明显威胁。FLUCKY 支持更复杂的培训,测试用户是否注意到细微的系统异常——意外的窗口焦点变化、无法解释的键盘行为、神秘的应用程序启动。这种类型的培训使用户为应对现实世界场景中更可能遇到的微妙、复杂的攻击做好准备。 **针对现代技术验证安全控制:** 安全控制只有在能够检测或阻止实际攻击技术时才有效。FLUCKY 的 LOLBAS 集成、混淆能力和行为模拟代表了现代攻击方法论。针对这些技术进行测试有助于组织验证其控制对当前威胁有效,而不仅仅是针对传统攻击模式。 **了解蓝牙攻击面:** 蓝牙安全在组织安全计划中经常被忽视。FLUCKY 帮助防御者了解与蓝牙外设相关的风险、恶意设备模拟的可能性以及蓝牙设备管理策略的重要性。这种了解对于全面的安全计划至关重要。 #### 对于红队 **进行更现实的安全评估:** 真正的攻击者并不总是使用最明显的技术。他们使用融入正常活动的复杂方法、利用信任关系并利用合法工具。FLUCKY 使红队能够进行更准确地模拟高级威胁行为者的评估,从而对组织防御进行更现实的评估。 **测试物理和无线安全控制:** 物理安全和无线安全通常分开测试,但复杂的攻击可能结合两者。FLUCKY 的无线操作结合其距离要求,可以测试物理安全(攻击者能否靠得足够近?)和无线安全(是否检测并阻止未经授权的蓝牙设备?)。 **演示现实世界的攻击场景:** 当包括实际攻击技术的演示时,高管简报和董事会演示更加有效。FLUCKY 使红队能够在受控环境中安全地演示无线 HID 攻击,帮助领导层了解风险并支持安全投资。 **提高安全意识培训质量:** 红队通常为安全意识培训做出贡献,FLUCKY 为此提供了新功能。心理操纵功能、混乱模式和微妙的攻击技术使培训超越明显威胁,以测试用户是否真正内化了安全原则。 ### 学习目标 如果使用得当,FLUCKY 有助于教授以下概念和技能: **蓝牙安全原则:** 了解蓝牙如何工作、低功耗蓝牙的安全属性、与蓝牙外设相关的风险以及蓝牙设备管理的重要性。学生了解设备配对、身份验证机制和设备模拟的可能性。 **社会工程意识:** 认识到技术攻击通常具有心理成分,了解微妙的操纵如何比明显的威胁更有效,并对看似异常或意外的系统行为培养健康的怀疑态度。 **物理安全重要性:** 了解物理距离与安全之间的关系,认识到无线技术产生了新的物理安全要求,并体会控制谁可以接近敏感系统的必要性。 **事件响应程序:** 学习如何识别潜在的安全事件,了解要收集和报告的信息,练习安全事件期间的沟通,并开发响应程序的肌肉记忆。 **用户行为监控:** 了解基线行为是什么样的,识别可能表明入侵的异常,并平衡安全监控与隐私考虑。 ## 👨‍💻 关于创作者 ### 我是谁 James - 拥有多年经验的安全专业人员: **红队行动和渗透测试:** 我花了数年时间为各行各业的组织进行授权安全评估。这段经验让我深入了解了复杂攻击者使用的技术、防御者面临的挑战以及现有安全测试工具的空白。FLUCKY 的每一个功能都是根据现实世界的操作要求设计的。 **安全工具开发:** 我开发了多种安全工具,并为开源安全项目做出了贡献。这段经验教会了我高质量文档、用户体验设计和负责任的工具分发的重要性。好的工具应该让合法用户易于使用,同时纳入防止滥用的保障措施。 **意识培训和教育:** 我为各种规模的组织开发并提供了安全意识培训。这段经验凸显了传统培训方法的局限性,并启发了 FLUCKY 的许多意识测试功能。有效的培训需要测试实际行为的现实场景,而不仅仅是知识保留。 **防御性安全控制:** 我的背景包括防御安全工作,使我对安全等式的双方都有所了解。这种双重视角影响了 FLUCKY 的设计——它对于复杂的红队行动足够有效,但也为防御者提供了有价值的测试能力。 ### 我的动力 我构建 FLUCKY 是因为: **我厌倦了在现代环境中使用过时的工具:** 许多 HID 安全工具是为不同的计算时代设计的。现代操作系统、端点检测和用户意识计划使传统技术效果降低。FLUCKY 用现代解决方案解决这些现代挑战。 **我看到了无线 HID 攻击能力的空白:** 无线技术改变了我们与计算机交互的方式,但安全测试工具却没有跟上步伐。FLUCKY 通过提供反映现代威胁形势的无线 HID 能力填补了这一空白。 **我想提高安全意识培训的质量:** 传统的意识培训往往无法改变行为。FLUCKY 通过创建测试用户是否实际应用所学内容的现实场景,而不是仅仅通过多项选择题测试,来实现更有效的培训。 **我相信更好的工具能造就更好的安全专业人员:** 安全专业人员的能力取决于他们的工具。通过提供更复杂、文档更完善的工具,我希望提高整个行业安全工作的质量。 ### 我的承诺 #### 对社区 **继续改进和维护 FLUCKY:** FLUCKY 不是一个一次性项目——它是一个持续的承诺。我将继续根据反馈改进工具,在发现错误时进行修复,并添加有益于合法用户的功能。 **响应合法的错误报告和问题:** 质量很重要,我认真对待错误报告。我将及时响应合法的问题,并努力快速解决它们。 **考虑严肃的功能请求:** 我愿意添加新功能,特别是那些有益于安全教育、意识培训或授权安全评估的功能。功能请求应包括明确的用例,并解释该功能如何有益于合法的安全工作。 **提供教育资源和指导:** 除了工具本身,我致力于提供有助于用户了解 HID 安全、BLE 协议和道德安全测试实践的教育内容。 #### 对道德安全 **促进负责任的披露和测试:** 我将继续倡导负责任的安全研究和测试方法。这包括支持使合法研究成为可能同时防止滥用的政策。 **支持安全教育和意识:** 教育对于提高整个行业的安全性至关重要。我将继续开发资源,支持教育倡议,并为更广泛的安全社区知识库做出贡献。 **为使系统更安全做出贡献:** 像 FLUCKY 这样的安全工具的最终目标是使系统更安全。我致力于确保 FLUCKY 用于改善安全,而不是造成伤害。 **保持高道德标准:** 道德在安全工作中不是可选的。我将在自己的工作中保持高道德标准,并期望 FLUCKY 的用户也这样做。 ## 🤝 如何支持本项目 ### 你可以立即采取的行动 #### ⭐ Star 本仓库 为仓库加星是支持项目的最有价值的方式之一: - **表达对工作的感谢** - Stars 是一种简单但有意义的方式,表达对开发和维护 FLUCKY 所投入的时间和精力的“感谢” - **帮助他人发现该工具** - GitHub 的算法使用 stars 来展示有趣的项目,所以更多的 stars 意味着更高的知名度 - **激励持续开发** - 知道人们觉得该工具有价值会鼓励继续投资改进 - **建立社区信誉** - 一个拥有众多 stars 的仓库表明该工具被社区使用和信任 #### 🐛 报告问题 发现了错误?文档错误?某些东西没有按预期工作?请报告它! - **打开包含详细信息的 GitHub issues** - 包括你期望发生什么、实际发生了什么以及重现步骤 - **包括你的硬件和环境** - 你使用的是什么 ESP32 变体?目标是什么操作系统?固件的什么版本? - **先检查现有问题** - 你的问题可能已经被报告或解决 - **保持耐心和响应** - 如果我需要更多信息,请及时提供 #### 💡 提出改进建议 有让 FLUCKY 变得更好的想法吗? - **针对合法用例的新功能** - 解释用例以及为什么现有能力不能满足它 - **文档改进** - 发现令人困惑或缺失的内容?让我知道 - **教育内容想法** - 什么能帮助你更多地了解 HID 安全? - **集成建议** - FLUCKY 如何更好地与其他工具或工作流程配合? #### 📢 负责任地分享 帮助他人发现 FLUCKY,同时保持道德标准: - **与其他安全专业人员** - 在具有适当道德框架的专业背景下分享 - **在教育背景下** - 用于课程、研讨会和培训计划 - **在安全会议和会议上** - 展示你的用例和发现 - **始终带有道德准则** - 切勿在没有强调仅限授权使用的重要性的情况下分享 ### 什么使这个项目可持续 你的支持有助于: **证明花在维护和更新上的时间是合理的:** 开发和维护需要大量的时间投入。社区支持表明这段时间是有价值的,并且花费得当。 **识别需要改进的领域:** 用户反馈对于了解什么有效、什么无效以及哪些功能最有价值至关重要。 **建立道德用户社区:** 一个强大的道德用户社区可以创建支持网络、分享最佳实践并倡导负责任的工具使用。 **为每个人创造更好的安全工具:** 社区参与推动创新。最好的想法通常来自具有不同观点和用例的用户。 ## 🔍 重要免责声明 ### AI 辅助文档说明 本 README 是在 AI 协助下创建的。请注意以下事项: **在生产环境中使用前验证所有命令:** 虽然已尽一切努力确保准确性,但文档可能包含错误。在生产或操作环境中使用任何命令之前,请先在隔离的实验室环境中进行彻底测试。 **首先在实验室环境中彻底测试:** 切勿在未先在受控测试环境中验证其行为的情况下,在生产或敏感系统上执行命令。在一个上下文中有效的命令在另一个上下文中可能会有不同的表现。 **报告任何差异:** 如果你发现文档与实际工具行为之间存在差异,请报告。你的报告有助于为每个人改进文档**了解虽然我已经审查了所有内容,但可能存在错误:** AI 辅助文档是一个有用的工具,但它不是绝对正确的。我已经审查了内容,但错误、遗漏或歧义可能仍然存在。请运用你的判断力并验证重要信息。 ### 如果你发现问题 #### 在文档中: **打开一个包含具体问题的 GitHub Issue:** 提供你发现问题的部分、文档当前所说的内容以及应该说的内容。包括有助于他人理解问题的背景。 **建议更正的信息:** 如果你知道正确的信息应该是什么,请将其包含在你的 issue 中。这使得快速实施修复变得更容易。 **为每个人改进它:** 文档改进有益于整个社区。不要犹豫报告即使是小问题——小的修复可以防止大问题。 #### 在工具中: **记录确切的重现步骤:** 包括重现问题所需的每一步,从设备的新鲜状态开始。你执行了什么命令?按什么顺序?目标系统是什么? **记录你的硬件和环境:** 你使用的是什么 ESP32 变体?什么固件版本?目标是什么操作系统?还有哪些相关细节可能有助于诊断问题? **通过 GitHub Issues 报告并附上详细信息:** 使用 GitHub issue 跟踪器报告工具问题。这创建了一条其他人可以参考的记录,并允许跟踪问题解决情况。 ## 🚀 正确的入门方式 ### 你的第一步 **1. 阅读并理解这整份文档:** 不要跳过部分。该文档旨在全面了解 FLUCKY 的能力、正确使用和道德要求。一知半解会导致错误。 **2. 使用你拥有的系统建立实验室环境:** 在任何操作环境中使用 FLUCKY 之前,建立一个隔离的实验室环境,你可以在其中安全地进行实验。这应该包括你完全拥有的系统,与生产网络隔离,错误不会造成伤害。 **3. 在复杂操作之前测试基本功能:** 从简单开始。验证基本按键注入是否有效,蓝牙连接是否稳定,以及你是否了解命令结构。只有在掌握基础知识后才应转向高级功能。 **4. 逐步且负责任地发展你的技能:** 像任何复杂的工具一样,FLUCKY 需要练习才能有效使用。在道德范围内,始终在获得适当授权的情况下,逐步建立你的技能。 **5. 在任何测试前总是获得许可:** 这值得重复:在测试任何你个人不拥有的系统之前,总是获得书面许可。无一例外。没有借口。 ### 推荐的学习路径 #### 第 1 周:基础知识 - **硬件设置和刷写:** 学习如何正确将固件刷写到你的 ESP32 设备,验证刷写成功,并排除常见问题 - **基本按键命令:** 掌握基本的按键注入命令 (ENTER, STRING, 箭头键, 功能键) - **简单脚本创建:** 练习创建和执行组合多个命令的简单脚本 #### 第 2 周:中级知识 - **隐秘和加密功能:** 了解何时以及如何使用隐秘模式,如何配置加密,以及这些功能如何交互 - **定时和调度:** 学习使用延迟、抖动和调度来创建更现实的执行模式 - **按钮脚本管理:** 练习为不同场景配置按钮脚本并管理多个 payload #### 第 3 周:高级知识 - **LOLBAS 技术:** 了解“靠地生存”的哲学,学习常见的 LOLBAS 二进制文件及其用途,并练习将 LOLBAS 集成到 FLUCKY 脚本中 - **用于意识培训的心理操纵:** 了解心理操纵功能背后的心理学,学习为不同培训目标配置配置文件,并练习负责任的使用 - **操作安全实践:** 制定在整个评估生命周期中保持操作安全的习惯和程序 #### 第 4 周:精通 - **复杂的多阶段操作:** 计划并执行结合多种技术的复杂、多阶段评估 - **自定义功能开发:** 识别你能力中的空白,提出新功能,并可能为工具开发做出贡献 - **负责任地教导他人:** 与其他道德安全专业人员分享你的知识,始终强调授权和道德的重要性
# 🦆 FLUCKY - 高级蓝牙 HID 安全研究平台 BLE HID Stealth Mode Encryption Gaslighting ### 终极无线 HID 安全研究工具 - 无需手动配对 *“既然可以伪装成键盘,为什么要插线呢?”*
# 第 1 部分:核心命令系统
## 🚀 HID 攻击的革命 ### 为什么存在 FLUCKY - 必要性的故事 我创建 FLUCKY 是为了解决我在现有 HID 安全测试工具中观察到的几个关键问题: **需要物理访问 - 将设备插入目标系统:** 传统的 HID 工具需要物理 USB 连接,这极大地增加了被发现的风险并限制了测试场景。在具有严格物理安全控制的环境中,这种方法通常是不切实际或不可能的。需要物理接近目标系统会产生显眼的动作,可能会被人员观察到、被安全摄像机捕获或被物理安全控制检测到。FLUCKY 通过低功耗蓝牙无线操作消除了这一要求。 **有限的隐秘能力 - 明显的入侵指标:** 许多现有工具会制造其存在的明显迹象:操作期间闪烁的 LED 指示灯、记录每个动作的串口输出以及容易被具有安全意识的用户识别的行为模式。在真正的安全评估中,隐秘性至关重要。一个宣布其存在的工具不是在测试安全性——它是在测试是否检测到了明显威胁。FLUCKY 提供了多层隐秘性,使检测变得相当困难。 **没有心理要素 - 纯技术攻击没有心理博弈:** 安全不仅仅是技术性的。人为因素通常是安全结果中最重要的因素。传统的 HID 工具可以执行命令,但无法测试用户是否会注意到细微的异常,是否会质疑意外的行为,或者他们的意识培训是否真的改变了他们的行为。FLUCKY 的心理战能力解决了这一空白。 **过时的攻击技术 - 没有适应现代防御:** 现代端点检测与响应 (EDR) 解决方案、行为分析工具和用户意识计划使许多传统的 HID 攻击技术过时。五年前有效的工具今天可能会立即被检测到。FLUCKY 从一开始就设计用于有效对抗现代防御技术。 FLUCKY 改变了一切。这不仅仅是另一个 Rubber Ducky 克隆品——这是安全社区迫切需要的进化。 ### 根本突破:自动 BLE 连接 #### 传统 HID 攻击 - 旧方式: ``` # 步骤 1:物理接触 - 插入设备 # → 需要近距离接触,产生可见动作,存在被发现风险 # 步骤 2:祈祷目标没有注意到 # → 成功取决于用户的疏忽 # 步骤 3:执行基础 payload # → 仅限于简单的按键序列 # 步骤 4:祈祷不被抓住 # → 如果物理存在被发现,风险极高 ``` 传统方法具有根本的局限性。物理访问产生风险。明显的设备行为招致检测。简单的 payload 是可预测的。而且,如果你在操作过程中被发现,没有任何推诿的余地——你站在那里,手里拿着一个可疑的设备。 #### FLUCKY 的方法 - 新方式: ``` # 步骤 1:保持在蓝牙范围内(最远 10+ 米) # → 无需物理接触,可在安全距离外操作 # 步骤 2:自动显示为可用键盘 # → 利用受信任的 HID 设备类别 # 步骤 3:[目标设备连接以为是自己的设备] 或你在 10 秒内连接。 # → 连接看起来合法,不会引起怀疑 # 步骤 4:执行高级、变形 payloads # → 可规避检测的复杂技术 # 步骤 5:不留痕迹,造成最大影响 # → 干净的断开连接,加密脚本,自毁选项 ``` 这种方法改变了 HID 安全测试。你不再是物理接近目标(有风险),而是从远处操作(安全)。你不再是希望自己不被注意(被动),而是积极融入合法设备(主动)。你不再是简单、可检测的 payload(受限),而是执行复杂、自适应的攻击(强大)。而且,你不再是留下证据(粗心),而是在整个过程中保持操作安全(专业)。 ## 🎯 是什么让 FLUCKY 与众不同? ### 1. 🚀 自动蓝牙 LE 连接 | 功能 | 描述 | 好处 | |---------|-------------|---------| | **无需手动配对** | 显示为标准 HID 键盘 | 降低设置复杂性,提高可靠性 | | **零点击连接** | 目标只需从可用设备中选择 | 利用用户对键盘设备的信任 | | **持续存在** | 保持可用直到连接 | 实现灵活的操作时机 | | **自定义设备名称** | 伪装成合法外设 | 融入预期设备中 | **技术实施细节:** 低功耗蓝牙 HID 实现将 ESP32 呈现为标准人机接口设备。此类设备本质上是受信任的——预期键盘和鼠标会被发现和连接。通过出现在此类别中,FLUCKY 利用了用户与输入设备之间的信任关系。 设备名称完全可自定义,允许 FLUCKY 伪装成任何预期的键盘。常见的伪装包括“Logitech Keyboard”、“Dell Wireless Keyboard”、“Microsoft Bluetooth Keyboard”或组织特定的设备名称。这种命名灵活性允许 FLUCKY 融入任何目标环境的现有外设生态系统中。 一旦通电,FLUCKY 立即开始作为可用的 HID 设备进行广播。此广播持续到建立连接,提供了操作何时进行的灵活性。操作员可以打开设备电源并等待最佳时机,因为 FLUCKY 在需要时将准备就绪。 ### 2. 🕶️ 真正的隐秘行动 | 功能 | 描述 | 操作影响 | |---------|-------------|-------------------| | **完全输出抑制** | 无串口日志,无 LED 指示灯 | 设备对视觉检查不可见 | | **加密 payload 存储** | 如果设备被捕获,脚本仍然安全 | 即使被攻陷也能保持操作安全 | | **行为混淆** | 随机延迟和执行模式 | 击败基于定时的检测 | | **自毁机制** | 使用后自动擦除脚本 | 防止对 payload 的取证分析 | **隐秘层架构:** FLUCKY 在多个层面上实施隐秘: **视觉隐秘:** 当启用隐秘模式时,所有视觉指示器都会被抑制。通常在操作期间提供反馈的 LED 保持熄灭。记录每个动作的串口输出完全禁用。处于隐秘模式的设备不会给出其正在运行的外部迹象——它存在的唯一标志是被注入目标系统的按键。 **存储隐秘:** 存储在 FLUCKY 上的所有脚本都可以使用具有用户定义密钥的 XOR 加密进行加密。如果设备在操作期间或之后被捕获,设备的取证分析将仅揭示加密数据,而不是使用的实际 payload。这保护了操作细节,并防止被捕获的设备被逆向工程。 **行为隐秘:** FLUCKY 的混淆功能将随机性注入执行模式。抖动在命令之间添加随机延迟。打字混淆模拟人类打字行为。这些功能使 FLUCKY 的输出更难与合法用户输入区分开来,从而击败了可能检测自动按键注入的行为分析。 **操作隐秘:** 自毁机制确保敏感 payload 不会被意外或故意重用。当达到自毁计数时,所有脚本都会被擦除,不会留下设备配置做什么的痕迹。这对于存在设备捕获风险的操作至关重要。 ### 3. 🧠 心理战能力 | 功能 | 描述 | 培训价值 | |---------|-------------|----------------| | **心理操纵功能** | 让用户质疑现实 | 测试用户是否注意到细微异常 | | **混乱模式** | 不可预测、随机的脚本执行 | 创建现实的压力测试场景 | | **高级混淆** | 实时打字操纵 | 模拟人类行为以增加真实感 | | **焦点破坏** | 在关键时刻窃取注意力 | 测试用户对干扰的反应 | **心理战哲学:** 心理操纵系统代表了安全意识测试的新前沿。传统的培训教用户识别明显的威胁:可疑的电子邮件、不熟悉的网站、清晰的安全警告。但复杂的攻击者不使用明显的技术——他们使用飞越雷达的微妙操纵。 心理操纵功能允许安全培训师测试用户是否注意到并响应细微的系统异常: - **GASLIGHT_TYPO:** 模拟现实的打字错误,测试用户是否注意到出现了他们没有输入的文本 - **GASLIGHT_CAPS_TOGGLE:** 随机切换 Caps Lock,测试用户是否质疑意外的键盘状态变化 - **GASLIGHT_FOCUS_STEAL:** 切换活动窗口,测试用户是否注意到他们的工作环境意外改变 - **GASLIGHT_NOTIFICATION:** 触发通知面板,测试对意外系统事件的响应 这些微妙的干预措施创造了一个培训环境,用户学会关注小细节、质疑意外行为并报告异常而不是忽略它们。这是抵御复杂现实世界攻击的意识类型。 ### 4. ⚡ 企业级功能 | 功能 | 描述 | 用例 | |---------|-------------|----------| | **LOLBAS 集成** | Living Off The Land Binary 执行 | 使用内置系统工具进行无文件操作 | | **定时 payload**** | 定时执行以获得最佳影响 | 在特定时间执行的操作 | | **双触发系统** | 一个设备上的多个 payload | 多阶段操作的灵活性 | | **变形脚本** | 自修改 payload | 规避模式检测 | **企业能力说明:** **LOLBAS 集成:** Living Off The Land Binaries and Scripts (LOLBAS) 是一种使用内置系统工具进行攻击性操作的方法论。LOLBAS 技术不投放可能被杀毒软件检测到的外部文件,而是使用受信任的系统二进制文件,如 cmd.exe、powershell.exe、certutil.exe 和 reg.exe。FLUCKY 为常见的 LOLBAS 技术提供直接命令,使无文件操作变得简单。 **定时 Payload:** 某些操作受益于延迟执行。也许你希望 payload 在预期活动的营业时间执行,或者在监控可能减少的非工作时间执行。FLUCKY 的调度能力允许为将来执行配置 payload,在操作时机上提供灵活性。 **双触发系统:** 具有两个可配置的按钮脚本,FLUCKY 可以携带多个 payload。这允许进行多阶段操作,其中不同的 payload 在不同的时间执行,或者如果主要 payload 没有达到其目标时的备份选项。双按钮系统还提供诱饵活动选项——当一个按钮执行主要操作时,另一个可以制造转移注意力的事件。 **变形脚本:** 模式检测是一种常见的防御技术——安全系统寻找指示自动行为的重复模式。FLUCKY 的 payload 变形功能化脚本中命令的顺序,每次创建不同的执行模式。这击败了简单的模式匹配,并使 FLUCKY 的输出更难与合法用户活动区分开来。 ## 🔧 硬件要求 ### 基本组件 | 组件 | 描述 | 说明 | |-----------|-------------|-------| | **ESP32 开发板** | 任何支持 BLE 的变体 | 支持 ESP32, ESP32-S3, ESP32-S3 Zero | | **Micro-USB 线缆** | 用于供电和编程 | 质量线缆对于可靠刷写至关重要 | | **面包板/跳线** | 用于原型设计 | 生产使用可选 | | **外壳** | 用于操作部署 | 可用 3D 打印或商用选项 | ### ESP32 变体比较 | 变体 | 优点 | 缺点 | 最适合 | |---------|------|------|----------| | **ESP32 原版** | 广泛可用,文档齐全 | 较大的外形 | 开发,测试 | | **ESP32-S3** | 更强大,更好的 BLE | 稍贵 | 生产操作 | | **ESP32-S3 Zero** | 紧凑的外形 | GPIO 访问受限 | 隐秘操作 | ### GPIO 引脚配置 | 引脚 | 功能 | 模式 | 描述 | |-----|----------|------|-------------| | `GPIO 0` | 主按钮 | INPUT_PULLUP | 主 payload 触发器 | | `GPIO 2` | 副按钮 | INPUT_PULLUP | 备用 payload 触发器 | | `GPIO 22` | 状态 LED | OUTPUT | 视觉反馈指示器 | **引脚配置详情:** **GPIO 0(主按钮):** 此引脚配置有内部上拉电阻,这意味着当未按下按钮时它读取 HIGH,当按下按钮时它读取 LOW(将引脚连接到地)。按钮应连接在 GPIO 0 和 GND 之间。按下时,此按钮触发用 `BUTTON_DEF` 定义的主按钮脚本。 **GPIO 2(副按钮):** 与 GPIO 0 类似,此引脚使用内部上拉并触发用 `BUTTON2_DEF` 定义的副按钮脚本。拥有两个按钮允许进行多阶段操作或诱饵活动。 **GPIO 22(状态 LED):** 此输出引脚驱动 LED 以提供视觉反馈。LED 应在 GPIO 22 和 GND 之间连接适当的限流电阻(通常为 220Ω-330Ω)。当启用隐秘模式时,无论其配置状态如何,此 LED 都会被禁用。 ### 电源考虑 | 电源 | 电压 | 考量 | |--------------|---------|----------------| | **USB 电源** | 5V 通过 micro-USB | 最常见,可靠,连续电源 | | **电池电源** | 3.3V LiPo | 便携操作,需要充电电路 | | **外部 3.3V** | 3.3V 稳压 | 定制安装 | **电源规格:** | 参数 | 值 | 说明 | |-----------|-------|-------| | 电流消耗(活动) | ~80mA | 在活动 BLE 传输期间 | | 电流消耗(空闲) | ~40mA | 广播时,未连接 | | 电流消耗(隐秘) | ~35mA | LED 禁用减少消耗 | | 工作电压 | 3.0V - 3.6V | ESP32 工作范围 | | USB 输入 | 5V | 在板上稳压至 3.3V | **电池寿命估计:** | 电池容量 | 预计运行时间 | |------------------|-------------------| | 500mAh LiPo | ~6-8 小时活动 | | 1000mAh LiPo | ~12-16 小时活动 | | 2000mAh LiPo | ~24-32 小时活动 | ## 🚀 快速入门指南 ### 第 1 步:刷写固件 #### 使用 esptool.py(推荐) ``` # 安装 esptool pip install esptool # 识别你的 ESP32 的 COM 端口 # Windows:检查设备管理器中的端口 (COM & LPT) # Linux:检查 /dev/ttyUSB* 或 /dev/ttyACM* # macOS:检查 /dev/cu.usbserial-* # 刷入固件(将 COM3 替换为你的端口) esptool.py --port COM3 write_flash 0x1000 esp32_s3_flucky_backup.bin # 验证刷入 esptool.py --port COM3 verify_flash 0x1000 esp32_s3_flucky_backup.bin ``` **刷写问题故障排除:** | 问题 | 解决方案 | |-------|----------| | “Failed to connect” | 连接时按住 BOOT 按钮,连接后松开 | | “Wrong boot mode” | 确保 GPIO 0 在启动期间为 HIGH(未按下) | | “Timeout” | 尝试较低的波特率:在命令中添加 `--baud 115200` | | “Invalid header” | 验证你的 ESP32 变体的固件文件是否正确 | #### 使用 Arduino IDE 1. **安装 ESP32 开发板支持:** - 打开 Arduino IDE - 转到 File → Preferences - 将 `https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json` 添加到 Additional Boards Manager URLs - 转到 Tools → Board → Boards Manager - 搜索“ESP32”并安装 2. **为你的开发板配置:** - 在 Tools → Board 下选择正确的开发板变体 - 在 Tools → Port 下选择正确的 COM 端口 - 将 Upload Speed 设置为 115200(或 921600 以加快上传) 3. **上传二进制文件:** - File → Preferences → Show verbose output during upload - Sketch → Upload(或对 .bin 文件使用“Upload Using Programmer”) ### 第 2 步:初始设置 **通电顺序:** 1. 将 ESP32 连接到电源(USB 或电池) 2. LED 应闪烁 3 次,表示成功启动 3. 设备立即开始 BLE 广播 **串口监视器连接:** 1. 以 **115200** 波特率打开串口监视器 2. 你应该看到欢迎横幅: ``` [CLEAR_SCREEN] . __ <(o )___ ( ._> / `----'` ~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~ Welcome to Flucky! Made by James $ ``` **初始配置:** ``` # 检查系统状态 STATUS # 为你的行动重命名设备 rename "Logitech Keyboard" # 验证新名称 STATUS ``` ### 第 3 步:基本测试 **测试蓝牙连接:** ``` # 检查当前蓝牙状态 STATUS # 测试断开/重连循环 DISCONNECT DELAY 2000 RECONNECT ``` **测试基本按键:** ``` # 简单文本注入 STRING Hello, this is FLUCKY! ENTER # 测试修饰键 WIN r DELAY 500 STRING notepad.exe ENTER DELAY 1000 STRING This text was injected by FLUCKY! ``` **测试按钮脚本:** ``` # 定义一个简单的按钮脚本 BUTTON_DEF STRING Button pressed! ENTER DELAY 500 STRING This is a test payload. ENTER END_BUTTON # 启用按钮触发 ENABLE_BUTTON # 按下 GPIO 0 按钮执行 ``` ### 第 4 步:你的第一个完整脚本 ``` # 进入脚本模式 script # 粘贴以下内容: DELAY 2000 STRING === FLUCKY Test Script === ENTER DELAY 500 STRING Opening Run dialog... ENTER DELAY 500 WIN r DELAY 500 STRING calc.exe ENTER DELAY 1000 STRING Calculator launched successfully! ENTER DELAY 500 STRING Test complete. ENTER END ```
## 🎮 核心命令系统
### 命令结构 所有 FLUCKY 命令遵循一致的模式,使其易于学习和使用: **立即执行:** 命令在输入后立即运行。没有批处理或队列——命令执行,然后 FLUCKY 等待下一个命令。这使得行为可预测且调试简单。 **区分大小写:** 命令必须按照定义以大写形式输入。`STRING` 有效;`string` 或 `String` 将不被识别。这种一致性防止了大小写错误。 **参数支持:** 许多命令接受修改其行为的参数。参数与命令之间用空格分隔。例如,`DELAY 1000` 使用 DELAY 命令和参数 1000(毫秒)。 **多命令支持:** 多个命令可以用分号分隔以形成紧凑的脚本:`WIN r; DELAY 500; STRING notepad.exe; ENTER`。这对于计划命令和单行命令特别有用。 ### 基本设备管理命令 #### STATUS **描述:** 显示所有当前配置和状态的综合系统状态概述。 **用法:** `STATUS` **输出示例:** ``` Flucky Status: Device Name: Flucky Bluetooth: Connected Button Trigger: Enabled Stealth Mode: Disabled Obfuscation: Disabled Advanced Obfuscation: Disabled Chaos Mode: Disabled Jitter: Disabled XOR Key: [Not Set] Button Script: [Not Defined] Button2 Script: [Not Defined] Easter Egg: [Not Hidden] Scheduled Payload: [Not Scheduled] Self-Destruct: Disabled Gaslight Profile: [Not Defined] Gaslight Active: No ``` **何时使用:** - 操作前验证配置 - 配置更改后确认设置 - 在故障排除期间识别问题 - 刷写后验证成功初始化 #### rename \ **描述:** 更改 FLUCKY 广播时出现的蓝牙设备名称。 **用法:** `rename ` **参数:** - ``:新设备名称(1-256 个字符) **示例:** ``` # 企业环境伪装 rename "Logitech MX Keys" # 通用伪装 rename "Bluetooth Keyboard" # 特定组织伪装 rename "ACME Corp Keyboard" ``` **效果:** 立即用新名称重新初始化 BLE 广播。以前见过 FLUCKY 的设备可能会缓存旧名称,因此目标设备可能需要“忘记”设备并重新发现它。 **最佳实践:** - 选择在目标环境中预期的名称 - 匹配合法设备的命名约定 - 避免可疑名称,如“Hacker Keyboard”或“Pwn Device” - 考虑组织的 IT 命名约定 #### clear **描述:** 清除串口终端屏幕并重新显示欢迎横幅。 **用法:** `clear` **效果:** 清除终端中所有先前的输出并显示新鲜的欢迎消息。对于在长时间会话期间保持工作空间清洁很有用。 #### help **描述:** 显示包含简要描述的所有可用命令的综合列表。 **用法:** `help` **何时使用:** - 当你忘记命令语法时 - 发现新命令 - 作为操作期间的快速参考 ### 脚本管理系统 #### 交互式脚本模式 FLUCKY 提供多种定义和执行脚本的方式,每种方式适用于不同的用例。 ##### script - 多行脚本输入 **描述:** 进入交互模式以定义并立即执行多行脚本。 **用法:** ``` script ... END ``` **示例:** ``` $ script Paste your script below. Send 'END' on a new line to finish: ------------------------ STRING Starting attack sequence DELAY 1000 WIN r DELAY 500 STRING cmd.exe ENTER DELAY 1000 STRING whoami ENTER END ------------------------ Executing script... > STRING Starting attack sequence > DELAY 1000 > WIN r > DELAY 500 > STRING cmd.exe > ENTER > DELAY 1000 > STRING whoami > ENTER Script execution completed ``` **何时使用:** - 在提交到按钮脚本之前测试新脚本 - 不需要保存的一次性操作 - 脚本的开发和调试 ##### BUTTON_DEF - 主按钮脚本 **描述:** 定义 GPIO 0 按钮按下时执行的脚本。 **用法:** ``` BUTTON_DEF END_BUTTON ``` **示例:** ``` $ BUTTON_DEF Paste your button script below. Send 'END_BUTTON' on a new line to finish: ------------------------ STEALTH_ON DELAY 2000 WIN r STRING powershell -WindowStyle Hidden -Command "Start-Process cmd -WindowStyle Hidden" ENTER DELAY 3000 STRING systeminfo ENTER STEALTH_OFF END_BUTTON ------------------------ Button script defined ``` **重要说明:** - 按钮脚本持续存在,直到被覆盖或设备重置 - 如果设置了 XOR 密钥,脚本将被加密 - 按钮必须用 `ENABLE_BUTTON` 启用才能起作用 - 长脚本可能需要片刻时间存储 ##### BUTTON2_DEF - 副按钮脚本 **描述:** 定义 GPIO 2 按钮按下时执行的脚本。 **用法:** ``` BUTTON2_DEF END_BUTTON2 ``` **示例:** ``` $ BUTTON2_DEF Paste your second button script below. Send 'END_BUTTON2' on a new line to finish: ------------------------ STRING This is the secondary payload! ENTER DELAY 1000 STRING executed at [TIME] ENTER END_BUTTON2 ------------------------ Second button script defined ``` **副按钮的用例:** - 如果主要失败时的备份 payload - 主要执行时的诱饵活动 - 多阶段操作的不同阶段 - 快速侦察与全面利用 ### 蓝牙管理 #### DISCONNECT **描述:** 立即终止蓝牙连接并停止广播。 **用法:** `DISCONNECT` **效果:** - 结束 BLE 广播 - 清理蓝牙堆栈 - 将设备设置为断开连接状态 - LED 闪烁 3 次以确认 **何时使用:** - 在更改设备名称之前(以强制重新广播) - 当连接变得不稳定时 - 干净地结束操作 - 运输前防止意外连接 #### RECONNECT **描述:** 使用当前设备名称重新初始化蓝牙连接。 **用法:** `RECONNECT` **效果:** - 内部调用 DISCONNECT - 使用当前设备名称重新初始化 BLE - 立即开始广播 - LED 闪烁 3 次以确认 **何时使用:** - 在 DISCONNECT 后恢复功能 - 当蓝牙似乎冻结或无响应时 - 在更改设备名称后应用更改 - 当目标设备找不到 FLUCKY 时 ### ⌨️ 基本按键注入 FLUCKY 提供涵盖全范围键盘输入的综合按键注入能力。 #### 单键按下 | 命令 | 等效 | 描述 | |---------|------------|-------------| | `ENTER` | KEY_RETURN | 按下 Enter 键 | | `SPACE` | ' '(空格) | 按下空格键 | | `TAB` | KEY_TAB | 按下 Tab 键 | | `ESC` / `ESCAPE` | KEY_ESC | 按下 Escape 键 | | `BREAK` / `PAUSE` | KEY_MEDIA_PLAY_PAUSE | 按下 Break/Pause 键 | | `INSERT` | KEY_INSERT | 按下 Insert 键 | | `DELETE` | KEY_DELETE | 按下 Delete 键 | | `BACKSPACE` | KEY_BACKSPACE | 按下 Backspace 键 | **用法示例:** ``` # 简单导航 ENTER TAB TAB ENTER # 取消操作 ESC # 删除选中文本 DELETE # 在表单中返回 BACKSPACE ``` #### 修饰键组合 ##### WIN / META **描述:** 按下 Windows 键 或 Meta/Command 键。 **用法:** - `WIN` - 单独按下 Windows 键(打开开始菜单) - `WIN ` - Windows + 键组合 **示例:** | 命令 | 效果 | |---------|--------| | `WIN` | 打开开始菜单 | | `WIN r` | 打开运行对话框 | | `WIN d` | 显示桌面 | | `WIN l` | 锁定工作站 | | `WIN e` | 打开文件资源管理器 | | `WIN i` | 打开设置 | ##### CTRL \ **描述:** Control 键组合。 **用法:** `CTRL ` **示例:** | 命令 | 效果 | |---------|--------| | `CTRL c` | 复制选定的文本 | | `CTRL v` | 粘贴剪贴板内容 | | `CTRL a` | 选择所有内容 | | `CTRL z` | 撤消上一个操作 | | `CTRL x` | 剪切选定的文本 | | `CTRL s` | 保存当前文件 | | `CTRL p` | 打印 | | `CTRL f` | 查找 | | `CTRL w` | 关闭当前选项卡 | | `CTRL t` | 新选项卡 | ##### ALT \ **描述:** Alt 键组合。 **用法:** `ALT ` **示例:** | 命令 | 效果 | |---------|--------| `ALT tab` | 在应用程序之间切换 | | `ALT f4` | 关闭当前窗口 | | `ALT space` | 打开窗口菜单 | | `ALT enter` | 属性(在资源管理器中) | | `ALT left` | 在浏览器中后退 | | `ALT right` | 在浏览器中前进 | ##### SHIFT \ **描述:** Shift 键组合。 **用法:** `SHIFT ` **效果:** 产生大写字符或符号(键的上档版本)。 **示例:** | 命令 | 效果 | |---------|--------| | `SHIFT a` | 输入 'A' | | `SHIFT 1` | 输入 '!' | | `SHIFT 9` | 输入 '(' | | `SHIFT tab` | 向后导航 | ##### CTRL ALT DELETE **描述:** 三键安全组合。 **用法:** `CTRL ALT DELETE` **效果:** 打开安全选项屏幕 或其他操作系统上类似的安全注意序列。 **重要说明:** 此组合通常由操作系统特殊处理,可能无法在所有系统或配置上注入。 #### 导航键 ##### 箭头键 | 命令 | 描述 | |---------|-------------| | `UPARROW` | 按下向上箭头键 | | `DOWNARROW` | 按下向下箭头键 | | `LEFTARROW` | 按下向左箭头键 | | `RIGHTARROW` | 按下向右箭头键 | **用法示例:** ``` # 导航菜单 UPARROW UPARROW ENTER # 在文本中移动光标 LEFTARROW LEFTARROW DELETE ``` ##### 文档导航 | 命令 | 描述 | |---------|-------------| | `HOME` | 按下 Home 键(行首) | | `END` | 按下 End 键(行尾) | | `PAGEUP` | 按下 Page Up 键 | | `PAGEDOWN` | 按下 Page Down 键 | **用法示例:** ``` # 转到行首 HOME SHIFT END # Select to end of line CTRL c # Copy line # 导航文档 PAGEDOWN PAGEDOWN ``` #### 功能键 | 命令 | 常见用途 | |---------|------------| | `F1` | 大多数应用程序中的帮助 | | `F2` | 重命名选定的文件 | | `F3` | 搜索 | | `F4` | 地址栏(资源管理器) | | `F5` | 刷新页面 / 运行代码 | | `F6` | 地址栏(浏览器) | | `F7` | 拼写检查 | | `F8` | 安全模式(启动) | | `F9` | 刷新字段 | | `F10` | 激活菜单栏 | | `F11` | 切换全屏 | | `F12` | 开发者工具 / 另存为 | **用法示例:** ``` # 刷新浏览器页面 F5 # 打开开发者工具 F12 # 切换全屏 F11 ``` #### 媒体控制键 | 命令 | 描述 | |---------|-------------| | `VOLUMEUP` | 增加系统音量 | | `VOLUMEDOWN` | 降低系统音量 | | `MUTE` | 切换音频静音 | | `PLAY` / `PAUSE` | 切换媒体播放 | | `NEXTTRACK` | 跳到下一曲 | | `PREVTRACK` | 返回上一曲 | **用法示例:** ``` # 音量控制 VOLUMEUP VOLUMEUP VOLUMEUP # 静音 MUTE # 媒体控制 PLAY NEXTTRACK ``` #### 字符串输入 ##### STRING \ **描述:** 逐个字符输入任意文本字符串。 **用法:** `STRING ` **参数:** - ``:每个命令最多 256 个字符的任何文本 **功能:** - 支持完整的 ASCII 字符集 (32-126) - 以 10 个字符的块进行批处理 - 可配置的字符间延迟 - 高级混淆兼容性 - 自动过滤非 ASCII 字符 **示例:** ``` # 基础文本 STRING Hello World! # 文件路径 STRING C:\Windows\System32\calc.exe # 命令 STRING powershell -Command "Get-Process" # URLs STRING https://example.com/path?param=value # 代码 STRING function test() { return true; } ``` **处理长字符串:** 对于超过 256 个字符的字符串,请跨多个 STRING 命令拆分: ``` STRING This is a very long string that exceeds the 256 character limit. Part 1... STRING ...and this is part 2 of the same long string continued. STRING ...and this is the final part 3. ``` #### 单字符键 **描述:** 按下任何单个字符键。 **用法:** ``(单个 ASCII 字符) **示例:** | 命令 | 效果 | |---------|--------| | `a` | 按下 'a' 键 | | `A` | 按下 'A' 键 (Shift+a) | | `1` | 按下 '1' 键 | | `@` | 按下 '@' 符号 | | `!` | 按下 '!' 符号 | **限制:** 仅限单个 ASCII 字符 (32-126)。
# 第 2 部分:隐秘、加密与高级操作 Stealth Encryption Obfuscation ### 成为机器中的幽灵 —— 高级隐身与规避技术 *"最好的攻击是他们从未察觉到的攻击"*
## 🕶️ 隐身行动 ### 全面的安全操作 FLUCKY 的隐身功能可将您的设备从可见的工具转变为隐形的研究仪器。当隐身至关重要时,FLUCKY 能提供全方位的不可见性。 #### STEALTH_ON **描述:** 启用完全隐身模式。 **用法:** `STEALTH_ON` **效果:** | 功能 | 状态 | |---------|--------| | 串口输出 | ✅ 完全禁用 | | LED 指示灯 | ✅ 关闭 | | 视觉反馈 | ✅ 无 | | 命令执行 | ✅ 正常继续 | | 蓝牙功能 | ✅ 完全保持 | **操作影响:** - 设备在视觉检查中变得完全不可见 - 不在串口监视器上记录活动 - 非常适合隐蔽操作和物理安全测试 - 保持完整的蓝牙功能 **最佳实践:** - 在敏感操作前启用隐身 - 通过检查 LED 活动来验证隐身是否生效 - 请记住,隐身也会禁用您查看正在发生情况的能力 - 规划您的操作,以便您可以在没有视觉反馈的情况下执行 #### STEALTH_OFF **描述:** 禁用隐身模式。 **用法:** `STEALTH_OFF` **效果:** | 功能 | 状态 | |---------|--------| | 串口输出 | ✅ 重新启用 | | LED 指示灯 | ✅ 重新激活 | | 正常视觉反馈 | ✅ 已恢复 | | LED 确认 | ✅ 闪烁两次 | ### 隐身操作示例 #### 企业红队行动 ``` # 为隐蔽操作启用 stealth STEALTH_ON BUTTON_DEF DELAY 3000 WIN r STRING powershell -WindowStyle Hidden -ExecutionPolicy Bypass -File C:\temp\recon.ps1 ENTER END_BUTTON # 设备现在完全静默运行 # 按下按钮时无可见指示灯 ``` #### 物理安全评估 ``` STEALTH_ON # 设备放置在目标区域 # 按下按钮时无视觉指示灯 # 即使被发现也完全可否认 # 稍后,在安全位置取回时: STEALTH_OFF STATUS # Verify operation completed ``` ### 现实世界的隐身场景 **企业红队:** 在进行授权的红队评估时,隐身对于真实测试至关重要。闪烁 LED 或显示串口输出的设备测试的不是防御者是否会注意到真正的攻击——而是测试他们是否注意到了明显的迹象。`STEALTH_ON` 确保 FLUCKY 存在的唯一证据是其注入的击键。 **物理安全评估:** 在物理安全测试中,设备可能需要放置在目标环境中并让其自动运行。`STEALTH_ON` 确保如果设备被保洁人员、安保人员或员工发现,没有可疑的灯光或输出表明它是测试设备。这提供了行动掩护并防止过早被发现。 **意识培训:** 在测试用户是否注意到细微异常时,测试设备本身应该是不可见的。用户不应看到带有闪烁灯光的可疑设备——他们应该只体验到测试旨在评估的系统行为变化。`STEALTH_ON` 支持这种类型的真实测试。 ## 🔐 加密与安全 ### 军用级 Payload 保护 FLUCKY 的加密系统确保您的 Payload 即使在设备被捕获或分析时也能保持安全。这对于在整个评估生命周期中维持操作安全至关重要。 #### SET_XOR_KEY \ **描述:** 为所有脚本设置 XOR 加密密钥。 **用法:** `SET_XOR_KEY ` **参数:** - ``:加密密钥(1-256 个字符) **效果:** | 脚本类型 | 保护状态 | |-------------|------------| | 按钮脚本 | ✅ 自动加密 | | 辅助按钮脚本 | ✅ 自动加密 | | 彩蛋脚本 | ✅ 自动加密 | | 计划任务 Payload | ✅ 自动加密 | | 心理操纵配置 | ✅ 自动加密 | **技术细节:** | 参数 | 值 | |-----------|-------| | 算法 | 带密钥循环的 XOR 密码 | | 密钥空间 | 长密钥等效 256 位 | | 性能 | 对 ESP32 开销极小 | | 安全性 | 针对随意分析的混淆 | **使用示例:** ``` # 设置加密密钥 SET_XOR_KEY CorporateRedTeam2024! # 定义加密脚本 BUTTON_DEF STRING Encrypted payload content ENTER DELAY 1000 WIN r STRING notepad.exe ENTER END_BUTTON # 脚本现已加密存储在设备上 ``` ### 加密管理 #### 查看加密状态 ``` STATUS # 查找:XOR Key: [Set] ``` #### 更改加密密钥 ``` # 旧密钥:OldPassword123 # 新密钥:NewPassword456 SET_XOR_KEY NewPassword456 # 所有脚本自动重新加密 ``` #### 移除加密(不推荐) ``` # 设置为空密钥 SET_XOR_KEY # 警告:这将以明文形式存储脚本! # 出于操作安全考虑,不推荐 ``` ### 自毁机制 #### SELF_DESTRUCT \ **描述:** 在指定执行次数后擦除所有脚本。 **用法:** `SELF_DESTRUCT ` **参数:** - ``:正整数(擦除前的执行次数) **效果:** | 动作 | 详情 | |--------|---------| | 计数脚本执行 | 跟踪脚本运行次数 | | 达到限制时擦除所有脚本 | 按钮脚本、彩蛋、计划任务 Payload、心理操纵配置 | | 重置自毁计数器 | 擦除后计数器重新开始 | | LED 确认 | 触发时闪烁 5 次 | **操作安全示例:** **一次性任务:** ``` # 访问受限的任务 SELF_DESTRUCT 1 BUTTON_DEF STRING One-time intelligence gathering ENTER DELAY 2000 STRING systeminfo > C:\temp\sysinfo.txt ENTER END_BUTTON # 脚本在首次使用后自我擦除 ``` **培训环境:** ``` SELF_DESTRUCT 5 # 非常适合培训 - 防止意外重复使用 # 防止敏感 payloads 在错误环境中使用 ``` **多阶段行动:** ``` SELF_DESTRUCT 3 BUTTON_DEF STRING Phase 1: Initial reconnaissance ENTER DELAY 1000 STRING Phase 2: Data gathering ENTER END_BUTTON # 允许 3 次执行后擦除 ``` ## 🎭 混淆与规避 FLUCKY 提供多层混淆功能,使击键注入更难被检测和分析。 ### 基本击键混淆 #### OBFUSCATE_ON **描述:** 启用基本击键混淆。 **用法:** `OBFUSCATE_ON` **效果:** | 功能 | 概率 | |---------|-------------| | 随机额外击键 | 每批次 33% | | CAPS LOCK 切换 | 随机间隔 | | ALT 键按下 | 随机插入 | | TAB 键注入 | 输入期间 | **技术实现:** - 每批击键有 33% 的混淆概率 - 从 3 种混淆方法中随机选择 - 对 Payload 执行时间影响极小 - 保持 Payload 功能性 #### OBFUSCATE_OFF **描述:** 禁用基本击键混淆。 **用法:** `OBFUSCATE_OFF` **效果:** 干净、可预测的击键注入。 ### 高级行为混淆 #### ADV_OBFUSCATE_ON **描述:** 启用模仿人类行为的高级输入混淆。 **用法:** `ADV_OBFUSCATE_ON` **效果:** | 技术 | 描述 | |-----------|-------------| | 字符洪泛 | 插入 1-3 个随机字符然后删除它们 | | 光标跳跃 | 将光标移动到文本中的随机位置 | | 多方向编辑 | 模拟真实的人类输入错误 | | 上下文感知 | 保持整体 Payload 完整性 | **技术细节:** - 每个字符有 20% 的概率进行高级混淆 - 随机插入和删除字符 - 使用 HOME/END 键在文本内跳跃 - 模拟退格/删除进行更正 #### ADV_OBFUSCATE_OFF **描述:** 禁用高级混淆。 **用法:** `ADV_OBFUSCATE_OFF` ### 混淆策略示例 #### 用于一般用途的基本混淆 ``` OBFUSCATE_ON STRING This text will have random keystrokes injected ENTER ``` #### 用于高安全环境的高级混淆 ``` ADV_OBFUSCATE_ON STRING This text will appear to be typed by a human with erratic behavior ENTER ``` #### 组合混淆层 ``` OBFUSCATE_ON ADV_OBFUSCATE_ON STRING Maximum obfuscation - both basic and advanced techniques active ENTER ``` #### 操作配置 ``` # 配置以进行逼真的操作 SET_JITTER 500 JITTER_ON OBFUSCATE_ON ADV_OBFUSCATE_ON BUTTON_DEF STRING This script will appear completely human ENTER DELAY 1000 STRING with random timing and typing patterns ENTER END_BUTTON ``` ## ⏰ 计时与调度 ### 延迟管理 #### DELAY \ **描述:** 插入特定的毫秒级延迟。 **用法:** `DELAY ` **参数:** - ``:等待的毫秒数(正整数) **示例:** ``` # 连接后等待系统稳定 DELAY 3000 # 等待应用程序加载 STRING notepad.exe ENTER DELAY 2000 # 等待网络连接 STRING ping 8.8.8.8 ENTER DELAY 5000 ``` **最佳实践:** - 在操作之间添加延迟以提高可靠性 - 考虑应用程序启动时间 - 考虑网络操作的网络延迟 - 较长的延迟比过短的延迟更安全 #### DEFAULTDELAY \ / DEFAULT_DELAY \ **描述:** 设置所有命令之间的默认延迟。 **用法:** `DEFAULTDELAY ` **参数:** - ``:命令之间的毫秒数(正整数) **范围:** 影响所有后续命令的执行。 **脚本优化示例:** ``` # 设置保守的时间以保证可靠执行 DEFAULTDELAY 1000 BUTTON_DEF WIN r STRING cmd.exe ENTER STRING whoami ENTER STRING ipconfig ENTER END_BUTTON # 现在每个命令后面都有 1000ms 的延迟 ``` ### 抖动与随机化 #### SET_JITTER \ **描述:** 设置最大随机延迟范围。 **用法:** `SET_JITTER ` **参数:** - ``:最大随机延迟(0-N 毫秒) **效果:** 在每个命令后增加 0 到指定毫秒的随机延迟。 #### JITTER_ON **描述:** 启用抖动随机化。 **用法:** `JITTER_ON` **要求:** 必须先配置 `SET_JITTER`。 #### JITTER_OFF **描述:** 禁用抖动随机化。 **用法:** `JITTER_OFF` #### 抖动实现示例 ``` # 配置 jitter 以实现不可预测的时间 SET_JITTER 1000 JITTER_ON BUTTON_DEF STRING Command execution with random delays between 0-1000ms ENTER DELAY 2000 # Fixed 2-second delay STRING Another command with jitter after it ENTER END_BUTTON ``` ### Payload 调度 #### SCHEDULE \ \ **描述:** 安排 Payload 在未来时间执行。 **用法:** `SCHEDULE