Это копипаст тупо или ты написал x s s. i s /threads/140363/
РАЗБОР
GRC
Redis без пароля: 5 минут до платежных кредов
[ обложка статьи ]
Режим чтения
В этом посте расскажу, как в ходе обычного неторопливого пентеста инфраструктуры я набрёл на Redis-сервер. И не просто Redis — а такой, что прямо хочется написать админам: «Ребята, вы серьёзно?»
Спойлер: без пароля, с 1200 ключами, среди которых — и курсы валют, и цены на туры, и... полностью валидная платёжная конфигурация.
Открытый порт 6379 оказался настоящей Pandora’s box.
Предыстория: на охоте
Как это часто бывает — сканишь себе диапазон через masscan, смотришь на 6379 порт, и… ну вы поняли.Код:Скопировать в буфер обмена
redis-cli -h <ip> -p 6379 --no-auth-warning
Подключение — без проблем.
Пароля нет.
Сервер бодро отвечает, работает 6 дней, Redis 8.0.1.
— Ну да, обычный кэш, подумаешь…
Но когда DBSIZE возвращает 1202 ключа, а KEYS * выдаёт реальные данные — понимаешь, что это уже совсем другая история.
Что внутри?
Расклад по категориям:
- WebRequest кэш — 89%
Прям видно, что используется активно — ключи типа findDestinationDetail::, OAuth:: - Бизнес-данные — 10–11%
Там уже интереснее: цены, конвертация валют, продукты, партнёрские данные - Конфиги — 1–2 ключа
И эти 1–2 ключа решают ВСЁ
Я, конечно, не сразу поверил глазам, но там был полноценный JSON с конфигом платёжного шлюза.
json{
"name": "example",
"merchantId": "xxxxxxxx",
"apiUser": "test@...com",
"apiPassword": "S\\CsCccCcCc",
"encryptKey": "eY0test...",
"currencies": ["EUR", "GBP", "RUB", "USD", "TRY"],
"country": "TR"
}
Что ещё попалось?
- Цены на туры:
Видна и базовая стоимость, и финальная с наценкой. Можно изучать бизнес-логику, если ты вдруг конкурент. - Курсы валют:
Прямо из Redis — 50 EUR = 57.41 USD. Курс свежий. - Партнёрские города и направления:
JSON'ы вроде "name": "Paris", "secondaryId": 2378 — просто набор ID-шников, но тоже интересно. - Языковая аналитика:
Судя по ключам, чаще всего юзали сайт на русском, турецком и немецком.
(— Привет, наши из СНГ!)
Риски
1. Платёжная компрометацияМожно обращаться к API, совершать транзакции, тестить фрод — не будем.
2. PCI DSS violation
Передача кредов в незашифрованном виде?
3. Утечка бизнес-логики
Цены, конвертация, внутренние шаблоны API — бери и строй конкурента.
Почему это произошло?
- Redis слушал порт 6379 на внешнем интерфейсе
- Не было пароля (requirepass)
- Нет firewall или access list
- Сервер жив в интернете 6+ дней
Что делать?
Если вы админ (или DevOps, или CTO, или просто добрый человек с доступом к docker-compose), вот мини-чеклист:
Не слушайте Redis на 0.0.0.0
Всегда используйте requirepass
Ограничьте IP-фильтрами (iptables, ufw)
Оберните Redis в VPN или защитную прослойку
Делайте регулярный аудит доступных портов
Мораль
Открытый Redis — это не просто баг. Это возможность.В руках атакующего — это прямая дорога к деньгам, данным и репутационным потерям.
Содержание
Codeby Academy
Практика и мастерство
От основ до продвинутого — программы для практиков Codeby.
Перейти к курсу →
Продолжить чтение
Следующий разбор
24 часа на уведомление РКН: чеклист для IR-команды
Комментарии
3