Claude-Red键盘记录器架构:输入捕获技术与设计原理详解(新手完整指南)
2026/9/16 11:04:45 网站建设 项目流程

Claude-Red键盘记录器架构:输入捕获技术与设计原理详解(新手完整指南)

【免费下载链接】Claude-Redclaude-red is a curated library of offensive security skills designed for the Claude skills system. Each skill is a structured SKILL.md file that primes Claude with expert-level methodology for a specific attack surface — from SQLi to shellcode, EDR evasion to exploit development.项目地址: https://gitcode.com/GitHub_Trending/cl/Claude-Red

Claude-Red是一个面向 Claude 技能系统的攻击性安全知识库,收录了 58 个结构化的SKILL.md技能文件。本文聚焦其中编号为offensive-keylogger-arch的键盘记录器架构技能,带你从设计原理层面理解 Windows 上常见的输入捕获技术、它们的工作机制与可被检测的原因——这是一份适合安全新手阅读的完整架构剖析。

什么是 Claude-Red 键盘记录器架构技能?

在 Claude-Red 的 13 个技能分类中,Skills/infrastructure/ 目录下的Infrastructure & Red Team类别专门覆盖红队基础设施技术。其中offensive-keylogger-arch技能包含了一份低层键盘记录器架构的完整方法论,内容涵盖:

  • 内核驱动钩子WH_KEYBOARD_LLSetWindowsHookEx
  • 基于 ETW 的输入事件捕获与审计
  • 用户态 vs 内核态两种实现路径的取舍
  • 隐蔽性设计与数据外传思路
  • 每种技术的IOC(失陷指标)——这是新手最应该重视的部分 📌

学习提示:这份文档的价值不仅在于"攻击者怎么做",更在于"检测方看得到什么"。每个技术章节末尾都列出了对应的 IOC,天然适合用于蓝队检测规则设计。

技能如何加载:一键触发机制

Claude-Red 的技能采用按需加载设计——你无需手动指定文件,只要在对话中提到相关触发词(如keyloggerkeyboard hookWH_KEYBOARD_LLinput capture等),Claude 就会自动加载该技能的完整方法论,并按照其内置的清单步骤推进分析。

本地加载方式主要有两种:

  1. 放入技能目录:将仓库克隆到~/.claude/skills/claude-red,Claude 会自动扫描匹配(可通过 install.sh 一键完成,支持--category infrastructure只安装本类别)
  2. 手动注入:将技能文件内容粘贴进项目的系统提示,作为上下文使用

技能清单索引文件为 claude-skills.json,可按分类浏览全部技能。

三种主流输入捕获技术对比

该技能将 Windows 输入捕获归纳为三大路径,下表是最直观的理解框架:

技术原理层级跨进程 DLL 映射隐蔽性最大检测点
常规全局钩子(WH_KEYBOARD等)用户态(每个目标进程被注入)VAD 内存映射残留
低层钩子(WH_KEYBOARD_LL用户态消息队列足迹、线程被"钉住"
Raw Input(RegisterRawInputDevices用户态 → 内核路由ETW 审计事件(无法规避)

1. SetWindowsHookEx:最常见也最"吵"的钩子

技能指出,大多数恶意软件都通过user32.dllSetWindowsHookEx建立全局钩子。它本质上是win32k.sysNtUserSetWindowsHookEx的用户态包装,调用后内核固定执行四步:

  1. 校验并分配钩子记录win32k.sys创建内部HOOK结构,插入该类型全局钩子链的链头
  2. 决定是否向目标进程注入代码:这是最关键的分水岭
  3. 运行时事件路由:按键发生时在内核中遍历钩子链
  4. 强制CallNextHookEx:任何处理器不调用它会断开整条钩子链,导致整个会话输入失灵

低层钩子WH_KEYBOARD_LL的隐蔽悖论:它不需要向目标进程注入任何 DLL(系统通过向安装线程的"幽灵窗口"投递消息来传递事件),因此看起来更干净;但它把安装线程钉死在持续响应输入事件上——一旦消息泵卡住,系统会阻塞整个桌面的后续输入。这个副作用让低层钩子极易被行为监测发现。

而常规全局钩子(WH_KEYBOARDWH_CBT等)则相反:它实现了真正的代码注入(Vista 后通过 APC 在目标进程首次回到用户态时直接调用LdrLoadDll),无需WriteProcessMemory,却在每个被挂钩进程中都留下已映射的 DLL——这是 EDR 做定向 VAD 扫描时的理想靶点。

2. Raw Input:不挂钩子的"隐形"键盘监听

NtUserRegisterRawInputDevices走了一条完全不同的路:它不安装任何钩子,而是让窗口管理器直接把原始 HID 数据包投递到一个指定窗口。典型流程是:

  • 创建一个零尺寸的消息专用窗口(HWND_MESSAGE
  • RIDEV_INPUTSINK标志注册键盘 Raw Input——即使窗口不在前台也能收到全部键盘流量
  • WM_INPUT处理器中解析RAWKEYBOARD负载并记录

由于没有任何钩子存在,这种技术不出现在 WinDbg 的!hook列表中,也没有跨进程 DLL 映射,对大多数 EDR 的"钩子链"传感器完全不可见 ✨

但技能的结论非常清醒:内核在注册时会通过EtwTraceAuditApiRegisterRawInputDevices发出ETW 审计事件,负载中包含 PID、TID、UsagePage 等字段——足以把"非交互式进程注册键盘 Raw Input"轻松判定为可疑行为。且该 ETW 通道默认开启、无法在用户态关闭,是此技术最强、不可规避的 IOC

此外还有两个边界约束:

  • 会话隔离:Raw Input 注册是"每会话"而非"每桌面",Session 0 中的服务看不到Session 1 的按键
  • 若要绕过,只能直接打开物理键盘设备对象解析 HID——但那需要管理员权限,且属于完全不同的攻击面

3. 内核态与驱动层捕获

技能还讨论了绕过user32.dll钩子直接调用NtUserSetWindowsHookEx的做法(IOC 基本相同,只是绕过了外层可能的拦截),并指出一条常被忽视的路线:直接打开\Device\KeyboardClass0设备对象读取 HID——但这会产生IRP_MJ_READ遥测,同样易于告警。

细节设计:如何识别"当前窗口"

捕获按键只是第一步,过滤出有价值的按键(如只记录浏览器中的输入)需要知道前台窗口标题。技能对比了两种取窗口标题的方式:

  • GetWindowTextA检测率最高的函数,几乎每个"脚本小子"键盘记录器都调用它
  • NtUserInternalGetWindowText:同为系统调用但层级更低、检测率显著下降,定义在Win32kFull.sys中,可通过win32u.dll导出——它作为系统调用,允许使用各种*gate技术间接调用

技能末尾还附有"被放弃的研究方向"章节(如用EnumWindows重建 z-order 启发式、遍历_K_USER_SHARED_DATA读取前台进程 ID 等),并解释了各自的失败原因——这部分是理解设计取舍的优质案例。

防御者视角:这份技能文档教我们什么

把攻击面知识反过来看,就是一份高价值的检测清单🛡️

  1. VAD 扫描:关注被多进程共享映射的 DLL,尤其是无磁盘回指的 RWX 内存
  2. 消息队列行为:低层钩子安装线程若停止泵消息,桌面输入会阻塞——这是典型的行为异常信号
  3. ETW 通道AuditThreat-Intelligence通道中的 Raw Input 注册事件,负载字段完整,应作为高优先级告警规则
  4. 钩子链完整性:WinDbg 的!hook命令与 ETW 钩子事件可交叉验证
  5. 会话边界:无桌面环境的进程突然注册键盘输入或创建隐藏桌面,本身就是强 IOC

总结

Claude-Red 的键盘记录器架构技能以"技术原理 + IOC 对照"的方式,系统梳理了 Windows 输入捕获的三大路径:全局钩子低层钩子Raw Input,并揭示了每一种"隐蔽性优势"背后都对应着一个可检测的副作用。对新手的最大启示是:在输入捕获领域,不存在绝对无迹可查的技术——连最"隐形"的 Raw Input 路径也逃不过内核级 ETW 审计。

📚 延伸阅读建议:配合同目录下的 offensive-edr-evasion(钩子卸载、直接系统调用、PPID 欺骗)与 offensive-shellcode(无导入 PEB 遍历、API 哈希)两份技能,可以构建完整的 Windows 红队基础设施知识图谱。

【免费下载链接】Claude-Redclaude-red is a curated library of offensive security skills designed for the Claude skills system. Each skill is a structured SKILL.md file that primes Claude with expert-level methodology for a specific attack surface — from SQLi to shellcode, EDR evasion to exploit development.项目地址: https://gitcode.com/GitHub_Trending/cl/Claude-Red

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询