龙空技术网

渗透技巧——从Admin权限切换到System权

Exploit 825

前言:

此时咱们对“vc system函数”大约比较重视,我们都需要学习一些“vc system函数”的相关知识。那么小编同时在网摘上搜集了一些对于“vc system函数””的相关文章,希望朋友们能喜欢,我们一起来了解一下吧!

0x00 前言

在渗透测试中,某些情况下需要用到system权限,例如操作注册表HKEY_LOCAL_MACHINESAMSAM 恰巧最近看到了一篇文章介绍了几种获得system权限的方法,于是决定结合自己的经验对这方面的技巧做系统整理 当然,前提是已经获得系统的管理员权限 学习链接:

0x01 简介

本文将要介绍以下内容:

通过创建服务获得System权限的方法利用MSIExec获得System权限的方法利用token复制获得System权限的方法

0x02 通过创建服务获得System权限

1、通过sc命令实现

sc Create TestService1 binPath= "cmd /c start" type= own type= interactsc start TestService1

该方法在XP系统可以使用 Win7下使用时控制台提示:

警告: 服务 TestService1 被配置为交互式服务,其支持正受到抨击。该服务可能无法正常起作用。

服务启动时弹框,需要点击查看消息才能执行代码,如下图

Win8下控制台提示错误,无法使用该方法

2、通过计划任务

使用at命令:

at 7:50 notepad.exe

默认以system权限启动,适用于Win7 从Win8开始不再支持at命令 使用schtasks命令: 创建服务,以system权限启动:

schtasks /Create /TN TestService2 /SC DAILY /ST 00:36 /TR notepad.exe /RU SYSTEM

查看服务状态:

schtasks /Query /TN TestService2

删除服务:

schtasks /Delete /TN TestService2 /F

注: 使用schtasks创建服务后记得手动删除 schtasks命令支持Win7-Win10

3、利用psexec

使用psexec会创建PSEXESVC服务,产生日志Event 4697、Event 7045、Event 4624和Event 4652 以system权限启动:

psexec.exe -accepteula -s -d notepad.exe

默认情况下,system权限的进程不会在用户桌面显示,如果需要显示进程界面,可以加/i参数,命令如下:

psexec.exe -accepteula -s -i -d notepad.exe

如下图

4、Meterpreter

参考Meterpreter的方法:

创建system权限的服务,提供一个命名管道创建进程,连接到该命名管道

可供参考的代码:

需要getsystem-offline.exe和getsystem_service.exe 测试如下图

注: vs2012直接编译存在bug,可将函数snprintf替换为_snprintf0x03 利用MSIExec获得System权限

我曾在之前的文章《渗透测试中的msiexec》介绍过利用Advanced Installer制作msi文件的方法,这里不再赘述 本节对XPN提到的方法做复现,使用wix3制作msi文件 wix3下载地址:

msigen.wix的代码可参考如下地址:

编译命令如下:

candle.exe msigen.wixtorch.exe msigen.wixobj

我对XPN的代码做了修改,将payload替换为执行calc.exe,细节上做了部分修改,代码如下:

<?xml version="1.0"?><Wix xmlns=""> <Product Id="*" UpgradeCode="12345678-1234-1234-1234-111111111111" Name="Example Product Name" Version="0.0.1" Manufacturer="@_xpn_" Language="1033"> <Package InstallerVersion="200" Compressed="yes" Comments="Windows Installer Package"/> <Media Id="1" /> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFilesFolder"> <Directory Id="INSTALLLOCATION" Name="Example"> <Component Id="ApplicationFiles" Guid="12345678-1234-1234-1234-222222222222">  </Component> </Directory> </Directory> </Directory> <Feature Id="DefaultFeature" Level="1"> <ComponentRef Id="ApplicationFiles"/> </Feature> <Property Id="cmdline">calc.exe </Property> <CustomAction Id="SystemShell" Execute="deferred" Directory="TARGETDIR" ExeCommand='[cmdline]' Return="ignore" Impersonate="no"/> <CustomAction Id="FailInstall" Execute="deferred" Script="vbscript" Return="check"> invalid vbs to fail install </CustomAction> <InstallExecuteSequence> <Custom Action="SystemShell" After="InstallInitialize"></Custom> <Custom Action="FailInstall" Before="InstallFiles"></Custom> </InstallExecuteSequence> </Product></Wix>

经过我的测试,使用torch.exe将msigen.wixobj编译成msigen.msi文件会报错,如下图

使用light.exe能够成功生成msigen.msi,如下图

虽然报错,但不影响文件的生成和功能的执行 也就是说,完整编译命令如下:

candle.exe msigen.wixlight.exe msigen.wixobj

直接双击执行msigen.msi会弹框,启动的calc.exe为system权限 命令行下执行:

msiexec /q /i msigen.msi

启动的calc.exe为high权限

0x04 利用token复制获得System权限

可参考之前的文章:《渗透技巧——Token窃取与利用》 通过复制system权限的token,使进程获得system权限,常用工具如下:

1、incognito

incognito.exe execute -c "NT AUTHORITYSYSTEM" cmd.exe

下载地址:

2、Invoke-TokenManipulation.ps1

Invoke-TokenManipulation -CreateProcess "cmd.exe" -Username "nt authoritysystem"

下载地址:

3、SelectMyParent

SelectMyParent.exe cmd.exe 504

参考地址:

Author: Didier Stevens 注: SelectMyParent的原理同xpn开源的代码(PROC_THREAD_ATTRIBUTE_PARENT_PROCESS method)相同,地址如下:

0x05 小结

本文对常用的System权限获取方法做了整理,最后感谢xpn的博客和他的开源代码。

本文作者:3gstudent 转载自:

标签: #vc system函数