在使用getsystem的技术1:服务-命名管道模拟后,Meterpreter如何作为系统执行cmd命令

问题描述 投票:0回答:1

我试图用getsystem's]技术1:Service - Named Pipe Impersonation (In Memory/Admin)模拟该帐户(NT AUTHORITY \ System)的安全上下文后,如何确定Meterpreter如何将cmd命令作为系统执行。

为此,我编写了一个小的C#代码,该代码创建了一个命名管道A,生成了一个作为System运行的新服务B,然后强制该服务B在A上写入一些数据,这使我可以通过client impersonation funcionality for named pipes

现在,模拟完成后,我要做的是一个进程,该进程的主令牌指向本地管理员用户

(正在运行c#代码的用户,假设它是用户Administrator )和该进程的一个线程,并带有指向系统帐户的模拟令牌。由模拟系统的线程执行的活动显然在模拟帐户的安全性上下文下运行,但是如果我想执行cmd命令(比方说像whoami这样的琐碎命令),则需要产生新进程来运行cmd.exe。那时,新进程的主令牌是我的初始进程的主令牌,而不是线程模拟系统的模拟令牌,因此命令whoami的输出是Administrator而不是System

我猜Meterpreter并未使用CreateProcessAsUser,因为A)它仅具有模拟令牌,而没有主要令牌(有任何方法可以将模拟令牌转换为主要令牌),以及B)为了获得此特权,需要一些特殊特权要使用该功能,尽管我已经能够通过Meterpreter使用此技术来提升我的特权,但我已经检查了我的计算机的用户均未授予该特权。

所以这引出了我的主要问题:在使用getsystem的技术1后,Meterpreter如何将cmd命令作为系统执行?

我正在尝试使用getsystem的技术模拟该帐户(NT AUTHORITY \ System)的安全上下文后,Meterpreter如何将cmd命令作为系统执行,这是系统的:服务-...

c# windows access-token named-pipes impersonation
1个回答
0
投票
尽管您需要

SE_INCREASE_QUOTA_NAME

© www.soinside.com 2019 - 2024. All rights reserved.