首页
社区
课程
招聘
由sa被降权引发的争论
发表于: 2015-2-4 20:03 2026

由sa被降权引发的争论

2015-2-4 20:03
2026
新闻链接:http://www.hx95.com/Article/Crack/201502/85344.html
新闻时间: 2015-02-04
新闻正文: 来源:推酷  
在实际渗透的时候,很多时候都会遇到sa被降权的情况。
刚才也在跟一个朋友讨论这个问题,我觉得这个问题想说清楚也不是一句话两句话的事情,干脆发个帖子单独来跟大伙一起讨论一下这个问题。

sa,是mssql中的最高权限的账户,中文名字叫系统管理员,英文全称是SystemAdministrator,简称为sa。
这里,我们要理解,什么是最高权限的账户,那就是没有比它更高的了,就算是它被降权了,在没有特殊配置的情况下,也不会有账户的权限比它高。

那么,到底什么是sa被降权呢?
我个人觉得,这里有2种类型的降权。
1、sa在数据库中的权限被降低了
2、sa在操作系统中的权限被降低了
这2种降权类型我们来一一讨论。

1、sa在数据库中的权限被降低了

我不懂DB,更不是DBA,你让我写一句完整的SQL语句我都写不出来,但是我知道在mysql里是可以对root账户进行降权的,比如只允许root执行select、insert、update,不能drop,不能delete,我想,既然mysql这种中小型数据库都具备这种账户权限控制策略,那么一直被微软自称为企业级的MSSQL数据库应该也是具备这种控制策略的,这是我说的第一种降权,应该很好理解。

2、sa在操作系统中的权限被降低了

我不懂操作系统,更不会运维,你让我写个加固方案我都写不出来,但我们都知道,mssql默认情况下是以服务的方式启动的,那么既然是服务,一般情况下,都是system权限的,也就是说,默认情况下,mssql是以system权限启动的,那么相应的,mssql在操作系统中的权限也就继承为了system权限,这是默认情况下,那么,细心的管理员可能会更改mssql的启动方式,比如建立一个属于users组独立的操作系统用户为SqlDebugger,以这个账户的身份启动MSSQL服务,那么这个时候,mssql在操作系统中的权限就是继承的用户SqlDebugger的权限,而SqlDebugger用户是users组的,SqlDebugger是user权限,那么mssql这个时候在操作系统中的权限也就是user权限了,这个问题,具体怎么配置怎么实现我不知道,但我知道是可以这样的。这是我说的第二种降权,应该也不难理解,细心看看我说的话,就很好理解了。

该说的说完了,说一下刚才和朋友讨论的问题。

这篇文章提到了用sa实现读取数据库连接文件的手法,他的语句是这样写的:

?

123456789101112131415161718
Use f4ckdatabase;-- drop table cmd;  create table cmd (a text);  BULK INSERT cmd  FROM 'd:freehostf4ckwebincconfig.asp' WITH (  FIELDTERMINATOR = 'n',  ROWTERMINATOR = 'nn' )
朋友问,为什么sa明明被降权了他还能读取网站的数据库连接文件。

我的回答是,sa有没有权限读取某个目录下的某个文件,得看2个方面。

1、我们看他说的手法中的SQL语句,他用了drop、create、insert这3种语句,那么,这段SQL语句能否成功执行,得看这个sa在数据库中是否有执行这3种语句的权限,比如,如果这个sa的权限被降的厉害,管理员没有给sa账户create的权限,那么这个时候这段SQL语句是无法执行成功的,自然也就无法读取操作系统中的文件了。

2、我们得看这个被降权的sa继承的是什么账户的权限,比如,这里它继承的是一个名为f4ckteam的账户的权限,但是这个名为f4ckteam的账户对我们要读取的网站数据库连接文件(比如是conn.asp)无权读取,那么这个时候,这段SQL语句也是无法成功读取到操作系统中的这个conn.asp的文件的,因为继承来的权限对conn.asp不可读,所以读不了。

这2个条件缺一不可。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//