首页 > 数据库 > SQL Server > 正文

SQL Server SA权限总结

2024-08-31 00:49:17
字体:
来源:转载
供稿:网友

最近需要用到这些东西的时候,发现自己有点记不清了,这真是人老了做什么都不行了。没办法,只好在自己的blog上总结一下吧。使用sqlexec加管理员的过程这里冰血就不涉及了。

前提需要工具:sql query analyzer和sqlexec sunx version

第一部分:
有关去掉xp_cmdshell来保护系统的分析总结:
首先知道一下语句:
1.去掉xp_cmdshell扩展过程的方法是使用如下语句:
code:
if exists (select * from dbo.sysobjects where id=object_id(n'[dbo].[xpcmdshell]') and objectproperty(id,n'isextendedproc')=1)
exec sp_dropextendedproc n'[dbo].[xp_cmdshell]'


2.添加xp_cmdshell扩展过程的方法是使用如下语句:
code:
sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'


现在看看现象:
我们在取得sa权限后远程用sqlexec执行cmd命令,出现提示sql_error,那么很可能是去掉了xp_cmdshell。

现在来看看被去掉xp_cmdshell后恢复的两种方法:
方法一、使用sql query analyzer连接对方后直接写入,挺方便
code:
sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'


方法二、使用sqlexec sunx version
首先在sqlexec sunx version的format选项里填上%s,在cmd选项里输入
code:
sp_addextendedproc 'xp_cmdshell','xpsql70.dll'

或者对sql2000情况下使用
code:
sp_addextendedproc 'xp_cmdshell','xplog70.dll'


另外使用sqlexec sunx version来去除xp_cmdshell的方法
和加的时候选择条件一样,然后输入
code:
sp_dropextendedproc 'xp_cmdshell'

就可以了

第二部分:
假如对方已经把xplog70.dll删除或者改了名,我们来用下面的方法继续我们的hack任务:
当出现如下现象暗示代表很有可能是xplog70.dll删除或者改了名。
在查询分析器中写入
code:
sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'

提示
数据库中已存在名为'xp_cmdshell'的对象

那么我们如何恢复呢?
其实按照高手lcx提供的方法,我们可以通过使用查询分析器中写脚本来实现。
具体脚本源代码请点击连接获得。

 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表