跟着黑客学习fake captcha
字数 1569 2025-08-29 08:30:12
Fake CAPTCHA 攻击技术分析与防御指南
1. 引言
Fake CAPTCHA(虚假验证码)是一种新型的社会工程学攻击技术,攻击者通过伪造人机验证(CAPTCHA)界面诱导用户执行恶意命令。本文基于对实际攻击案例的分析,详细剖析这种攻击技术的原理、实现方式和防御措施。
2. 攻击分析
2.1 攻击流程
-
攻击准备:
- 攻击者使用开源项目(如recaptcha-phish)创建伪造的验证码页面
- 修改index.html文件(第423行),添加项目路径
-
攻击执行:
- 用户访问伪造的验证码页面(index.html)
- 用户点击"我不是机器人"复选框
- 系统自动将恶意命令复制到剪贴板,例如:
mshta file://C:\Users\用户名\Desktop\recaptcha-phish-main\recaptcha-verify # ✅ ''I am not a robot - reCAPTCHA Verification ID: 3495'' - 如果用户被诱导在Windows运行窗口(Win+R)中粘贴并执行此命令,恶意payload将被执行
-
用户视角:
- 用户仅看到看似无害的验证成功消息:
✅ ''I am not a robot - reCAPTCHA Verification ID: 3205''
- 用户仅看到看似无害的验证成功消息:
2.2 脚本分析
项目结构:
- index.html:钓鱼页面,诱导用户点击验证码并复制攻击命令
- recaptcha-verify:HTA(HTML Application)文件,用于通过mshta执行命令
关键代码功能:
-
index.html:
commandToRun:定义要执行的攻击命令htaPath:指定HTA文件的路径setClipboardCopyData:核心函数,将恶意命令复制到剪贴板
-
recaptcha-verify:
- 作为HTA文件,可以执行命令同时显示HTML页面
- 结合mshta.exe执行恶意操作
3. 脚本修改与进阶利用
3.1 修改执行命令
攻击者可以灵活修改命令以适应不同攻击场景:
-
CMD命令示例:
mshta file://C:\path\to\recaptcha-verify # ✅ Verification -
PowerShell命令示例:
mshta file://C:\path\to\recaptcha-verify # ✅ Verification
3.2 命令免杀技术
-
PowerShell混淆:
- 使用Invoke-Obfuscation等工具混淆PowerShell命令
- 参考项目:https://github.com/danielbohannon/Invoke-Obfuscation
-
MSHTA混淆:
- 使用weirdhta等技术混淆HTA执行
- 参考项目:https://github.com/felamos/weirdhta
4. 攻击特征与防御
4.1 攻击特征
-
注册表修改:
- 当用户通过Win+R执行命令时,系统会在以下注册表路径记录命令:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
- 当用户通过Win+R执行命令时,系统会在以下注册表路径记录命令:
-
系统行为:
- mshta.exe进程执行HTA文件
- 剪贴板内容被恶意修改
4.2 防御措施
-
监控规则:
- 监控
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU注册表键值变化 - 结合剪贴板API监控创建组合告警规则
- 监控
-
用户教育:
- 警惕不明来源的验证码请求
- 不随意执行从网页复制的命令
-
技术防护:
- 限制mshta.exe执行权限
- 部署端点检测与响应(EDR)解决方案
5. 参考资源
- recaptcha-phish项目:https://github.com/JohnHammond/recaptcha-phish
- fakeCAPTCHA项目:https://github.com/fucklinux/fakeCAPTCHA
- PowerShell混淆:https://github.com/danielbohannon/Invoke-Obfuscation
- MSHTA混淆:https://github.com/felamos/weirdhta
6. 总结
Fake CAPTCHA攻击利用用户对人机验证的信任,通过精心设计的社交工程手段诱导用户执行恶意命令。防御此类攻击需要技术防护与用户教育相结合,特别要关注注册表修改和异常命令执行行为。安全团队应部署相应的监控规则,并及时更新防御策略以应对不断演变的攻击手法。