.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#工具库等等。

相关推荐
David.K2 分钟前
记录:win10环境手动编译tcl源码过程
windows·环境·win10·tcl·tcl环境搭建
民乐团扒谱机16 分钟前
实验室安全教育与管理平台学习记录(九)消防安全
学习·安全·实验室·常识·火灾·防护·救护
一袋米扛几楼9831 分钟前
【软件安全】什么是EAX(Extended Accumulator Register,扩展累加寄存器)?
安全
kyle~1 小时前
机器视觉---Intel RealSense SDK 2.0 开发流程
运维·c++·windows·深度相机·intel realsense
携欢1 小时前
PortSwigger靶场之盲 SSRF(服务器端请求伪造)漏洞通关秘籍
前端·网络·安全·web安全
豆沙粽子好吃嘛!1 小时前
windows环境下g++无输出的解决方案
windows
一叶龙洲2 小时前
安装Win11+Ubuntu25.10双系统遇到的问题
windows·ubuntu
双河子思2 小时前
Visual Studio 编程工程设置
ide·windows·visual studio
憧憬成为原神糕手2 小时前
传输层协议 TCP 三次握手/四次挥手 TIME_WAIT
网络·tcp/ip·安全
Aevget2 小时前
界面控件DevExpress WPF v25.1新版亮点:AI功能的全面升级
c#·.net·wpf·界面控件·devexpress·ui开发