探寻Mimikatz神器之SSP

访客4年前黑客文章540

在本系列产品的之一部分中,大家逐渐深入分析 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 回调所回到的叙述,这一回调被硬编码为以下內容:

相关文章

美国新冠肺炎确诊病例汪大东和雷婷超1240万例 住院人数再创纪

  据美国约翰斯·霍普金斯大学统计数据,截至23日21时,美国新冠肺炎确诊病例超过1240.4万人,死亡257560人。其中得克萨斯州确诊115.9万人,加利福尼亚州确诊112万人,佛罗里达州确诊94...

2018年黑客比赛(黑客 比赛)

2018年黑客比赛(黑客 比赛)

本文目录一览: 1、比赛受到了很多科技巨头的欢迎,黑客马拉松到底是谁? 2、网络安全大赛的简称是什么? 3、今年的世界黑客大赛到底是哪个中国团队得了冠军啊?360还是keen? 4、创办黑...

在家无聊做什么能赚钱(教你三招!)

在家无聊做什么能赚钱(教你三招!)

现在是高科技时代,慢慢靠近的2018年,也是告诉发展的时代,有很多赚钱的方式不用东奔西跑,在家里就可以赚钱,今天小编就给您推荐8个可以在家赚钱的方法。 1、开直播,做网红 回望2016年,是网...

电影《新洗冤录》杀青 阮健恒执导,欧阳震华邵

1月23日,由崔炎龙监制、阮健恒执导、严庆编剧,欧阳震华、邵芸、吕宇、赵一贝、常海波主演的电影《新洗冤录》在横店杀青。该片凭借豪华的演员阵容、实力强劲的幕后班底和观众熟知的题材,在拍摄期间便引发了各界...

淘宝运费模板怎么设置?零基础开淘宝就这么简

淘宝运费模板怎么设置?零基础开淘宝就这么简

问:淘宝运费如何计算及设置?请教各位商家大佬,如果宝贝包邮,但不包含海外及港澳台,海外及港澳台运费如何设置及计算?补充一下:我的宝贝是不想卖海外,因为运费不划算,太复杂了。 答:创建自定义模板,设置...

余额宝收益率(为什么余额宝年化收益率低于2

余额宝收益率(为什么余额宝年化收益率低于2

余额宝收益率(为什么余额宝年化收益率低于2.5%)余额宝现在七日年化收益率为2.6%,较去年最高4.2%水平时已经下跌了1.6%,十万元本金放在里面一年下来减少收益1600元。 余额宝七日年化收益率...