首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Windows -使用CreateProcessWithTokenW在会话0中创建进程

基础概念

CreateProcessWithTokenW 是 Windows API 中的一个函数,用于使用指定的访问令牌创建新进程及其主线程。这个函数允许你在一个特定的安全上下文中启动进程,这在需要提升权限或在不同用户会话中运行进程时非常有用。

相关优势

  1. 权限提升:可以使用高权限用户的令牌来启动进程,这在某些需要管理员权限的操作中非常有用。
  2. 会话隔离:可以在不同的用户会话中启动进程,这在需要隔离环境或特定会话上下文的应用中非常有用。
  3. 安全性:通过使用特定的访问令牌,可以更精细地控制进程的权限和访问范围。

类型

CreateProcessWithTokenW 是一个 Win32 API 函数,属于进程创建和管理类别。

应用场景

  1. 服务应用程序:在服务中启动用户级别的应用程序,通常需要在会话0之外运行。
  2. 权限管理:在需要管理员权限的应用中,使用普通用户的身份启动进程,然后提升权限。
  3. 多用户环境:在不同用户会话中运行特定的应用程序,以满足隔离和安全需求。

遇到的问题及解决方法

问题:在会话0中创建进程失败

原因

  • 会话0是系统会话,通常用于运行系统服务和驱动程序。普通应用程序通常无法直接在会话0中创建进程。
  • 权限不足:即使使用了高权限用户的令牌,也可能因为其他安全策略限制而失败。

解决方法

  1. 使用 CreateProcessAsUser:尝试使用 CreateProcessAsUser 函数,该函数允许你指定用户会话来创建进程。
  2. 使用 CreateProcessAsUser:尝试使用 CreateProcessAsUser 函数,该函数允许你指定用户会话来创建进程。
  3. 调整权限和安全策略:确保你的应用程序有足够的权限来在目标会话中创建进程。可能需要调整系统安全策略或使用 AdjustTokenPrivileges 函数来提升权限。
  4. 使用 DuplicateTokenEx:如果需要跨会话创建进程,可以先复制一个用户的令牌,然后使用 CreateProcessWithTokenW 在目标会话中创建进程。
  5. 使用 DuplicateTokenEx:如果需要跨会话创建进程,可以先复制一个用户的令牌,然后使用 CreateProcessWithTokenW 在目标会话中创建进程。

参考链接

希望这些信息对你有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Permission elevation

msf的模块,配置好会话运行即可: post/windows/gather/enum\_unattend 滥用令牌提取 访问令牌 当用户登录系统时,系统都会为其创建访问令牌,里面包含登录进程返回的...因此我们现在的思路如下: 使用OpenProcess函数打开要窃取的进程,获得句柄 使用OpenProcesToken函数打开与进程关联的访问令牌 DuplicateTokenEx复制其令牌 CreateProcessWithTokenW...使用新的令牌创建进程 这里测试从administrator窃取system进程的令牌,打开一个system权限的cmd: 我们这里窃取winlogon进程的令牌,来打开一个新的cmd窗口。...启用了 UAC 后,所有用户帐户(包括管理帐户)都将使用标准用户权限运行,因此当管理组中的用户需要以管理员身份运行某程序时,Windows就提弹出提示。...但是系统检查可信任目录的时候,会自动去除目录的空格,因此我们可创建一个C:\Windows \System32的目录来绕过可信性目录的检查(因为原始的目录需要最高的权限),然后将白名单文件复制到创建的目录中

94140

Windows 10上使用Hyper-V创建VM

如果您运行的是Windows 10并且您的系统硬件支持Hyper-V,那么你可以创建一个独立的存储空间来部署自己的虚拟机并使用它。您可以创建一个或多个虚拟机并同时运行它们。...本博文中,我们将详细讨论Windows 10上使用Hyper-V管理器创建虚拟机的过程。 我们现在假设您的系统支持硬件虚拟化(Hyper-V),并且您已经安装了Hyper-V管理器。...如果您还没有安装它,请从控制面板打开“Windows功能”找到它并安装。现在要开始创建我们的第一个虚拟机,请打开Hyper-V管理器。...虚拟机的名称将显示Hyper-V管理器仪表板中,以便您可以轻松识别它。您可以选择一个合适的位置来托管虚拟机,或者使用默认的位置。准备就绪后,点击“下一步”继续。...一旦虚拟机被创建,它将被列Hyper-V管理器/仪表板的虚拟机部分下,如下图所示: 正如上面的分步过程中所讨论的,这个过程将在您的Windows 10系统上创建一个新的虚拟机。

3.3K90
  • Windows 10上使用Hyper-V创建VM

    如果您运行的是Windows 10并且系统硬件支持Hyper-V,则可以创建一个独立的存储空间来部署自己的虚拟机并使用它。您可以同时创建一个或多个虚拟机并运行它们。...本博文中,我们将详细讨论Windows 10上使用Hyper-V管理器创建虚拟机的过程。...如果您没有安装它,请从控制面板打开“Windows功能”并安装它。要开始创建我们的第一个虚拟机,打开Hyper-V管理器。...imgmax=800] 以下步骤中,您将被允许为该虚拟机提供名称和位置。该名称将显示Hyper-V管理器仪表板中,以便您可以轻松识别它。选择一个合适的位置来托管虚拟机,或者使用默认的位置。...imgmax=800] 在此步骤中,您可以虚拟机中安装操作系统。如果您有操作系统安装介质的ISO / DVD镜像,请选择该镜像,或者选择“稍后安装操作系统”创建虚拟机之后进行安装。

    1.8K70

    使用进程监视器 Windows 中查找权限提升漏洞

    Windows 系统上的非特权用户可以系统根目录之外创建子目录。这将是一个反复出现的主题,所以请记住这一点。 非特权命令提示符下,让我们看看我们能做什么: 成功!...POSIX 路径 如果应用程序 Windows 机器上使用 POSIX 样式路径,则该路径被规范化为 Windows 样式路径。...例如,如果 Windows 应用程序尝试访问 /usr/local/ 目录,则路径将被解释为 C:\usr\local\ 。如上所述,这是非特权用户可以 Windows创建的路径。...应用到正在使用的路径的意外 ACL 大多数情况下,应用程序访问的意外路径都可以被利用,因为一个简单的事实:非特权用户可以 Windows 系统根目录之外创建子目录。...特权进程使用的任何 用户可写文件都可能引入特权提升漏洞。例如,这是一个流行的程序,它检查用户可创建的文本文件以指导其特权自动更新机制。

    2K10

    如何使用Hyper-VWindows 10上创建Ubuntu虚拟机

    作为这种将Linux从敌人变成朋友的一部分,微软允许用户Windows 10之上运行Linux,使用已经非常著名的Windows Linux子系统。...从本周开始,使用Hyper-V创建一个Ubuntu虚拟机实际上是可能的,而这一切只需要几分钟。 首先,Ubuntu虚拟机允许您在Windows 10上运行Linux,而不必离开操作系统。...在此之前,您应该知道的是,为了具有Hyper-V的Windows 10上创建虚拟机,您需要在操作系统上安装此组件。 Hyper-V Manager是Hyper-V软件包的一部分。...有多种方法可以Hyper-V管理器中创建Ubuntu虚拟机,但我们将使用最简单的方法,它使用一系列预定义的设置来完成该过程。...LTS Ubuntu 19.04 Windows 10 开发环境 选择要使用的Ubuntu版本,然后单击“创建虚拟机”选项。

    2.4K30

    域内令牌窃取

    有四种不同的值指示用户是否经过身份验证,是否可以模拟他们以及如何: SecurityAnonymous:该进程无法识别系统上的用户,因此无法模拟他们(大多数相关线程是使用匿名绑定进行非交互式日志记录后获得的...:用户已通过身份验证,可以本地系统和远程系统上进行模拟 令牌的所有者,创建它的人 令牌关联的用户 可使用DuplicateTokenEx去复制一个令牌 BOOL DuplicateTokenEx(...使用ImpersonateLoggedOnUser函数 创建进程使用CreateProcessAsUser或者 CreateProcessWithToken 使用LogonUser 函数 其中logonuser...CreateProcessWithTokenW或者CreateProcessAsUserW可以以令牌创建进程。...我们复制的token为session 2的token,然后此时如果调用CreateProcessWithTokenW,会以session 2来创建图形化界面,而此时我们当前进程session 1中,

    1.1K20

    浅析Windows Access Token以及利用方法

    1 前置概念 关于Windows Access Token Windows Access Token(访问令牌),它是一个描述进程或者线程安全上下文的一个对象。...每个用户登录计算机都会产生一个AcessToken以用于创建进程和线程,用户注销以后会将主令牌切换成模拟令牌,也就是授权令牌和模拟令牌,不会清除令牌,只有重启才会。...(利用net use访问共享文件夹,或者wmi、winrm等等) 注: 都是登录时产生创建的,两种token只系统重启后清除,具有Delegation token的用户注销后,该Token将变成Impersonation...TOKEN的产生 每个进程创建时都会根据登录会话权限由LSA(Local Security Authority)分配一个Token(如果CreaetProcess时自己指定了Token, LSA会用该Token...什么是TrustedInstaller:Windows系统中,即使获得了管理员权限和system权限,也不能修改系统文件,因为Windows系统的最高权限为TrustedInstaller。 2.

    1.2K20

    Windows提权方法汇总

    接下来我们的思路可能就是2345Explorer目录下创建一个Protect.exe了,所以我们要看看2345Explorer目录我们的权限如何。...转移进程msf中很简单,meterpreter中先用ps查看进程,随便找一个system权限,记住其pid,然后 migrate PID 即可完成进程迁移。 下面来说说防治方法吧。...直接在域控上找到某主机,然后进入属性里进入安全选项卡,添加某用户,然后给这个用户分配权限即可。 我们依旧使用powerview。...该方法技术细节为:以管理员权限创建一个命名管道,再通过创建SYSTEM权限服务,让服务连上命名管道,随后我们通过模拟客户端,获得SYSTEM权限的令牌,随后将其复制,再用复制后的令牌创建进程(如CMD...,再复制其令牌用以创建进程,即可达到提权目的 #include #include //Only administrator can get debug

    1.4K30

    如何使用Auto-Elevate实现UAC绕过和权限提升

    关于Auto-Elevate Auto-Elevate是一款功能强大的Windows系统安全测试工具,该工具可以不需要离邕任何LPE漏洞的 情况下,通过结合COM UAC绕过技术和令牌伪造技术,帮助广大研究人员将低完整性的管理员账号提升至...该工具能够实现UAC以及其他一些Windows内置功能的绕过,该工具能够自动定位winlogon.exe,并能够窃取和模拟该程序的进程令牌,然后使用窃取来的令牌生成一个新的系统级进程。...OpenProcessToken并结合之前获得的进程句柄来检索winlogon的进程令牌句柄; 5、通过调用ImpersonateLoggedOnUser来伪造winlogon用户; 6、通过使用SecurityImpersonation...来调用DuplicateTokenEx并复制伪造的令牌句柄,这将创建一个我们可以使用的令牌副本; 7、令牌副本的帮助下,我们就可以通过调用CreateProcessWithTokenW来生成一个新的CMD...工具使用 下图中演示了如何在Windows 10 21H1操作系统平台上,使用UACME结合Auto-Elevate来将一个低等级权限的管理员账号提升为NT AUTHORITY\SYSTEM: 下图演示了如何在不使用

    47510

    Python3简单实现多任务(多进程篇)第一种:进程池快速创建(适合创建大量进程,简单,推荐!)第二种实现方式(Process创建进程,需要手动管理)第三种实现方式(windows无法使用,只能在类U

    python多进程实现多任务 优点:稳定性高;提升程序执行效率 第一种:进程池快速创建(适合创建大量进程,简单,推荐!)...random.random()) print("----任务%d执行完毕----"%(num)) def main(): # 创建一个最多开启3进程进程池 po = Pool...(Process创建进程,需要手动管理) image.png from multiprocessing import Process import os import time import random...("----第%d个子进程执行完毕----"%(num)) def main(): # 创建进程 son_p1 = Process(target=to_work, args={1,...__name__ == "__main__": main() 第三种实现方式(windows无法使用,只能在类Unix平台使用,可用于制作"fork炸弹") image.png import

    1.4K100

    技术分享:如何利用SeImpersonatePrivilege权限来检测SYSTEM权限安全

    2、本文所使用的技术不仅使用CreateProcessWithTokenW来生成一个新的进程,而且我们还可以使用CreateProcessWithTokenW、CreateProcessAsUserW...如果将来发布任何新的系统身份验证触发器,此工具仍然可以用于提升权限,只不过需要使用另一个命名管道名称而已。...工具下载 广大研究人员可以使用下列命令将该项目源码克隆至本地: git clone https://github.com/S3cur3Th1sSh1t/MultiPotato.git 工具使用 1...、使用修改后的PetitPotam触发器来调用工具的CreateUser创建用户 c:\temp\MultiPotato> MultiPotato.exe -t CreateUser 接下来,MultiPotato...localhost 当然了,我们也可以利用有效的低级权限并使用远程系统中的PetitPotam.py来作为触发器。

    1.1K20

    一种注入进程使用WTL创建无焦点不在任务栏出现“吸附”窗口的方法和思路

    该函数的实现细节是:         1 以挂起的方式启动被注入程序         2 在内存中,修改被注入程序的导入表信息,表中增加一个我们要注入的DLL中的导出函数         3 恢复被挂起的进程...我们知道windows系统是消息驱动的模型,那么我们的“吸附”窗口的消息模型该是什么样的?...当时我思考方案时得出以下两种方案:         1 Hook进程内窗口消息,消息链中根据顶层窗口消息而决定我们窗口的创建、显示、隐藏和销毁。...这相当于我们窗口的消息循环使用了被注入进程的顶层窗口的消息循环。        ...2 注入进程后,启动一个线程,该线程负责创建窗口,同时该线程中再启动一个监视被注入进程顶层窗口的线程,该线程将根据其得到的被注入进程窗口的位置大小状态等信息告诉我们窗口应该做何种处理。

    1.5K40

    14种DLL注入技术

    第二种 RtlCreateUserThread创建用户线程 RtlCreateUserThread是CreateRemoteThread的底层实现,所以使用RtlCreateUserThread的原理是和使用...第三种 APC注入 通过CreateRemoteThread函数创建一个线程就可以使用远程进程中的一个函数。然而,线程创建需要系统开销,所以调用一个现有的线程会更加高效。...而由于这个Ime文件本质上只是个存放在C:\WINDOWS\system32目录下的特殊的DLL文件,因此我们可以利用这个特性,Ime文件中使用LoadLibrary()函数待注入的DLL文件。...第十二种 进程替换技术(进程hollowing) 除了注入之外,我们还可以使用进程替换技术将一个可执行文件写入一个运行的进程内部,这种技术让恶意代码拥有和被替换进程相同的特权,这个技术关键是:需要以挂起状态创建进程...为了避免冲突,重写入进程之前,需要取消进程对内存的映射)。

    4.3K41

    护网问题之——Windows入侵之后权限不够怎么办

    用户相关命令 net user //查看有多少用户 net user administrator //查看administrator账户的信息 net user test passwd /add //创建用户设置密码...命令查看是否有上面两个权限 以下用户拥有SeImpersonatePrivilege权限: 本地管理员账户和本地服务账户 由SCM(服务控制管理器)启动的服务 由组件对象模型 (COM) 基础结构启动的并配置为特定帐户下运...⾏的COM服务器 当用户具有SeImpersonatePrivilege 特权,可以调⽤ CreateProcessWithTokenW 以某 个Token的权限启动新进程。...当⽤户具有 SeAssignPrimaryTokenPrivilege 特权,可以调⽤ CreateProcessAsUserW 以指定⽤户权限启动新进程。...bat文件 Powershell -executionpolicy unrestricted "c:\nc.exe -lvp 9999 -e c:windows\system32\cmd.exe" 运行之后使用

    16610

    CobaltStrike使用第二篇(攻击模块、会话管理、CS-MSF联动)

    进程管理 也可以进程列表中选择进程截图(汉化版有问题) 可以选择进程后对其进行下面工具栏中的操作 任务处理 jobs ## 查看任务列表 jobkill ## 终止一个任务 进行的任务可以...\file.dll]来另一个进程中加载磁盘上的 DLL文件 CS派生会话 环境: CS新建连接 自身增加会话或者在其他的 teamserver 做备份会话 自身增加会话 选择choose,稍等很快就添加了一个会话...这个TeamServer 首先需要在被派生Client中新建一个Listener 原Client中选择需要派生的会话,右击选择派生 选择刚才创建的Listener 稍等片刻 这两个派生出来的会话...,进程都为rundll32.exe CS派生MSF会话 首先在MSF(IP:192.168.179.138)中创建监听端口 use exploit/multi/handler set payload...MSF木马->CS会话 1.CS创建HTTP Beacon Listener 2.Kali中执行以下命令,MSF生成木马 sfvenom -p windows/meterpreter/reverse_http

    1.9K20

    使用Sysmon和Splunk探测网络环境中横向渗透

    本地查看sysmon事件日志,打开事件查看器 - Microsoft - Windows - Sysmon - Operational 如下图可以看到sysmon记录到powershell.exe进程创建...攻击者使用了类似的命令建立SMB会话: net use \\192.168.1.88 ?...splunk中搜索Sysmon事件,识别出可疑的SMB会话(445端口): sourcetype=”XmlWinEventLog:Microsoft-Windows-Sysmon/Operational...然后通过分析当前的Windows事件日志,辨别进程创建/终止,网络连接的建立/销毁来区别正常与异常的SMB会话。 探测攻击者使用PowerShell进行横向渗透。...Splunk中,我们可以通过下面的Sysmon事件来辨识出 恶意的行为,我们可以攻击者使用WinRM 远程连接了被攻击机器的5896端口: sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon

    2.2K70
    领券