.NET 通过模块和驱动收集本地EDR的工具

01阅读须知

此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他方面

02基本介绍

Sharp4ChkEdr.exe 是一款专门用于检查本地主机上运行的EDR的工具。它会检测本地正在运行的进程、加载的 DLL、服务、驱动程序等,识别和标记出与防御性产品相关的模块,帮助内网渗透时确定是否存在监控或防护产品。

03使用方法

为了获取最全面的收集结果,建议以管理员身份运行 Sharp4ChkEdr.exe。管理员权限能够帮助工具访问更多系统信息,避免权限限制带来的数据缺失。

04原理解析

首先,工具使用 WMI 查询所有正在运行的进程,遍历每个进程并调用 CheckProcess 方法来检查是否与已知防护进程匹配,进而生成摘要信息

复制代码
var processList = new ManagementObjectSearcher("Select * From Win32_Process").Get();
string summary = "";
foreach (var process in processList)
{
    summary += CheckProcess(process);
}
if (string.IsNullOrEmpty(summary))
{
    Console.WriteLine("[+] No suspicious processes found\n");
    return "\n[+] No suspicious processes found\n";
}

接着,工具会检查当前进程中加载的所有模块,特别是与安全产品相关的 DLL,如 amsi.dll 和 MpOav.dll,并通过 CheckModule 方法记录可疑模块,具体代码如下所示。

复制代码
foreach (ProcessModule module in myproc.Modules)
{
    summary += CheckModule(module);
}
if (string.IsNullOrEmpty(summary))
{
    Console.WriteLine("[+] No suspicious modules found in your process\n");
    return "\n[+] No suspicious modules found in your process\n";
}

随后,通过调用 EnumDeviceDrivers 和 GetSizeOfDriversArray 函数,工具会列出系统中已加载的所有驱动程序,尝试获取每个驱动的元数据信息并检查是否匹配安全防护模块。

复制代码
uint numberOfDrivers;
UIntPtr[] driverAddresses;
uint sizeOfDriverArrayInBytes = GetSizeOfDriversArray();
if (sizeOfDriverArrayInBytes == 0)
{
    Console.WriteLine("[-] Error getting driver array size");
    return "\n[-] Driver checks errored\n";
}
uint sizeOfOneDriverAddress = (uint)UIntPtr.Size;
numberOfDrivers = sizeOfDriverArrayInBytes / sizeOfOneDriverAddress;
driverAddresses = new UIntPtr[numberOfDrivers];
bool success = EnumDeviceDrivers(driverAddresses, sizeOfDriverArrayInBytes, out sizeOfDriverArrayInBytes);

工具输出中详细列出了检测到的可疑模块,包括文件路径、描述、产品版本等信息。以 amsi.dll 为例,它被识别为防护软件模块,可能会影响进程的正常执行。

综上,Sharp4ChkEdr.exe 是一款全面的本地主机EDR检测工具,能够有效识别系统中潜在的防护模块。通过检查进程、DLL、服务、驱动等多层级信息,工具为内网渗透环境下提供了便捷的环境分析功能。

05**.NET安全知识库**

星球文化20+个专题栏目涵盖了点、线、面、体等知识面!其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等。

相关推荐
缘友一世几秒前
网安系列【4】之OWASP与OWASP Top 10:Web安全入门指南
安全·web安全
hi星尘28 分钟前
深度解析:Java内部类与外部类的交互机制
java·开发语言·交互
HMS Core1 小时前
HarmonyOS免密认证方案 助力应用登录安全升级
安全·华为·harmonyos
哈市雪花2 小时前
相机:Camera原理讲解(使用OpenGL+QT开发三维CAD)
qt·3d·交互·相机·图形学·opengl·视角
Gauss松鼠会2 小时前
GaussDB权限管理:从RBAC到精细化控制的企业级安全实践
大数据·数据库·安全·database·gaussdb
唐青枫3 小时前
C#.NET log4net 详解
c#·.net
热爱生活的猴子3 小时前
Poetry 在 Linux 和 Windows 系统中的安装步骤
linux·运维·windows
小赖同学啊4 小时前
基于区块链的物联网(IoT)安全通信与数据共享的典型实例
物联网·安全·区块链
just小千5 小时前
重学React(二):添加交互
javascript·react.js·交互
R-sz6 小时前
java流式计算 获取全量树形数据,非懒加载树,递归找儿
java·开发语言·windows