quack (quack_at_xfocus.org)
我们是如何攻破www.apache.org的
by {} and Hardbeat
译: quack
一、写在前面
这篇文章并不是发现了什么最新的漏洞,它只是指出了一个普通的配置错误–甚至连apache.org
的工作人员也会配置错误:),所以这只是一个警告:修补你的系统,才能防止恶意侵袭。
二、介绍
这里描述了我们如何在一周内成功地得到了运行www.apache.org的机器的root权限
并且将其主页面上的Powered by Apache图样(羽毛状的图画)改成了Powered by
Microsoft BackOffice的图样,没有做其它的任何改动了–除了帮他们赶跑了另外
(可能是恶意)的入侵者。
这里所描述的漏洞甚至不是apache相关的,它们仅仅是配置失误,其中之一是BugZilla
的……但它的开发者在README文件中对配置方法做了详尽的描述,所以――一切只
能是使用者自己的责任了,apache的用户不必为此而担心的:)。
我们对www.apache.org进行尝试的原因是有太多的服务器上跑的都是阿帕奇了,如果
它的主机是不安全的,那么入侵者就可能在它的源代码里放置后门,这会危及许多用
户的利益。
当然我们不愿看到这种事发生,所以我们帮apache补上了漏洞――当然在得到了ROOT
权限之后我们无法控制自己更改主页的欲望:),开个小玩笑吧。
以下是整个入侵的过程:
1、ftproot == wwwroot
o+w dirs
在寻找apache httpserver想要查看新版本是否存在缓冲溢出的过程中――我们连接上
了ftp:/ftp.apache.org――和http://www.apache.org是同一个目录并且有一个可写
的目录存在!
于是我们写了一个小脚本wuh.php3包含了下面的语句:
将它上传到了那个可写的目录中。
2、Our commands executed
所以,很方便的,id这个命令可以被下面的语句调用:
http://www.apache.org/thatdir/wuh.php3?cmd=id
而后再上传一些bindshell的程序并用类似
http://www.apache.org/thatdir/wuh.php3?cmd=gcc+-o+httpd+httpd.c
的语句来编译它,然后执行……
http://www.apache.org/thatdir/wuh.php3?cmd=./httpd
3、The shell
我们使用的bindshell程序是有密码验证的:),相对安全一些。
现在我们可以telnet到端口65533――我们定义的端口绑定处了,这样我们得到了本
地nobody权限的进入权――因为cgi是以nobody身份运行的。
4、The apache.org box
在apache.org的机器里我们发现了:
-o=rx /root
-o=rx homedirs
apache.org运行的是freebsd3.4的平台,我们不想仅仅通过缓冲区溢出或者乱七八糟
的exploit来得到root,让我们来试试仅仅通过他们自己配置的漏洞来得到最高权限吧!
5、Mysql
经过长时间的搜索,我们发现mysql是以root的权限运行的,并且可以本地运行,
因为apache.org还运行了bugzilla需要mysql帐号,并且将其用户名/密码明文存
放,所以很轻易的就可以获得mysql数据库的帐号密码。
我们下载了nportredird(从名字就可以知道应该是端口重定向的工具了),并设置成