1. 项目背景与核心价值
在安全攻防对抗中,攻击方常需要获取系统敏感凭据(如Lsass进程内存中的密码哈希),而防守方则通过各类安全产品(如EDR、AV)监控此类高危操作。传统凭据提取工具(如Mimikatz)早已被安全软件标记为恶意特征,直接使用无异于"裸奔"。本项目探讨的正是如何通过动态行为绕过、源头特征混淆等技术,在保持核心功能的前提下,实现更隐蔽的凭据获取操作。
核心突破点在于:
- 动态绕过:通过运行时行为调整规避静态检测
- 源头混淆:变异工具特征使其难以被规则匹配
- 合法工具滥用:利用Certutil等系统自带工具实现下载功能
这种"轻量化对抗"思路,既保留了攻击效能,又大幅降低了被检测概率,是红队实战中提升隐蔽性的关键技术。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术原理深度解析
2.1 Lsass进程凭据提取原理
Windows系统将登录凭据(包括明文密码、NTLM哈希等)加密后存储在Lsass进程内存中。传统提取方式是通过MiniDumpWriteDump API对Lsass进程进行内存转储,然后解析dump文件获取凭据。安全软件的防御手段主要包括:
- API调用监控:检测对
MiniDumpWriteDump的调用 - 进程行为分析:监控Lsass进程的异常内存读取
- 工具特征检测:识别已知凭据提取工具(如Mimikatz的特定字符串)
2.2 动态绕过技术实现
2.2.1 间接API调用
通过延迟加载或动态获取API地址(如GetProcAddress)来调用敏感函数,避免导入表中出现高危API名称。典型实现:
cpp复制// 传统直接调用(易被检测)
MiniDumpWriteDump(hProcess, ProcessId, hFile, DumpType, NULL, NULL, NULL);
// 动态获取方式
typedef BOOL(WINAPI* pMiniDumpWriteDump)(
HANDLE hProcess,
DWORD ProcessId,
HANDLE hFile,
MINIDUMP_TYPE DumpType,
PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
PMINIDUMP_CALLBACK_INFORMATION CallbackParam
);
pMiniDumpWriteDump _MiniDumpWriteDump = (pMiniDumpWriteDump)GetProcAddress(
LoadLibrary("dbghelp.dll"),
"MiniDumpWriteDump"
);
2.2.2 行为时间分散
将敏感操作拆分为多个阶段执行,中间插入正常业务逻辑。例如:
- 第一阶段:仅打开Lsass进程句柄
- 间隔:执行正常的系统信息收集
- 第二阶段:创建内存转储文件
- 间隔
