如何在不提升用户权限的情况下,使普通用户执行xp_cmdshell存储过程

MSSQL xp_cmdshell提权实战:利用Navicat与数据库配置漏洞实现权限提升 在数据库安全领域,权限提升是渗透测试的核心环节。其基本原理是通过利用数据库系统自身的功能或配置缺陷,将有限的数据库访问权限转换为更高等级的操作系统控制权。从技术价值看,掌握数据库提权方法能有效评估系统纵深防御能力,尤其在企业内网渗透测试中,数据库服务器常作为关键攻击跳板。应用场景广泛覆盖红蓝对抗、CTF竞赛及企业安全评估。本文聚焦MSSQL数据库的xp_cmdshell存储过程,该功能允许在数据库上下文中执行操作系统命令,结合Navicat等常用管理工具,可构建隐蔽的提权路径。通过分析CISP-PTE靶场案 阅读详情
 

如何在不提升用户权限的情况下,使普通用户执行xp_cmdshell存储过程2008-11-26 14:09:29SQL Server 2005 及之后的版本

背景

xp_cmdshell是一个很危险的存储过程,通过它,可以访问操作系统的资源,但有时候我们也需要使用它来实现一些特殊的处理。

从安全的角度来考虑,禁用xp_cmdsehll是最保险的,即使为了特殊目的而要求使用它,也最好能够编写一些实现这个特殊目的的用户存储过程,只在这个用户存储过程中使用xp_cmdshell,而普通用户只能使用这些用户存储过程。

正确的解决办法

下面的示例显示如何使普通用户在不具有执行存储过程xp_cmdshell的权限下,调用包含了执行xp_cmdshell代码的用户存储过程的方法。

-- 1. 具有执行xp_cmdshell 权限的登录

USE master;

GO

-- 1.a. 建立登录

CREATE LOGIN Cmd_Login

WITH PASSWORD = N'Pwd.123',

    CHECK_POLICY = OFF;

GO

-- 1.b. 这个登录是内置的, 不允许登录, 这样可以减少安全隐藏

DENY CONNECT SQL

    TO Cmd_Login;

GO

-- 1.c. 因为要调用xp_cmdshell , 所以在master 中要有用户, 并具有权限

CREATE USER Cmd_Login

FOR LOGIN Cmd_Login

WITH DEFAULT_SCHEMA = dbo;

GRANT EXECUTE ON sys.xp_cmdshell

    TO Cmd_Login;

GO 

-- 2. 用户数据库

USE tempdb;

GO

-- 2.a 为执行xp_cmdshell 权限的登录建立用户

CREATE USER Cmd_Login

FOR LOGIN Cmd_Login

WITH DEFAULT_SCHEMA = dbo;

GO

-- 2.b 测试存储过程

CREATE PROC dbo.p

WITH EXECUTE AS N'Cmd_Login'  -- 指定存储过程的执行时的上下文

AS

    EXEC master.sys.xp_cmdshell 'dir c:/'

GO

-- 3. 调用存储过程的普通登录

USE master;

GO

-- 3.a 登录

CREATE LOGIN test

WITH PASSWORD = N'abc.123',

    CHECK_POLICY = OFF;

GO

-- 3.b 数据库用户

USE tempdb;

GO

CREATE USER test

FOR LOGIN test;

GO

-- 3.c 执行存储过程的权限

GRANT EXECUTE ON dbo.p

    TO test;

GO

-- 3.d 执行测试

EXECUTE AS LOGIN = N'test';

GO

EXEC dbo.p;

GO

REVERT;

GO

-- 4. 删除测试

DROP PROC dbo.p;

DROP USER test;

DROP USER Cmd_Login;

USE master;

DROP LOGIN test;

DROP USER Cmd_Login;

DROP LOGIN Cmd_Login;

补充说明多数情况下,数据库的所有者是sa一类的sysadmin固定服务器角色的成员,所以在这种情况下,也可以直接指定使用数据库所有者作为存储过程执行的安全上下文。

-- 2. 用户数据库

USE tempdb;

GO

-- 2.b 测试存储过程

CREATE PROC dbo.p

WITH EXECUTE AS N'dbo'  -- 指定存储过程的执行时的上下文

ASEXEC master.sys.xp_cmdshell 'dir c:/'

GO

- 3. 调用存储过程的普通登录

USE master;

GO

-- 3.a 登录

CREATE LOGIN test

WITH PASSWORD = N'abc.123',

    CHECK_POLICY = OFF;

GO-- 3.b 数据库用户

USE tempdb;

GO

CREATE USER test

FOR LOGIN test;

GO

-- 3.c 执行存储过程的权限

GRANT EXECUTE ON dbo.p

    TO test;

GO

-- 3.d 执行测试

EXECUTE AS LOGIN = N'test';

GO

EXEC dbo.p;

GO

REVERT;

GO

-- 4. 删除测试

DROP PROC dbo.p;

DROP USER test;

 

USE master;

DROP LOGIN test;

使用前述方法的时候,实例中需要有xp_cmdshell代理帐户(默认是没有的), 否则会收到下面的错误信息。

消息15153,级别16,状态1,过程xp_cmdshell,第1 行

xp_cmdshell 代理帐户信息无法检索或无效。请验证'##xp_cmdshell_proxy_account##' 凭据存在并且包含有效的信息。

可以使用下面的代码创建xp_cmdshell代理帐户。

USE master;

GO

 

DECLARE

    @user sysname,

    @password sysname,

    @sql varchar(1000);

 

-- 在操作系统中为xp_cmdshell 代理帐户建立windows 用户

SELECT

    @user = N'XpCmdAccount',

    @password = N'P@ssw0rd.',

    @sql = 'NET USER "' + @user + '" "' + @password + '" /ADD';

EXEC sys.xp_cmdshell @sql;

 

-- 建立xp_cmdshell 代理帐户

SELECT

    @user = CONVERT(sysname, SERVERPROPERTY(N'MachineName'))

            + N'/' + @user;

EXEC sp_xp_cmdshell_proxy_account @user, @password;

 

最后说明一点,要使用xp_mdshell,得将服务器的“xp_cmdshell”选项打开,参考如下的代码。

EXEC sp_configure 'show advanced options', 1;

RECONFIGURE;

 

EXEC sp_configure 'xp_cmdshell', 1;

RECONFIGURE;

北京奥运擂台十大“盖世神功” 中国男足上榜(组图)
 
 
“有人的地方,就有江湖”,在奥运擂台上,赛场就是“武林”。每位“英雄”想做“盟主”都要有自己的“独门绝技”,为了提携赛场武侠才俊向前辈们看齐,特甄选北京奥运赛场十大具有“盖世神功”之高人,作为汝等武侠人生的目标。且看分解:
 
第一位 水上漂
 
绝技持有人:菲尔普斯
 
理由:
 
从雅典的六金,到世锦赛的七金,再到北京的八金,菲尔普斯施展“水上漂”神功,用一个个数字诠释自己的伟大进步。就在他将一届奥运会个人取得金牌的纪录提升到八枚、将历届奥运金牌的总数提升到十四枚后,他面前留下的可供超越的纪录实在屈指可数,整个奥林匹克历史也随着“神童”的历史而越发光辉夺目。
 
“神童”已被媒体炒成了超人,他的身体,似乎是上帝专门为了游泳而塑造的。这也难怪他的教练鲍勃-鲍曼会慨叹:菲尔普斯在北京奥运会创造的一届奥运会独得8金的纪录,让任何人都难以企及,包括菲尔普斯自己。
SQL Server数据库xp_cmdshell提权笔记 SQL Server数据库xp_cmdshell提权 阅读详情

相关推荐

vue3的面试题

vue3的面试题

jiang7701037的博客 6271

SQL SERVER-开启xp_cmdshell

在sql server中执行cmd命令,报以下异常。EXEC master.sys.xp_cmdshell 'dir c:/' Msg 15281, Level 16, State 1, Procedure xp_cmdshell, Line 1 [Batch Start Line 44]SQL Server blocked access to procedure 'sys.xp_cmd...

weixin_30537451的博客 1167

C51单片机驱动ILI9341彩屏实战:从Proteus仿真到绘制自定义图案(附完整代码)

本文详细介绍了使用C51单片机驱动ILI9341彩屏的完整实战流程。内容涵盖硬件连接、8080并行接口时序模拟、寄存器初始化、屏幕方向设置以及基本图形绘制原理,并重点讲解了如何在Proteus仿真环境中搭建电路、调试代码,最终实现自定义图案的显示。文章提供了完整的代码示例,为嵌入式开发学习者和复古硬件爱好者提供了一套可行的解决方案。

rnn9storyteller的博客 511

运行sp_xp_cmdshell_proxy_account 出现的错误

运行sp_xp_cmdshell_proxy_account 存储过程可能出现以下几种错误: sp_xp_cmdshell_proxy_account 'domain\account','p@5$word'   Msg 15137, Level 16, State 1, Procedure sp_xp_cmdshell_proxy_account, Line 1 An error occu...

weixin_34138139的博客 478

基于阻抗控制的工业机器人轨迹跟踪系统 Simulink/Simscape 仿真

  本文是对文献 [1] 的复现。 关于阻抗控制   阻抗控制的提出可以追溯到 1984 年,Neville Hogan 在 American Control Conference 发表的 Impedance Control:An Approach to Manipulation ,次年,Hogan N. 又在 Journal of Dynamic Systems Measurement and Control-transactions of The Asme 发表了阻抗控制经典三部曲 —— Imped.

-贝塔- 的博客 2万+

CVPR2023新作HAT实战:5分钟搞定图像超分辨率重建(附代码)

本文介绍了CVPR2023新作HAT模型在图像超分辨率重建中的实战应用。HAT通过创新的混合注意力机制,显著提升了图像重建质量,能激活更多有效像素并减少伪影。文章提供了从环境配置到模型部署的完整指南,帮助开发者在5分钟内快速实现图像超分辨率重建,并附有代码示例和性能优化技巧。

weixin_29062613的博客 239

普通用户竟这样执行xp_cmdshell存储过程!

关注我们获得更多内容作者 | 邹建,资深数据库专家,精通各项 SQL Server 技术,具有丰富的管理、维护、优化能力以及业务应用经验。他一直热心于技术知识的分享、传播...

Enmotech的博客 1906

【纯实战】C#基于TCP/IP实现三菱PLC MC协议完整通信(含完整源码+通信原理+避坑指南)

MC协议是三菱电机为旗下MELSEC系列PLC量身定制的以太网专用通信协议,本质是一套基于TCP/IP的应用层协议规范,专门用于实现上位机(PC/工控机)与PLC之间的双向数据交互,支持对PLC的软元件(X/Y/M/D/W/T/C等)进行读、写、批量读写等核心操作,同时支持PLC状态查询、程序启停等控制指令。重要:三菱PLC的MC协议默认基于TCP 4999端口通信,部分新版本FX5U/Q系列也支持TCP 5000端口,核心通信逻辑一致。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 897

[转]如何在不提升用户权限的情况下,使普通用户执行xp_cmdshell存储过程

xp_cmdshell是一个很危险的存储过程,通过它,可以访问操作系统的资源,但有时候我们也需要使用它来实现一些特殊的处理。 从安全的角度来考虑,禁用xp_cmdsehll是最保险的,即使为了特殊目的而要求使用它,也最好能够编写一些实现这个特殊目的的用户存储过程,只在这个用户存储过程中使用xp_cmdshell,而普通用户只能使用这些用户存储过程。 下面的示例显示如何使普通用户在不具有执...

weixin_34032621的博客 134

【AUTOSAR-E2E】-1.4-详述E2E Transformer解决方案

共13页精讲 目录 1“Data Transformation”介绍 1.1 基于SOME/IP Transformer 1.2 基于COM Based Transformer 2 ComXf(COM Based Transformer)介绍 2.1 ComXf(COM Based Transformer)功能规范 2.2 ComXf(COM Based Transformer)提供的服务 2.3 配置注意事项 3 E2EXf(E2E Transformer)介绍 3.1 E2EX...

「汽车电子助手」的博客 4701

【3D Slicer】的小白入门使用指南一

3D Slicer 是一个免费的开源软件平台,用于医学、生物医学和其他 3D 图像的可视化、处理、分割、配准和分析。Slicer 的功能包括:读/写。

图挖掘领域,新晋砖家 ☞ 未来可期,欢迎和静静一起学习交流吖 5559

如何在不提升用户权限的情况下,使普通用户执行xp_cmdshell存储过程2008-11-26 14:09:29SQL Server 2005 及之后的版本

<br /> <br />xp_cmdshell是一个很危险的存储过程,通过它,可以访问操作系统的资源,但有时候我们也需要使用它来实现一些特殊的处理。<br />从安全的角度来考虑,禁用xp_cmdsehll是最保险的,即使为了特殊目的而要求使用它,也最好能够编写一些实现这个特殊目的的用户存储过程,只在这个用户存储过程中使用xp_cmdshell,而普通用户只能使用这些用户存储过程。<br /><br />正确的解决办法<br />下面的示例显示如何使普通用户在不具有执行存储过程xp_cmdshell的权限

Yatere的天平秤 1987

量子化学仿真软件:VASP_(7).表面与界面性质模拟

在量子化学仿真软件领域,表面与界面性质的模拟是研究多相催化、表面反应、材料科学等领域的关键工具。VASP(Vienna Ab Initio Simulation Package)作为一种广泛使用的密度泛函理论(DFT)计算软件,提供了强大的功能来模拟表面与界面的性质。本节将详细介绍如何使用VASP进行表面与界面性质的模拟,包括模型构建、输入文件准备、计算设置、结果分析等步骤。

kkchenjj的博客 951

110.网络安全渗透测试—[权限提升篇8]—[Windows SqlServer xp_cmdshell存储过程提权]

我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!! 如果网站里面使用的数据库是sqlserver 那么如果找到sa的密码,可以开启xp_cmdshell存储过程,以sqlserver的身份执行系统命令。但是不一定是系统权限,还要看管理员在一开始安装sqlserver的权限设置。(1)xp_cmdshell存储过程【存储过程是:已预编译为一个可执行过程的一个或多个SQL语句的集合】,它是用来执行本机的cmd命令的,要求系统登陆有sa权限。默认情况下,sql serve

qwsn 3852

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

数据库提权,Mssql xp_cmdshell提权

针对Mssql xp_cmdshell提权的学习实践,SQL Server2008/2012及以前版本基本都能用,但是2016或更高版本部分不能用,或者SA权限太低,导致无法提权。数据库提权的方式也不止有Mssql xp_cmdshell一种,之后更多的提权方式也是我更应该学习的地方。

luSaMa的博客 3159

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

微信聊天记录导出:HTML、CSV 与年度报告,一份对话的三种出口

聊天窗口里的图片显示"已过期"时,你失去的不只是那张图,而是它被标准文件长期打开的可能。开源项目留痕(WeChatMsg)做的事情正是微信聊天记录导出:读取本地聊天记录,转成 HTML、Word、CSV 标准文件,再把记录分析成一份年度聊天报告。**真正的风险不在于数据存在哪里,而在于你是否把它写进了自己随时能打开的文件里。** ## 微信聊天记录导出能做什么:能力一览 动手前先建立整体认知。

gitblog_00799的博客 1030

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

低权限MSSQL注入场景突破:SqlmapXPlus后门用户添加与权限维持技巧

在网络安全渗透测试中,面对低权限MSSQL注入场景时,如何实现权限突破并维持访问是一项关键挑战。SqlmapXPlus作为基于经典SQL注入工具Sqlmap的增强版,提供了丰富的后门用户添加与权限维持功能,帮助安全测试人员在复杂环境中高效完成测试任务。本文将详细介绍在低权限MSSQL注入场景下,利用SqlmapXPlus实现后门用户添加与权限维持的实用技巧。 ## 一、低权限MSSQL注入环境分

gitblog_00808的博客 1040
上一篇: 如何应对这场即将来临的裁员风暴?
下一篇: C#里面比较时间大小三种方法
布丁oo
博客等级 码龄19年 18粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值