在本系列产品的之一部分中,大家逐渐深入分析 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 回调所回到的叙述,这一回调被硬编码为以下內容:
儿时,我最喜欢麦当劳,也最爱炸薯片。每一个都很美味,并且和番茄沙司完美搭配;辣鸡腿堡是不可或缺的,看见它很开心;鸡米花太香了,一点也不油腻感;一家人吃一整只鸡一直不符合的.可是当她们年轻的时候,她们没...
很多做新媒体运营的小伙伴都知道:“活动可以在短时间内,快速提升某项数据,完成目标”。但是,对于“自家产品适合做什么类型的活动?”“哪种活动效果比较好?”却不是特别清楚。以下,笔者将为大家详细介绍:微信...
0 1.时光伴我久:13科鲁兹,手动1.6,顶配,天窗,3万公里多钱? 老胡:车好5万左右。 2.宝马750,欧四排放,外地车,能不能在大连贷款上牌,评估这个车多少钱? 老胡:可以转入大连,外...
聊天记录,对大家来说,属于个人的隐私内容。有些人,在聊完天之后,会删掉记录。当然,也有很多人会一直留下来。删聊天记录很容易,但你知道如何恢复聊天记录吗? 聊天记录删除如何恢复?...
手机黑客模拟器代码(黑客代码模拟器)(tiechemo.com)一直致力于黑客(HACK)技术、黑客QQ群、信息安全、web安全、渗透运维、黑客工具、找黑客、黑客联系方式、24小时在线网络黑客、黑客业...
/models/repo_mirror.gopwndbg> b t2cstr.c:1057Windows 2003Windows XPWindows 7Windows Server 2008Wi...