探寻Mimikatz神器之SSP

访客4年前黑客文章546

在本系列产品的之一部分中,大家逐渐深入分析 Mimikatz。这一念头非常简单便是为了更好地表明 Mimikatz 是怎样使出它的魔法的及其表明怎样开发设计自定的和特殊的重力梯度。 假如你都还没机遇去一探究竟,请先移景到本系列产品文0章的之一部分。 下面,在本文中,大家将回望一下提升微软公司增加的避免 凭证转储的安全管理(如 Credential Guard)的一种好 *** 并获取受害人提供的凭证。 自然,这也是 Mimikatz 适用 SSP 的缘故。

安全性适用提供程序流程(Security Support Provider,SSP)是一个 DLL,它容许开发者公布在一些身份认证和受权恶性事件期内启用的很多回调。 如同我们在上一篇文章中见到的,WDigest 提供了应用这一准确的插口开展凭证缓存文件的工作能力。

Mimikatz 提供了一些不一样的技术性来利用 SSP。 更先是"Mimilib",它是一个含有各种各样作用的 DLL,在其中一个便是完成 Security Support Provider 插口。 次之,也有"memssp",它是此外一种趣味的完成同样总体目标的 *** ,但它取决于运行内存补丁下载,而不是根据载入一个 DLL 完成。

使我们从载入 SSP 的传统式方式——Mimilib 逐渐生命之初。

留意: 如同在上一篇文章中提及的,本文很多应用了 Mimikatz 的源码及其开发者花销的成千上万時间。 谢谢 Mimikatz, Benjamin Delpy 和 Vincent Le Toux 优异的科学研究工作中。

Mimilib

Mimilib 很象变色龙,适用 ServerLevelPluginDll 根据 RPC、DHCP *** 服务器 Callout 开展横着挪动,乃至还能够做为 WinDBG 的拓展。 殊不知,出自于大家的目地,大家将科学研究这一库怎样做为一个 SSP,为 *** 攻击提供一种方式来查找由受害人键入的凭证。

Mimilib 的原理是利用 SSP 插口应用明文凭证启用Security Support Provider。 这代表着凭证被以明文的 *** 露出。 Mimilib 的 SSP 作用的通道点能够在 kssp.c 文档中寻找,关键的通道是 kssp_SpLsaModeInitialize。 该涵数根据 mimilib.def 这一界定文档从 DLL 中导出来名叫 SpLsaModeInitialize 的涵数,并由 lsass 过程用以复位一个包括好几个回调的建筑结构。

以 Mimilib 为例子,申请注册的回调 *** 以下:

· SpInitialize – 用以复位 SSP 并提供函数指针目录

· SpShutDown – 在卸载掉 SSP 时提供释放出来資源的机遇

· SpGetInfoFn – 提供关于 SSP 的信息内容,包含版本号、名字和叙述

· SpAcceptCredentials – 接受 LSA 传送的明文凭证,并由 SSP 开展缓存文件

自然,假如你阅读文章了上一篇文章,你能发觉 WDigest 应用 SpAcceptCredentials 来缓存文件凭证,因而,这造成造成了大家很多年来一直在“享受”的系统漏洞。

伴随着每一个回调的添充,而且了解系统软件将根据一个明文凭证的副原本启用 SpAcceptCredentials,以后 Mimilib 所必须做的便是按提供的 *** 储存凭证,这恰好是 kssp_SpAcceptCredentials 所做的事儿:

NTSTATUS NTAPI kssp_SpAcceptCredentials(SECURITY_LOGON_TYPE LogonType, PUNICODE_STRING AccountName, PSECPKG_PRIMARY_CRED PrimaryCredentials, PSECPKG_SUPPLEMENTAL_CRED SupplementalCredentials)

{

FILE *kssp_logfile;

#pragma warning(push)

#pragma warning(disable:4996)

if(kssp_logfile=_wfopen(L"kiwissp.log", L"a"))

#pragma warning(pop)

{

klog(kssp_logfile, L"[\bx:\bx][\bx]%wZ\\\\%wZ (%wZ) ", PrimaryCredentials->LogonId.HighPart, PrimaryCredentials->LogonId.LowPart, LogonType, &PrimaryCredentials->DomainName, &PrimaryCredentials->DownlevelName, AccountName);

klog_password(kssp_logfile, &PrimaryCredentials->Password);

klog(kssp_logfile, L"

");

fclose(kssp_logfile);

}

return STATUS_SUCCESS;

}

如今,我不会觉得 mimikatz.exe 提供了适用立即载入 Mimilib 的作用,可是大家从微软公司的文本文档中能够了解,根据加上注册表文件键和并重启,就可以加上 SSP。

殊不知,历经一番检索,我发现这条文章:

推文的意思自然是在说对 API AddSecurityPackage 的引入,这事实上是@mattifestation 撰写的 Install-SSP.ps1 脚本 *** 中载入 SSP 所应用的方式。 这代表着,事实上我们可以不在重启系统软件的状况下载入 Mimilib。 载入后,大家发觉每一次获取凭证的试着都是会造成凭证被载入到 kiwissp.log 文档中:

如今,在完善的自然环境中应用 SSP 有一个缺陷,那便是 SSP 务必在 lsass 过程中开展申请注册。 这促使防御者在尝试追踪故意主题活动时能够应用很多的产品工件,不论是为引入 SSP 而建立的注册表项,還是 lsass 过程中的某一个异常的 DLL 控制模块。 大家还能够见到 SSP 公布了名字和注解这两个字段名,能够应用 EnumerateSecurityPackages 涵数开展枚举类型,以下:

#define SECURITY_WIN32

#include

#include

#include

int main(int argc, char **argv){

ULONG packageCount=0;

PSecPkgInfoA packages;

if (EnumerateSecurityPackagesA(&packageCount, &packages)==SEC_E_OK){

for (int i=0; i

如同我们可以在下面所见到的,輸出数据显示了每一个已载入的 SSP 的信息内容,这代表着 Mimilib 很有可能较为醒目:

那麼,大家该怎么做才可以防止一眼就看得出 Mimilib 呢? 不言而喻的作法是改动 Mimilib 的 SpGetInfo 回调所回到的叙述,这一回调被硬编码为以下內容:

相关文章

家里拆迁都写的我歌名(房子被拆时的歌曲)

家里拆迁都写的我歌名(房子被拆时的歌曲)

本文导读目录: 1、《rap广州》的歌词 2、刚好轮到家里拆迁的,是那首歌里的歌词 3、求一首歌名 4、九几年家里拆迁,房产证上写的我哥哥的名字,但房子是我本人出钱购买的, 5、问一首...

拔横生智齿多少钱,哪种横生智齿最难拔

  看情况,拔阻生齿一颗基本比拔普通牙多200块。五月七月个拔了左侧上下智齿,因为我下颚两颗都横生了。从拍片到拔牙到拔牙后的药钱什么的,大概花了700多,这还。   您好,您的牙片看到了,那智齿的牙位...

大王椰生态板怎么样?大王椰板材所有价格表

大王椰生态板怎么样?大王椰板材所有价格表

板材是家居装修中必不可少的材料,今天我们就来看一下大王椰板材质量好吗,大王椰板材最新报价。 大王椰板材质量好吗 首先大王椰生态板有着耐洗的性能,在这一点上,就注定了大王椰生态板的使用寿命和耐用...

七彩部落:茶旅一海南海花岛体织就美丽乡村小康梦

  七彩部落:茶旅一体织就美丽乡村小康梦   央视网消息(记者 张莉 杨兆荃):中国要美,农村必须美,而美的内涵里最不可或缺的就是色彩。在贵州省湄潭县湄江街道金花村,山峦起伏,云雾缭绕,隐约而现一座...

为什么电脑老是自动重启(电脑莫名反复重启怎么办)

为什么电脑老是自动重启(电脑莫名反复重启怎么办)

电脑频沉重启怎么回事呢?电脑给我们带来利便的同时也会给我们带来许多问题,有些网友就反应电脑开机不到10分钟就会自动重启,可是又不知道是什么原因造成的,极端狐疑。针对这种环境,小编给各人带来了电脑呈现自...

微信删除聊天记录恢复

手机微信假如未对微信聊天记录开展备份数据或转移得话,微信删除了微信聊天记录是没法修复的,由于微信聊天记录涉及到客户隐私保护,微信服务器不容易储存客户一切微信聊天记录。 知名品牌型号规格:华为公司P40...