Открытый PostgreSQL

Открытый PostgreSQL

Михаил Аксенов

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

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

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

Я развернул постгрес с дефолтным паролем по официальной инструкции с dockerhub. Я это сделал через платформу https://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

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

  1. Хакер находит постгрес к которому можно сбрутфорсить учетку
  2. Используя постгрес он скачивает скрипт и подключает виртуальную машину к ботнету.
  3. Наш постгрес попадает в дружную семью майнеров, брутфорсеров и ддосеров интернетов.
  4. ????
  5. Профит (но не для нас)

Итог

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

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

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

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

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

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

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

Узнать как детектировать такие атаки и научиться их детектировать можно у нас на https://defbox.io




Report Page