Search
Write a publication
Pull to refresh

HackTheBox Labs (Starting Point) — Redeemer

Level of difficultyEasy
Reading time3 min
Views376

Доброго времени суток!

Продолжаем цикл статей по 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:

sudo nmap -sS 10.129.136.187 -n -Pn --disable-arp-ping
sudo nmap -sS 10.129.136.187 -n -Pn --disable-arp-ping
  • -sS - Используем для поиска открытых портов из топ 1000;

  • -n - Отключаем разрешения DNS;

  • -Pn - Отключаем запросы ICMP Echo.

  • --disable-arp-ping - Отключает ARP-пинг

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

sudo nmap -sS 10.129.136.187 -n -Pn --disable-arp-ping -p-
sudo nmap -sS 10.129.136.187 -n -Pn --disable-arp-ping -p-
  • -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-адреса:

redis-cli -h 10.129.136.187
redis-cli -h 10.129.136.187
  • -h - Используется для указания хоста (IP-адреса или доменного имени) сервера, к которому нужно подключиться

Ответ: -h

6. Какая команда используется для получения информации и статистики о сервере Redis после подключения к нему?

После подключения, необходимо ввести команду INFO, и после выведется вся информация о сервере Redis:

INFO
INFO

Ответ: INFO

7. Какая версия сервера Redis используется на целевой машине?

По скриншоту в прошлом задании видно, что версия БД 5.0.7.

Ответ: 5.0.7

8. Какая команда используется для выбора нужной базы данных в Redis?

Для начала надо узнать, сколько баз данных есть на сервере, для этого выполним команду:

INFO keyspace
INFO keyspace

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

SELECT 0
SELECT 0

Ответ: SELECT

9. Сколько ключей присутствует в базе данных с индексом 0?

Выполнив в прошлом задании команду INFO keyspace, мы узнали, что эта БД имеет 4 ключа. Также можно выполнить команду:

KEYS *
KEYS *

Она также позволяет получить количество ключей.

Ответ: 4

10. Какая команда используется для получения всех ключей в базе данных?

В прошлом задании мы рассмотрели команду KEYS * для получения всех ключей.

Ответ: KEYS *

11. Получение финального флага

Что бы вытянуть значение из ключа, необходимо использовать команду get:

get flag
get flag

Заключение

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

Если у вас остались вопросы или вы хотите что-то подробно обсудить, не стесняйтесь делиться своими мыслями в комментариях!

Tags:
Hubs:
+1
Comments0

Articles