
교육용 랩 환경으로, Redis Lua 인터프리터의 치명적인 use-after-free 취약점인 CVE-2025-49844(RediShell)에 대한 개념 증명 익스플로잇을 포함하며, Docker 설정 및 취약점 분석을 제공합니다.
Redis의 심각한 CVE-2025-49844 (RediShell) 취약점을 테스트하고 이해하기 위한 실용적인 실습 환경입니다.
교육 목적으로만 사용하세요!
다음 버전 이전의 모든 Redis 버전:
이 실습 환경은 Redis 7.2.0 (취약한 버전)을 사용합니다.
# Docker 및 Docker Compose 설치
sudo apt-get update
sudo apt-get install docker.io docker-compose
# Python 종속성 설치
pip install redis colorama
# 1. 취약한 Redis 인스턴스 시작
docker-compose up -d
# 2. Redis가 시작될 때까지 몇 초 대기
sleep 5
# 3. Redis 실행 확인
docker-compose ps
# 4. 익스플로잇 실행
python3 exploit_poc.py -H localhost -p 6380 -m all
# 취약점 확인만 수행
python3 exploit_poc.py -H localhost -p 6380 -m check
# 기본 UAF 테스트 실행
python3 exploit_poc.py -H localhost -p 6380 -m basic
# 샌드박스 탈출 테스트
python3 exploit_poc.py -H localhost -p 6380 -m sandbox
# 고급 메모리 손상 테스트
python3 exploit_poc.py -H localhost -p 6380 -m advanced
# 모든 테스트 실행
python3 exploit_poc.py -H localhost -p 6380 -m all
# 인증 사용
python3 exploit_poc.py -H localhost -p 6380 -a "password" -m all
# 로그 확인
docker-compose logs -f
# Redis CLI 연결
docker-compose exec redis-vulnerable redis-cli
# 실습 환경 중지
docker-compose down
# 모든 항목 제거 (볼륨 포함)
docker-compose down -v
╔═══════════════════════════════════════════════════════════╗
║ CVE-2025-49844 (RediShell) PoC ║
║ Use-After-Free in Redis Lua Interpreter ║
║ CVSS Score: 10.0 (CRITICAL) ║
╚═══════════════════════════════════════════════════════════╝
[*] Testing connection to localhost:6380...
[+] Connected successfully!
[i] Redis Version: 7.2.0
[*] Checking if Lua scripting is enabled...
[+] Lua scripting is enabled!
[*] Checking vulnerability status...
[i] Detected Redis version: 7.2.0
[!] VULNERABLE: This version is affected by CVE-2025-49844
[!] Update to the latest patched version immediately!
[*] Attempting basic UAF trigger...
[+] Lua script executed: UAF pattern executed
[!] UAF pattern triggered (simplified demo)
[*] Testing Lua sandbox boundaries...
[*] Testing os.execute...
[+] Protected: os.execute blocked
[*] Testing io.popen...
[+] Protected: io.popen blocked
[*] Testing loadfile...
[+] Protected: loadfile blocked
[*] Testing package.loadlib...
[+] Protected: package.loadlib blocked
[*] Attempting memory corruption pattern...
[+] Memory corruption pattern executed: Memory corruption pattern completed
[!] In vulnerable versions, this could lead to RCE!
============================================================
[*] PoC execution completed
============================================================
이 취약점은 Redis의 Lua 인터프리터에서 13년 된 Use-After-Free 버그를 악용합니다:
# 최신 패치 버전 가져오기
docker pull redis:8.2.2
# 또는
docker pull redis:7.4.6
# /etc/redis/redis.conf
# 인증 활성화
requirepass your_strong_password_here
# 네트워크 접근 제한
bind 127.0.0.1 ::1
protected-mode yes
# 위험한 명령 비활성화
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command CONFIG ""
rename-command EVAL ""
rename-command EVALSHA ""
# 로깅 활성화
loglevel notice
logfile /var/log/redis/redis-server.log
# 특정 사용자의 Lua 스크립팅 비활성화
redis-cli ACL SETUSER myuser -@scripting
# 제한된 사용자 생성
redis-cli ACL SETUSER limited on >password ~* +@read +@write -@scripting
# 방화벽 규칙 사용
sudo ufw allow from 192.168.1.0/24 to any port 6379
sudo ufw deny 6379
# 또는 iptables 사용
sudo iptables -A INPUT -p tcp --dport 6379 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 6379 -j DROP
# 포트를 사용 중인 프로세스 확인
sudo lsof -i :6380
# 또는 docker-compose.yml에서 포트 변경
# ports:
# - "6381:6379"
# 필수 패키지 설치
pip install redis colorama
# 또는 가상 환경 사용
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# docker 그룹에 사용자 추가
sudo usermod -aG docker $USER
# 그런 다음 로그아웃 후 다시 로그인
# 로그 확인
docker-compose logs
# 컨테이너 재시작
docker-compose restart
# 이미지 재빌드
docker-compose up -d --build
redis_exploit/
├── Dockerfile # Redis 7.2.0 취약한 인스턴스
├── docker-compose.yml # Docker Compose 설정
├── exploit_poc.py # 주요 익스플로잇 스크립트
├── requirements.txt # Python 종속성
├── .gitignore # Git 무시 파일
└── README.md # 이 파일
이 PoC는 단순화되었으며 교육 목적으로만 제공됩니다. 실제 CVE-2025-49844 익스플로잇은 복잡한 메모리 조작을 포함합니다. 항상 Redis 인스턴스를 최신 버전으로 패치하세요!