
Доброго времени суток!
Продолжаем цикл статей по Starting Point платформы HTB Labs. Тут мы поговорим про такую базу данных, как Redis.
Внимание!!!
Я настоятельно рекомендую сначала попробовать решить задачу самостоятельно, а в случае затруднений обратиться к подробному пошаговому руководству. Это позволит вам лучше понять процесс и развить собственные навыки. Также вы можете изучить различные подходы к решению и логику мышления.
Ссылки на предыдущие статьи в серии:
1. HackTheBox Labs (Starting Point) - Meow
2. HackTheBox Labs (Starting Point) - Fawn
3. HackTheBox Labs (Starting Point) - Dancing
1. Какой TCP порт открыт на машине?
Начнем со сканирования портов Nmap:

-sS - Используем для поиска открытых портов из топ 1000;
-n - Отключаем разрешения DNS;
-Pn - Отключаем запросы ICMP Echo.
--disable-arp-ping - Отключает ARP-пинг
Запустив сканирование на 1000 самых популярных портах, мы не обнаружили отрытых портов. Попробуем запустить сканирование по всем портам - какой-то порт точно должен быть открыт:

-p- - Запускает сканирование всех 65535 портов.
Вот мы и нашли открытый порт - 6379.
Ответ: 6379
2. Какая служба работает на порту, открытом на компьютере?
Поискав в интернете, можно найти, что на порту 6379 работает база данных Redis.
Простыми словами, Redis — система хранения данных в виде структур. Это
нереляционная СУБД с открытым исходным кодом, организованная по принципу «ключ – значение». Она является вспомогательной и выполняет функцию хранилища (Redis storage) и кеша для основной, центральной базы данных. В качестве последних могут использоваться, например, PostgreSQL или
MySQL.
Ответ: Redis
3. Какой тип базы данных Redis? Выберите из следующих вариантов: 1) In-memory Database; 2) Traditional Database?
Redis - является базой данных, которая размещается в памяти. Кеш, основанный на Redis, помогает улучшить производительность приложений. Он эффективно использует скорость работы с данными, характерную для памяти, и смягчает нагрузку центральной базы данных приложения, связанную с обработкой следующих данных:
Данные, которые редко меняются, к которым часто обращается приложение.
Данные, не относящиеся к критически важным, которые часто меняются.
Ответ: In-memory Database
4. Какая утилита командной строки используется для взаимодействия с сервером Redis? Введите имя программы, которое вы бы ввели в терминал без каких-либо аргументов.
Для работы с Redis применяется утилита redis-cli.
Ответ: redis-cli
5. Какой аргумент используется в утилите командной строки Redis для указания имени хоста?
Для подключения используется аргумент -h с указанием целевого IP-адреса:

-h - Используется для указания хоста (IP-адреса или доменного имени) сервера, к которому нужно подключиться
Ответ: -h
6. Какая команда используется для получения информации и статистики о сервере Redis после подключения к нему?
После подключения, необходимо ввести команду INFO, и после выведется вся информация о сервере Redis:

Ответ: INFO
7. Какая версия сервера Redis используется на целевой машине?
По скриншоту в прошлом задании видно, что версия БД 5.0.7.
Ответ: 5.0.7
8. Какая команда используется для выбора нужной базы данных в Redis?
Для начала надо узнать, сколько баз данных есть на сервере, для этого выполним команду:

Данная команда отображает нам все индексы баз данных, а также количество ключей в них. Зная индекс базы данных, можно теперь сделать ее активной:

Ответ: SELECT
9. Сколько ключей присутствует в базе данных с индексом 0?
Выполнив в прошлом задании команду INFO keyspace, мы узнали, что эта БД имеет 4 ключа. Также можно выполнить команду:

Она также позволяет получить количество ключей.
Ответ: 4
10. Какая команда используется для получения всех ключей в базе данных?
В прошлом задании мы рассмотрели команду KEYS * для получения всех ключей.
Ответ: KEYS *
11. Получение финального флага
Что бы вытянуть значение из ключа, необходимо использовать команду get:

Заключение
В этой статье мы рассмотрели основные моменты работы с базой данных Redis, включая ее функциональность, типы данных и команды для взаимодействия с сервером. Понимание особенностей баз данных важно, так как она может быть уязвима для атак, таких как несанкционированный доступ и неправильная конфигурация.
Если у вас остались вопросы или вы хотите что-то подробно обсудить, не стесняйтесь делиться своими мыслями в комментариях!