0%

mimikatz简单使用手册

mimikatz简单使用手册

mimikatz起码得是个管理员权限跑起来才有用
调用模块内命令的语法是Module::Function,需要加参数的话为/arg:value
简单记录一下常用模块的常用命令

前置知识

先提一点点关于windows权限的东西作为前置知识

用户账户等级

Windows中的账户分为如下几个等级
使用net user命令可以查看本地所有账户,net user username password可以改密码,最后再加个/add可以添加用户(靠这个加了个低等级用户)

  • SYSTEM
  • Administrators
    • Administrator
    • 管理员账户
  • Users
    • 标准账户
      同样,权限对应分为几个等级
  • System
  • High
  • Medium
  • Low
    SYSTEM约等于Linux系统中的root,象征最高权限,为系统服务对应的权限,Administrators组对应High权限,Users对应Medium权限,Low是某些超低权限软件用的。
    但管理员分两类,Administrator和管理员账户,Administrator启动的全部进程均为High权限,而普通管理员启动的进程为Medium权限,需要通过UAC来提升至High权限

UAC

User Account Control
Administrator是超级管理员,启动的进程均为High权限,其他用户就算拥有管理员权限,也需要右键以管理员身份运行,否则就是普通用户,且还会弹出来一个框让你确认是否允许该程序修改设备,这个就是UAC,在工作组环境中,管理员可以执行远程命令,但是普通管理员就因为会被UAC拦下而无法执行,需要进行额外操作

LSASS

即Local Security Authority Subsystem Service,本地安全认证子服务系统

sass.exe是微软本地安全认证服务进程,负责用户标识认证和强化安全的。 它检查登陆进Windows的用户,处理变更密码和建立访问信息,包括基本的安全信息。 它也被管理员用来更新密码和用户档案。

简单点说就是各种各样的凭据都和它相关,所以大家都喜欢打这个服务

something else

说起来DC上好像没有本地账户?登录本地就没成功过,AD安装完之后所有本地账户都变成了域账户,Administrator在整个域上都拥有管理员权限,在DC上新建用户全都是新建域用户
微软官方文档有这么一句话但感觉也有一点读不顺。。。

在安装Active Directory 域服务之前,只能在域控制器上创建本地用户帐户,之后不能创建。

暂且认为就是域控上没得本地账户吧

privilege

权限模块,感觉常用的就一个debug

privilege::debug

需要管理员权限
获取debug权限,搞密码等各种操作的必备前置指令,将该进程的权限提升,管理员账户均拥有Debug权限,但是依旧需要运行“privilege::debug”进行激活。如果报错ERROR kuhl_m_privilege_simple ; RtlAdjustPrivilege (20) c0000061则是拥有管理员权限的普通账户没有以”管理员身份运行”。普通账户直接拉倒。

下文的需要管理员权限均指需要输入privilege::debug

lsadump

Mimikatz 的 LSADUMP 模块用于与 Windows 本地安全验证(Windows Local Security Authority )(LSA) 进程进行交互来提取凭证数据。

就会用这两个,剩下的因为一无所知所以看不懂

lsadump::DCSync

需要域管理员权限,不需要本地管理员了,在非域控机器上登录一个域管理员账户(非本地管理员)即可执行
向DC要一个号的密码
参数

/user 要密码的用户名或sid,/all就是要全部的
/domain域名,不填默认为当前域

lsadump::LSA

导出全部凭证,需管理员身份

/inject - 注入 LSASS 进程提取凭证数据
/name - 目标用户账户的帐户名称
/id - 目标用户账户的 RID
/patch - 补丁 LSASS 进程
RID为502的帐户是KRBTGT帐户,RID为500的帐户是默认的域管理员账户。

感觉和上面的DCSync没什么区别?就权限一个是本地管理员一个是域管理员?

misc

杂项命令

misc::cmd

开一个命令行

misc::taskmgr

开一个任务管理器

misc::regedit

开一个注册表编辑器

这三个命令在管理员禁止使用这三个东西的时候可以硬开出来

misc::addsid

需要管理员权限,将用户账户添加到SIDHistory中,第一个参数为目标账户,第二个值为SID(或账户/组名称)

misc::skeleton

需要管理员权限,在DC上运行,将skeleton密钥注入到LSASS进程中
维持权限的常用手段
使得所有用户可以使用“master Password”(skeleton key)代替原有密码进行身份验证
就是给所有用户添加了一个额外的密码,默认注入密码为mimikatz,找了一会也没找到怎么制定注入的密码值。。。DC重启后失效(因为只是注入进程内存嘛)

bypass LSA Protection

微软在注册表项中提供了防止对lsass.exe的注入,这时候再尝试会报错ERROR kuhl_m_misc_skeleton; OpenProcess (0x00000005)
mimikatz在配置有miidrv.sys时可以绕过
命令如下

privilege::debug
!+
!processprotect /process:lsass.exe /remove
misc::skeleton

net

信息收集命令
net::user
net::wsession
net::group
之类的

process

收集进程数据并与进程交互

process::list

列出正在运行的进程(和任务管理器有什么区别。。。)原文说要管理员权限但实际上我试了一下不需要

进程操作

PROCESS::Resume - 恢复一个进程
PROCESS::Start – 启动一个进程
PROCESS::Stop – 结束一个进程
PROCESS::Suspend – 挂起一个进程
均以/pid:为参数

sekurlsa

与内存交互,整个模块需要管理员权限,应该是最常用模块吧
还可使用TOKEN::elevate获得system权限(但是事实上好像并不好用,不如debug)

sekurlsa::backupkeys

获得备份主密钥(我的机子没设置,均为一大串零)

sekurlsa::credman

列出凭证管理器

sekurlsa::dpapi

列出已缓存的主密钥(但实际运行和上个命令的结果是一致的)

sekurlsa::dpapisystem

输出DPAPI_SYSTEM密文(密钥?)原文为secret

sekurlsa::ekeys

列出kerberos加密密钥

sekurlsa::kerberos

列出所有登录用户的kerberos凭证(包括服务和电脑账户)

sekurlsa::krbtgt

获取krbtgt的全部凭证(当然要在DC上运行啦)

sekurlsa::logonpasswords

我觉得是mimikatz使用最多的命令了(可能比privilege::debug少)
列出所有可用的凭证,windows8.1和windows server2012R2之前的系统会列出明文密码(高版本或打补丁后不会)

sekurlsa::minidump

上下文切换到lsass转储文件,就是读以前倒出来的lsass内存文件
后接一个参数为dmp文件路径

可以通过procdump,Powershell和任务管理器等方式搞定procdump是微软的软件不会被杀,可以用这个dump出来然后发送到本地再用mimikatz读,或者直接任务管理器也可以Create Dump File

sekurlsa::process

和上个命令对应,上下文切换回lsass进程

sekurlsa::msv

列出LM和NTLM凭证

sekurlsa::pth

pass the hash,进行哈希传递
使用一个用户的NTLM哈希上下文启动进程
接收如下参数

/user - 你想进行假冒的用户名,需要明白的是,Administrator 不是唯一一个已知的帐户。
/domain – 域名
/rc4 or /ntlm (可选的) – 指定用户的 RC4 密钥 或 NTLM 哈希。
/run (可选的) – 需要运行的命令行 – 默认为:cmd ,得到一个 cmd shell。

该命令不能与minidumps一起使用
本地测试失败。。。呜呜

sekurlsa::tickets

列出最近所有已经过身份验证的用户的可用的 Kerberos 票证,包括使用用户帐户的上下文运行的服务和本地计算机在 AD 中的计算机帐户。

token

与windows身份验证令牌进行交互,抓取,伪造假冒的已存在令牌

token::elevate

需管理员权限,提升至system权限
可加参数/domainadmin,找到一个域管理员凭证并使用其令牌

token::whoami

显示当前身份

token::list

列出所有令牌

参考链接

Mimikatz非官方指南和命令参考
英文原版(上述翻译版存在
Windows中的UAC账户控制
mimikatz-skeleton key
微软AD官方文档