17

Mimikatz提取Windows用户凭证分析

 5 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


Recommend

  • 87

    mimikatz mimikatz is a tool I've made to learn C and make somes experiments with Windows security. It's now well known to extract plaintexts passwords, hash, PIN code and kerberos tickets...

  • 69

    README.md pypykatz Mimikatz implementation in pure Python Goals First step is to have the minidump file parsing capability done in a platform independent way, so you can enjoy w...

  • 43
    • www.freebuf.com 6 years ago
    • Cache

    九种姿势运行Mimikatz

    *本文原创作者:R1ngk3y,本文属FreeBuf原创奖励计划,未经许可禁止转载   前言 平时收集的一些姿势,用户绕过杀软执行mimikatz,这里以360为例进行bypass 测试。...

  • 29

    在Windows环境中,当程序执行时经常会需要用户输入自己的域凭证来实现身份验证,或者说在触发用户账号控制时要求用户输入凭证来实现授权或提权,这种情况是很常见的。通过模仿Windows的这种行为,研究人员将有可能获取到Windows用户的凭证...

  • 29

    *严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。 目标机system权限,安装了360,准备获取密码。 mimikatz的exe,powershell版(可上github下载)网上版本已经被360已及各种杀软杀的死死的,...

  • 29

    郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担! 《远控免杀从入门到实践》系列文章目录: 1、

  • 29
    • 微信 mp.weixin.qq.com 4 years ago
    • Cache

    工具的使用|MSF中mimikatz模块的使用

    目录 mimikatz模块的加载 mimikatz模块的使用 mimikatz_command模块的用法

  • 10
    • 3gstudent.github.io 4 years ago
    • Cache

    Mimikatz中SSP的使用

    0x00 前言 Mimikatz中的mimilib(ssp)和misc::memssp同sekurlsa::wdigest的功能相同,都能够从lsass进程中提取凭据,通常可获得已登录用户的明文口令(Windows Server 2008 R2及更高版本的系统默认无法获得),但实现原...

  • 5

    联盟分析-税务筹划 | ​​税务会计账簿及凭证的管理C sir前检察院 现律师 喜欢区块链技术

  • 7
    • paper.seebug.org 3 years ago
    • Cache

    从 mimikatz 看 Windows DPAPI 数据解密

    作者: 腾讯IT技术 原文链接:https://mp.weixin.qq.com/s/VZWM3p-XPX7JP23s-R859A 渗透的本质就是信息搜集,在后渗透阶段获取目标机器权限后,经常需要获取...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK