Как стать автором
Обновить

Как взломают ваш Postgres

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров15K

Все знают что плохо оставлять дефолтные пароли. Но что произойдет если поднять PostgreSQL позабыв о безопасности? Нас взломают? Как быстро взломают?

Я развернул PostgreSQL, настроил сборку логов и ниже расскажу что будет (спойлер — вас очень быстро похекают).

Настройка лабы

Я развернул постгрес с дефолтным паролем по официальной инструкции с dockerhub. Я это сделал через платформу defbox.io, запустив лабу PostgreSQL, но это можно сделать и самому выполнив вот такую команду:

docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres

Если вы не любите докер то можно сделать вот так:

apt install -y postgresql postgresql-contrib
systemctl start postgresql.service
cd /etc/postgresql/14/main/
echo "host  all      all      0.0.0.0/0      md5" >> pg_hba.conf
echo "log_statement = all" >> /etc/postgresql/14/main/postgresql.conf
sed -i -e 's/#listen_addresses/listen_addresses/g' postgresql.conf
sed -i -e 's/localhost/*/g' postgresql.conf

Дефбокс еще поднимает эластик и настраивает файлбит с аудитбитом.

Взлом

Через 11 часов после запуска лабы я получаю вот такое письмо:

Наш постгрес успешно подключен к ботнету ?
Наш постгрес успешно подключен к ботнету ?

Первым делом я удалил нашу базу данных. Кстати, в этом же письме дали хорошие инструкции по тому что делать если вы храните семейные фото во взломанной БД и ни в коем случае не хотите их терять:

https://docs.digitalocean.com/products/droplets/how-to/recovery/recovery-iso/

Еще дают советы о том что делать если вы совсем не хотите удалять свой сервер — вкратце надо:

  1. Проверить auth.log найти подозрительные логины

  2. Поменять пароли для всех пользователей

  3. Найти малварь в списке процессов

  4. Найти исполняемый файл конкретной малвари у вас на сервере

  5. С помощью антивируса удалить малварь

  6. Надеяться что все ок

Я инструкциям следовать не стал и сразу удалил сервер, мне он больше не нужен, все логи должны у меня быть.

Расследование

Сразу смотрим в логи постгреса, который записывает все команды:

Странная команда сразу видна в логах
Странная команда сразу видна в логах

Полностью команда выглядит вот так:

Команда закодирована в base64
Команда закодирована в base64

Ниже декодированный base64:

Что происходит на скриншотах выше:

  1. Хакер находит постгрес к которому можно сбрутфорсить учетку

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

  3. Наш постгрес попадает в дружную семью майнеров, брутфорсеров и ддосеров интернетов.

  4. ????

  5. Профит (но не для нас)

Итог

Итоговый таймлайн выглядит примерно так:

15.50 — Развернули постгрес

22.32 — Постгрес взломали и подключили к ботнету

03.00 — Пришло письмо с абузой от провайдера

08.00 — Мы удалили сервер

Мы подняли распространенную БД по самому популярному способу из Гугла — запустив докер контейнер по официальной инструкции. Нас взломали за 7 часов.

Довольно очевидно что нужно было делать чтобы не попасть в глупую ситуацию:

  1. Не использовать дефолтные пароли

  2. Харденить (в мерках разумного) свои системы

Теги:
Хабы:
Всего голосов 17: ↑13 и ↓4+12
Комментарии27

Публикации

Истории

Работа

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн