Telegram
Что имеем
- нам развернули Elasticsearch и Kibana, в который льются логи с помощью
filebeat
иauditbeat
- в каждой лабораторной работе есть
Highlights
, которые позволяют нам изучать систему с помощью наводящих вопросов - еще нам выдали приложение на Flask, которое содержит RCE
- нужно писать правила в ELK, которое при сработке будет отправлять webhook - аналог флагов
Приложение
Попробуем потыкаться в него и поймем, что у приложения есть 2 эндпоинта:
/create
- для создания заметки/note
- для поиска заметки
ELK
Для начала перейдем в ELK в раздел Discover.
Чтобы понять, из-под какого пользователя запущен сервис, добавим следующие поля:
process.name
process.args
user.name
Прокрутим в самое начало и увидим пользователя notebook
:
Атака #1: Reverse shell & service DoS
Запустим первую атаку Reverse shell & service DoS.
После атаки находим обращение на эндпоинт /create
и обнаруживаем лог-файл /var/log/tiffany.log
.
Атака происходит в 14:40, ищем по таймлайну события около этого времени. Обнаруживаем запуск реверс-шелла:
Так же мы видим, что наш сервис остановлен. Это может свидетельствовать об остановке с помощью команды systemctl
:
Попробуем написать свое правило, перейдя в Security => Manage => Rules => Create new rule. Далее выберем Custom query.
Впишем вот такое правило:
event.category: "process" and process.name: "python3" and process.args: "*shell*"
Дадим ему имя Attack #1: Python Reverse Shell (и такое же описание), а частоту срабатывания правила поставим один раз в 2 минуты, в качестве действия сделаем Webhook POST-запрос на нашу ссылку, выданную в личном кабинете (в body можно вписать что угодно). Обратите внимание, что после нажатия кнопки Recreate ссылка обновится.
Аналогичным образом добавим остановку сервиса:
event.category: "process" and process.name: "systemctl" and process.args: [systemctl, stop, notebook.service]
После этого снова жмем на атаку. Ждем 5 минут и видим сработку алерта.