• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Redis без пароля: 5 минут до платежных кредов

кто то мир уже сканил? что интересного нашли?
сканили отдельные ASN. masscan, httpx, nuclei. нашли ;-)
да и гугл дорками такое находилось порой во что не верилось (особенно бэкапы когда торчат наружу это прикольно - скачивай и ищи 0day в проприетарщине, GPT это умеет неплохо, даже без авторизации и через Tor)
это доказывает что не только Shodan/Censys/Fofa могут, но ими просто быстрее - они то уже насканили и регулярно это проделывают снова и снова.
 
Правильно понял что это копипаст с хабра тыц
да. ну и вообще найти открытые редисы и монги этож банальщина... а вот открытые Modbus TCP (502-й, но бывает и "нештандартен" порты) от SCADA - вот это прям люто весело, бугага! :-D
 
поясню: база данных торчала в интернет на одном из серверов и туда просто взяли и зашли. это как если в подъезде ходить и ручки дверей дёргать или на парковке у ТЦ ходить и ручки у машин дёргать - статистически тупо забывают закрыть за день обязательно кто-то. тут то же самое с key-value базой данных Redis на каком-то сервере - "заходи кто хош". это не хак, а скорее грамотное дискавери.
Спасибо за объяснение. А где таких кодеров берут которые не закрывают точки доступа
 
Спасибо за объяснение. А где таких кодеров берут которые не закрывают точки доступа
Думаю, с появлением ИИ таких кодеров будет становится с каждым днем все больше.
 
классная статья, но добавлю свою 5 копеек:
  • в первую очередь лучше поместить все в докер, а порт на хост будет торчать лишь у реверс-прокси (traefik например. без монтирования docker сокета в контейнер).
  • и вообще желательно базы помещать в изолированные сети (internal: true в docker compose)
 
Статья из Habr


В этом посте расскажу, как в ходе обычного неторопливого пентеста инфраструктуры я набрёл на 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 ключа решают ВСЁ
Один из конфигурационных ключей выглядел как vposConfig::...
Я, конечно, не сразу поверил глазам, но там был полноценный JSON с конфигом платёжного шлюза.

json{
"name": "example",
"merchantId": "xxxxxxxx",
"apiUser": "test@...com",
"apiPassword": "S\\CsCccCcCc",
"encryptKey": "eY0test...",
"currencies": ["EUR", "GBP", "RUB", "USD", "TRY"],
"country": "TR"
}

🎯 Креды к боевому платёжному шлюзу. API-пользователь, пароль, ключ шифрования. Всё по-честному.



Что ещё попалось?

  • Цены на туры:
    Видна и базовая стоимость, и финальная с наценкой. Можно изучать бизнес-логику, если ты вдруг конкурент.
  • Курсы валют:
    Прямо из 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), вот мини-чеклист:

  1. ❌ Не слушайте Redis на 0.0.0.0
  2. 🔐 Всегда используйте requirepass
  3. 🔥 Ограничьте IP-фильтрами (iptables, ufw)
  4. 📦 Оберните Redis в VPN или защитную прослойку
  5. 🔍 Делайте регулярный аудит доступных портов

Мораль

Открытый Redis — это не просто баг. Это возможность.
В руках атакующего — это прямая дорога к деньгам, данным и репутационным потерям.


СПОЙЛЕР: Все данные я поменял, хочется донести суть 0day бизнес логики, а не скомпрометированные данные + отписал сервису об их уязвимости.
projects@vmi2353095:~$ redis-cli -h 34.89.148.188 -p 6379 --no-auth-warning
34.89.148.188:6379> INFO
NOAUTH Authentication required.
34.89.148.188:6379> AUTH redis
(error) WRONGPASS invalid username-password pair
34.89.148.188:6379>
34.89.148.188:6379> AUTH admin
(error) WRONGPASS invalid username-password pair
34.89.148.188:6379>
34.89.148.188:6379> DBSIZE
(error) NOAUTH Authentication required.
34.89.148.188:6379>



у меня так выходит
 
Спасибо за объяснение. А где таких кодеров берут которые не закрывают точки доступа
за забором очередь стоит :D
 
Same goes for elastic search, if you are not careful all your indexed data could go in wrong hands, make sure to change default port and protect it / restrict it to local host and low access user.
Yep, good idea
 
Думаю, с появлением ИИ таких кодеров будет становится с каждым днем все больше.
ахах. А ИИ будет искать ошибки в коде написанным тоже ИИ
 
А где таких кодеров берут которые не закрывают точки доступа
По объявлениям на Авито! 😆
А вообще не плодить дырки кривым деплоем - это не навык кодера, а навык DevOps / SecOps / DevSecOps(этакий "фуллстек" DevOps)
 
По объявлениям на Авито! 😆
А вообще не плодить дырки кривым деплоем - это не навык кодера, а навык DevOps / SecOps / DevSecOps(этакий "фуллстек" DevOps)
Значит из за жадности владелцев которые не хотят дополнитель нанимать DevOps-а
 
из за жадности владелцев
ну вон ByBit жопились на багбаунти пока у них $1.5B Lazarus не стырили, потом стали бегать предлагать жалкие $120M тому кто им поможет вернуть 1.5 ярда зелени...
и такое сплошь и рядом...
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх