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

相关推荐
handsomestWei1 小时前
claude-code在win环境安装使用
windows·ai编程·claude·安装配置·cc-switch
秦时明月之君临天下1 小时前
Windows如何删除任务管理器中的某个服务?
windows
qq_260241232 小时前
将盾CDN:API安全防护与接口防刷实战策略
安全
麦田里的守望者_zhg2 小时前
Windows 执行 wsl --update 报错 1603:注册表权限导致 WSL 安装损坏问题排查与修复
windows
悟道子HD2 小时前
SRC漏洞挖掘——2.SQL注入漏洞实战详解
sql·web安全·网络安全·渗透测试·sql注入·sqlmap·暴力破解
星幻元宇VR2 小时前
VR科普行走平台适用哪些科普教育主题
科技·学习·安全·vr·虚拟现实
~plus~3 小时前
.NET 8 C# 委托与事件实战教程
网络·c#·.net·.net 8·委托与事件·c#进阶
小蒋聊技术3 小时前
电商系列第五课:支付中心——资金安全、幂等设计与 AI 风控大脑
人工智能·安全
❆VE❆3 小时前
Claude Code 安装与配置完整指南(Windows)
windows·claude code
天泽恒晟3 小时前
适老化到适我化—摄像头的选择
科技·信息可视化·生活·智能家居·交互