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

相关推荐
无障碍研究院6 小时前
2026TADC|圆桌对话:出海无障碍合规
安全·web安全
持敬chijing7 小时前
白盒测试与代码审计-js登录逆向实战
javascript·网络·安全·web安全·网络安全·网络攻击模型
无障碍研究院7 小时前
2026TADC|圆桌对话:软/硬件无障碍的过去、现在、未来
安全
乔旭伟7 小时前
Linux 服务器安全加固实战:SSH、防火墙、补丁与入侵排查
linux·服务器·安全
裕晟资质规划8 小时前
三类涉密资质延续时限差异分析:军工60日与集成印制3个月的边界
java·服务器·前端·网络·安全
泡海椒9 小时前
JQuick-SQL 快速开始:注册内存表并执行查询
数据库·windows·sql
许彰午9 小时前
模拟实现堡垒机
安全·系统安全
Highcharts.js9 小时前
Highcharts 发布16项最新安全公告
人工智能·安全·性能优化·highcharts·可视化图表
救救孩子把10 小时前
AI面试八股文-14_14-MCP-Skill-Function Calling
人工智能·安全·面试·职场和发展·推理·mcp·functioncall
钱栈up11 小时前
耳机音效不对,我顺手查了系统更新,结果挖出个崩溃了整天的服务
windows·shell