OSCP学习笔记(10)——本地提权

本地提权是指攻击者利用漏洞或其他手段获取本地系统的管理员权限或其他高权限,从而能够执行更多的操作,例如访问、修改、删除系统文件、安装恶意软件、窃取敏感信息等。
常见的提权思路有:
1. 服务配置错误
2. 文件或服务权限漏洞
3. 内核漏洞
4. 高权限运行的服务漏洞
5. 敏感信息泄漏
6. 总是在执行二进制文件之前提升特权的系统设置
7. 脚本中包含硬编码的凭证,以及许多其他内容

手动枚举

枚举用户账号

whoami
#通用
id
who
w
#Linux

查看用户组

net user <USERNAME>
#Windows
id
who
#Linux

查看其他账号

net user
#Windows
cat /etc/passwd
#Linux

查看主机名

hostname
#通用

系统版本和架构

systeminfo
#Windows
cat /etc/*-release
cat /etc/issue
uname -a
#Linux

枚举进程、服务

tasklist /SVC
#Windows
ps axu
#Linux

网络配置

ipconfig /all
ipconfig /displaydns #DNS缓存
route print
netstat -nao
#Windows
ip -a
/sbin/route
ss -anp
netstat -nr
#Linux

枚举防火墙规则

netsh advfirewall show currentprofile
netsh advfirewall firewall show rule name=all
#Windows
iptables -L
ufw
#Linux

调度任务

schtasks /query /fo LIST /v
#Windows
Is -lah /etc/cron*
cat /etc/crontab
cat /var/log/cron
#Linux

枚举安装软件及补丁

wmic product get name,version,vendor #通过Windows Installer安装的
wmic qfe get Caption,Description,HotFixID,InstalledOn #系统范围的更新
#Windows
apt #Ubuntu、Debian
rom #red hat
dpkg -l #Debian
#Linux

枚举可读写文件目录

accesschk.exe -uws "Everyone" "<DIR>" #Sysinternals工具包
Get-ChildItem "<DIR>" -Recurse | Get-ACL | ?{$_.AccessToString -match "Everyone\sAllow\s\sModify"} #Powershell,过滤字段可能需要改变
#Windows
find /-writable -type d 2>/dev/null
#Linux

挂载点

mountvol
#Windows
cat /etc/fstab
mount
#Linux

设备驱动和内核模块

driverquery.exe /v /fo csv
#Windows
lsmod
/sbin/modinfo <MODNAME>
#Linux

自动提升权限的二进制文件

reg query HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer
reg query HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Installer #存在1即任何用户都可以使用特权账户运行Windows安装包
#Windows
find / -perm -u=s -type f 2>/dev/null
#Linux

自动枚举

自动化检查脚本
PEASS-ng

TODO:实测一下

Windows权限系统

Windows从Vista开始进程运行在四个完整性级别上
1. 系统完整性进程:SYSTEM权限
2. 高完整性进程:Administrator权限
3. 中完整性进程:普通用户权限
4. 低完整性进程:权限严格受限,常用于沙箱进程

whoami /groups
#显示当前用户的完整性级别

需要通过UAC用户访问控制切换完整性界别

powershell.exe Start-Process cmd.exe -Verb runAs
#以Administer启用cmd

UAC绕过

UAC绕过只针对特定版本
常见的UAC绕过可通过fodhelper.exe(<Win10 build 1709)绕过

sigcheck.exe -a -m c:\windows\system32\fodhelper.exe
#利用Sysinternal中的工具包查看manifest,某些版本是requireAdministrator,并且auroElevate

fodhelper.exe的绕过可以有如下方法
使用Process Monitor检查该程序的执行过程
先启动procmon.exe,再运行fodhelper.exe,过滤筛选fodhelper.exe的执行操作
增加搜索Reg关键字的过滤规则,只显示fodhelper.exe的注册表相关操作
增加搜索NAME NOT FOUND报错消息过滤规则,表示fodhelper在访问不存在的注册表项
再将其筛选改成SUCCESS,表示已经访问到的键值
以此反复找到一个可以利用的注册表运行任意指令

文件权限漏洞

通过替换某些高权限的系统程序,植入后门

Get-WmiObject win32_service | Select-Object Name,State,PathName | Where-Object {$_.State -like 'Running'}
#查询所有服务路径
icacls "<FILE>'
#F为完全控制

服务路径未引号闭合

如果有空格的文件路径未用引号闭合将会以空格为分割,寻找可执行文件

C:\Program.exe
C:\Program Files\My.exe
C:\Program Files\My Program\My.exe
C:\Program  Files\My Program\My service\service.exe

内核漏洞

systeminfo | findstr /B /C:"OS Name" /C:"OS Version" /C:"System Type"
#检测系统版本、架构
driverquery /v
#检测驱动(可以通过exploitdb搜索已知漏洞)
type <DRIVERNAME>.inf
#查看驱动信息

Linux权限系统

文件权限漏洞

cron调度任务等脚本执行后门漏洞

/etc/passwd权限漏洞

如果文件全局可读写可添加管理员权限

内核漏洞

也同样可以通过exploitdb搜索已知漏洞

发布者

正汰

永远是这样,山前面是山,天空上面是天空,道路前面还是道路,迷茫之后还有迷茫。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注