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

相关推荐
夏树同学10 分钟前
Newtonsoft技巧/与System.Text.Json的对比
.net
努力的lpp14 分钟前
2024小迪安全课程第四节复习笔记
笔记·安全
葡萄星球25 分钟前
win11右键菜单一步改成win10样式
windows
桌面运维家1 小时前
Windows/Linux云桌面:高校VDisk方案部署指南
linux·运维·windows
菜根Sec1 小时前
网络安全冬天怎么过
安全·web安全·网络安全·网络安全公司
马士兵教育2 小时前
RocketMQ如何进行性能调优?
服务器·windows·rocketmq
GISer_Jing2 小时前
阿里开源纯前端浏览器自动化 PageAgent,[特殊字符] 浏览器自动化变天啦?
前端·人工智能·自动化·aigc·交互
fundoit2 小时前
Windows 下 YOLO 环境搭建与使用完整指南
windows·yolo
剑海风云3 小时前
JDK 26之安全增强
java·开发语言·安全·jdk26
喵喵爱自由3 小时前
Docker容器共享宿主机-安全网络
网络·安全·docker