发布网友 发布时间:2024-12-17 11:31
共1个回答
热心网友 时间:8分钟前
在渗透测试中,横向移动感染和权限提升是关键步骤。本文将介绍一种远程读取lsass转储内容的新技术,以高效提取凭据,减少提取过程中的延迟和检测。
lsass.exe作为微软Windows系统的重要进程,用于执行本地安全和登陆策略。结束该进程将导致未知错误。此外,lsass.exe也可能被病毒如Windang.worm、irc.ratsou.b、Webus.B、MyDoom.L、Randex.AR、Nimos.worm等创建和传播。
CrackMapExec是一款自动化AD网络安全评估任务的后渗透利用工具。它通过AD内置功能/协议运作,规避大部分终端防护/IDS/IPS解决方案。CrackMapExec由Byt3bl33d3r开发和维护,旨在异步执行操作,允许使用域或本地帐户以及密码或LM-NT哈希在远程计算机上进行身份验证。
CrackMapExec的模块化设计允许创建自定义模块,在登录时执行特定操作。这些模块已包含多种功能,如DNS信息枚举、Chrome凭据提取、已安装防病毒软件信息收集等。此外,BloodHound构建器和在“组策略首选项”中查找凭据的模块也已实现。
Mimikatz模块尤其有效,它能够在lsass内存中搜索凭据。CrackMapExec远程运行Mimikatz,从lsass内存或本地安全权限子系统提取凭据。lsass包含所有安全服务提供者(SSP),负责管理各种身份验证数据包。出于实际原因,用户输入的凭据通常保存在这些SSP中,以避免用户在几秒或几分钟后再次输入。
然而,由于大多数杀毒软件已检测到Mimikatz的存在或执行,并阻止其运行,CrackMapExec模块会因进程被杀死而无法获取凭证。
为解决此问题,过去常用手动方式使用Procdump工具。Procdump是Sysinternals套件中的一个工具,用于转储正在运行的进程内存。它能够附加到进程,读取其内存并将其写入文件。
Mimikatz在lsass内存中寻找凭证。因此,可以将lsass内存转储到主机上,在本地下载转储,并使用Mimikatz提取凭据。由于Procdump是合法的可执行文件,不会被视为恶意软件,可以用于转储lsass。
通过使用套件impacket中的smbclient.py将procdump发送到服务器,执行procdump创建lsass转储,然后将转储文件下载到攻击者的主机上,并删除远程主机上的跟踪记录。使用Mimikatz检索凭证,包括加载内存转储和检索秘密。
这种方法非常实用,因为它不会产生太多噪音,并且仅在目标主机上使用合法的可执行文件。然而,存在一些局限性,如Linux与Windows之间的兼容性问题以及Windows Defender对转储过程的。
为解决Linux兼容性问题,Skelsec的Pypykatz项目提供了Mimikatz的部分实现,允许在Linux计算机上执行操作。pypykatz用于从转储中提取用户名、密码或NT哈希。通过提供lsass PID,Windows Defender不再阻止转储过程,从而允许使用命令tasklist查找PID后,使用procdump执行转储。
尽管转储文件大小存在,但通过使用Pypykatz远程读取和分析lsass转储,而无需下载整个转储文件,可以显著提高效率。优化了远程读取和分析过程,减少了转储文件的下载时间,使得提取身份验证秘密的时间缩短到几乎忽略不计。
此外,本文还介绍了一种利用comsvcs.dll功能转储lsass进程的技巧,作为替代procdump的方法。comsvcs.dll在进程崩溃时转储进程内存,仅需在SYSTEM权限下执行,无需上传procdump。
最后,文中提到的lsassy工具结合了DLL技术或Procdump技术,远程转储lsass,同时CrackMapExec模块允许通过在远程主机上执行lsass转储并使用lsassy提取登录用户的凭据,从而自动化整个过程。结合BloodHound收集的数据,还可以检测具有攻击路径的帐户成为域管理员。
通过本文的研究,对Python版本兼容性、代码整洁性和维护性有了更深的理解,也找到了将这些更改集成到CrackMapExec的途径。现在,有了一个高效且快速的工具,希望对渗透测试工作有所帮助。