lsecqt/FakeWindowsPopup

GitHub: lsecqt/FakeWindowsPopup

基于 .NET Framework 的 Windows 原生凭据提示 POC,调用系统 API 绘制像素级逼真的安全对话框,用于红队演示和安全意识培训。

Stars: 2 | Forks: 0

# FakeLogin 一个基于 .NET Framework 4.5 的凭据提示 POC,适用于红队演示和安全意识视频。 调用 `credui.dll!CredUIPromptForWindowsCredentials`,由操作系统绘制**真实的** Windows 安全对话框——在 Windows 10 和 Windows 11 上均能实现像素级的完美还原(包括正确的 Segoe UI Variable 字体、DPI、Mica/亚克力效果、焦点下划线等)。 ## 功能说明 1. 检测主机是否已加入域(`NetGetJoinInformation`)。 2. 定位域控(`DsGetDcName`)或回退使用本地主机名。 3. 暗化桌面(约 55% 黑色遮罩)以模拟 UAC 的安全桌面效果。 4. 显示原生的 `"Enter your credentials to connect to: "` 提示。 5. 使用 `advapi32!LogonUser`(`LOGON32_LOGON_NETWORK`)验证输入的凭据: - **成功** → 对话框静默关闭,应用退出(模拟真实的 Windows 行为)。 - **失败** → 重新提示;操作系统会内嵌渲染本地化的错误信息(例如 `"The user name or password is incorrect."` 等)。 6. 紧急退出:`Ctrl + Shift + F4`。 ## 编译 在包含 `Program.cs` 的目录下,打开 Windows 命令提示符(`cmd.exe`): ``` "C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe" /target:winexe /out:FakeLogin.exe /reference:System.dll /reference:System.Drawing.dll /reference:System.Windows.Forms.dll Program.cs ``` 如果使用 PowerShell 代替 cmd,请在前面加上 `&`: ``` & "C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe" /target:winexe /out:FakeLogin.exe /reference:System.dll /reference:System.Drawing.dll /reference:System.Windows.Forms.dll Program.cs ``` 不需要任何外部 NuGet 包、项目文件或 `System.DirectoryServices` 引用——所有非 BCL 调用都是对始终可加载的 Windows DLL(`credui.dll`、`advapi32.dll`、`netapi32.dll`、`kernel32.dll`)进行的 P/Invoke。 ## 运行 手动执行 ``` FakeLogin.exe ``` 或通过 execute assembly 模块 ``` execute_assembly FakeLogin.exe ``` ## 注意事项 - 仅用于教育/安全意识演示。 - 无法在真实的安全桌面上渲染——只有 `SYSTEM` 进程有此权限。变暗效果只是在普通桌面上近似模拟 UAC 的变暗效果;微软已公开承认这类视觉欺骗是非常容易实现的。
标签:ESC8, 凭据收集, 社会工程学