跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

配置附加LSA保护监视密码筛选器DLL


Tenfk

推荐的帖子

0x00 前言

针对wyzzoo在《Password Filter DLL在渗透测试中的应用》文章中的回复,我想提请大家注意在较高版本系统上考虑的问题,地址如下:

https://github . com/3g student/feedback/issues/13 # issue comment-371694931

于是我研究了这部分,并把它写成文字。

0x01 简介

本文将介绍以下内容:

如何配置额外的LSA保护

如何获得监测结果

补充一个密码过滤器DLL的使用思路

使用附加LSA保护的检测效果

0x02 配置额外的LSA保护

参考官方文件:

https://docs . Microsoft . com/en-us/windows-server/security/credentials-protection-and-management/configuring-additional-LSA-protection

Windows8.1系统启动,为LSA提供额外保护,防止未受保护的进程读取内存和代码注入。

保护方法:

要求加载到LSA的任何插件都要使用Microsoft signature进行数字签名。

具体来说,数字签名是指目录签名,签名需要满足WHQL认证。

参考资料:

https://docs . Microsoft . com/zh-cn/windows-硬件/驱动程序/install/whql-release-signature

有一篇关于目录签名的文章:《CAT文件数字签名使用技巧》。

测试系统:Win8.1 x64

配置方法:

1、操作系统需要满足条件:

Win8.1或更新的系统

2、修改注册表

在注册表位置hklm \ software \ Microsoft \ windows nt \ current version \ image file execution options \ lsass.exe,创建一个值为0000008的新DWORD项AuditLevel。

相应的cmd命令如下:

REG ADD ' HKLM \软件\ Microsoft \ Windows NT \当前版本\映像文件执行选项\ lsass . exe '/v ' audit level '/t REG _ DWORD/d ' 00000008 '/f

3、重启系统

0x03 获得监控结果

检查日志事件3065和事件3066。

事件3065:此事件记录代码完整性检查确定进程(通常是lsass.exe)试图加载不符合共享段安全要求的特定驱动程序。但是,根据系统策略,允许加载图像。

事件3066:此事件记录代码完整性检查确定某个进程(通常是lsass.exe)试图加载不符合Microsoft签名级别要求的特定驱动程序。但是,根据系统策略,允许加载图像。

位置:应用程序和服务日志\ Microsoft \ Windows \代码完整性

可以记录不合格的dll,但不妨碍dll的加载,如下图所示。

2-1.png

通过命令行查询日志事件3065和事件3066:

获取日志分类列表:

wevtutil el 1.txt

对应的CodeIntegrity是Microsoft-Windows-Code Integrity/Operational。

查找事件3065和事件3066:

wevtutil QE Microsoft-Windows-code integrity/Operational/rd:true/f:text/q:“*[system/event id=3065和3066]”

如下图

2-2.png

补充:

删除日志代码完整性:

wevtutil cl ' Microsoft-Windows-代码完整性/操作性'

0x04 补充一个Password Filter DLL的利用思路——利用Long UNC文件名欺骗实现DLL的“隐藏”

详情见文章《Catalog签名伪造——Long UNC文件名欺骗》。

1、将dll命名为Long UNC文件名格式,保存在%windir%\system32\下

Lsass.exe进程默认加载scecli.dll,所以它选择将dll伪装成scecli.dll。

命令行:

键入Win32Project3.dll ' \ \?\ C:\ windows \ system32 \ SCE CLI . dll '

注:

scecli.dll的名字后面有一个空格。

2、获得该dll的短文件名

命令行:

dir /x scecli*。动态链接库

获取短文件名SCECLI~1。如下图所示

3-1.png

3、修改注册表键值

读取键值:

注册查询' HKLM \系统\当前控制集\控制\Lsa' /v '通知包'

添加dll:

REG ADD ' HKLM \系统\当前控制集\控制\Lsa' /v '通知包'/t REG _ MULTI _ SZ/d ' SCE CLI \ 0 SCE CLI ~ 1。DLL' /f

4、重启

使用进程资源管理器查看lsass进程加载的dll。

加载两个相同但属性不同的scecli.dll,如下图所示。

3-2.png

5、检测

成功检测到事件3066,如下图所示

3-3.png

0x05 补充

1.在密码筛选器DLL中添加一个伪造的Microsoft Authenticode签名,并修改证书验证机制使其生效,但它仍然无法绕过额外LSA保护的监控,因为密码筛选器DLL需要一个合法的目录签名,而不是Authenticode签名。

2.我为密码过滤器DLL做了一个目录签名,并将其添加到系统的安全目录数据库中,但我仍然无法绕过额外LSA保护的监控。

0x06 小结

介绍了配置附加LSA保护来监控密码过滤器DLL的方法和检测效果。如果密码筛选器DLL未经合法目录签名,系统可以成功检测到它,但默认情况下不会阻止加载。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...