16

Mimikatz提取Windows用户凭证分析

 4 years ago
source link: https://www.freebuf.com/articles/system/229225.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

一、前言

攻击者在获取到Windows shell之后,有可能会上传Mimikatz提取用户凭证。由于提取密码是本地操作,在执行时并没有网络流量产生,而ips,waf网络设备能检测到的Mimikatz相关流量主要是通过上传、下载、写入到目标及其上的过程,这一部分属于对菜刀、冰蝎工具的检测,所以要识别攻击者使用Mimikatz的动作,基本还是需要靠edr等终端安全产品。

二、Mimikatz提取用户凭证

Mimikatz提取用户凭证功能,其主要集中在sekurlsa模块,该模块又包含很多子模块,如msv,wdigest,kerberos等,使用这些子模块可以提取相应的用户凭证,如sekurlsa::wdigest提取用户密码明文,sekurlsa::kerberos提取域账户凭证,sekurlsa::msv提取ntlm hash凭证,在kuhl_m_c_sekurlsa这个数组里面有各个子模块功能的注释,如下:

2a2quau.jpg!web

Mimikatz使用了一个的框架,来处理对内存的操作。以wdigest子模块为例,如果在目标机器上运行mimikatz,会跨进程读取读取lsass.exe进程的wdigest.dll模块的数据,如果是用dump文件方式提取密码则是直接打开文件。

MFbUFz2.jpg!web 2.1获取用户凭证信息

通过遍历加载的DLL模块名称,来初始化Mimikatz关注的一些DLL的统计信息结构体。

F7VVVzJ.jpg!web

重点是第二步和第三步。

第二步调用了kuhl_m_sekurlsa_utils_search继而调用kuhl_m_sekurlsa_utils_search_generic如下,

QJr2auu.jpg!web

搜索的是LsaSrv.dll的特征码,结合偏移量找到所有的登录会话信息。

QV3IJjZ.jpg!web

最后打印出来的会话信息

N7VfUna.jpg!web 2.2获取加密用户密码的密钥

第三步调用了lsassLocalHelper->AcquireKeys(&cLsass, &lsassPackages[0]->Module.Informations);,实际对于NT6系统实际调用的是kuhl_m_sekurlsa_nt6_acquireKeys

fei6FzE.jpg!web

用PTRN_WALL_LsaInitializeProtectedMemory_KEY作为特征码进行搜索

n6VFBzn.jpg!web

获取初始化向量和密钥本身

iuUZ3qf.jpg!web

2.3解密账户密码

基于2.1得到的登录会话信息(包含加密后的用户密码)和2.2得到的加密密钥和初始化向量,mimikatz的wdigest子模块便可以提取用户密码明文。

auyieyN.jpg!web

kuhl_m_sekurlsa_genericCredsOutput实际调用kuhl_m_sekurlsa_nt6_LsaEncryptMemory进行密码的密文解密。

AbEZZri.jpg!web

最后根据密文长度是否是8的倍数,来调用Aes解密和Des解密(BCryptDecrypt)。

三、总结

Mimikatz的提取密码流程主要分为三步1、获取登录会话的信息,包含了用户密码的加密后密文;2、提取用于加密的密钥值,3、调用Windows导出函数BCryptDecrypt进行解密。由于提取会话信息和密钥都用的是特征码,因此这些特征码作为杀毒软件和edr产品的特征值会非常合适,而攻击者也会采用动态加载的方式防止这种特征的静态扫描。由于水平有限,欢迎大家指出文中的错误和交流指教。

参考资料:

https://blog.xpnsec.com/exploring-mimikatz-part-1/

一并感谢参考过的其他技术分享博客

*本文作者:新华三攻防团队,转载请注明来自FreeBuf.COM


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK