«Копай глубже» и «Пропавший мастер» — эти названия могли бы красоваться на афишах свеженьких хорроров, но их уже «зарезервировала» команда главного онлайн-кэмпа по практической кибербезопасности CyberCamp 2024 для заданий киберучений.

Задания CyberCamp 2024 максимально приближены к реальности. В этом году они стали еще страшнее (в плане сложности), темнее (погружаться пришлось глубоко), рискованнее (принимать решения необходимо было быстро). Обнаружить след атакующего в «темной части» сети, представить себя в роли частного детектива, чтобы выйти на мастера-оборотня, и многое другое — разбираем самые жуткие ИБ-задачи, позволяющие получить опыт расследования инцидентов ИБ и работы с популярными средствами защиты. Жутко интересные, конечно!

«Копай глубже»

Задание от Axel PRO

Количество баллов: 160

Фракция: Blue Team

Время на выполнение: 60 минут

Что случилось?

Что делать?

Изучите события в SIEM, поймите, как «злоумышленник» проник на хост и какие инструменты использовал. Проанализируйте действия на хосте, с которого инициировалась «атака». Для этого необходимо использовать систему хранения логов LogIQ.

Действуем!

  1. Находим инцидент в MaxPatrol SIEM.

    В MaxPatrol SIEM видим инцидент, в котором сообщается о попытке осуществления брутфорса. В инциденте были задействованы активы 10.31.211.112 (атакующий) и 10.31.211.114 (атакуемый).

    Также есть сообщения средней важности, одно из них — подключение по SSH, где указана информация об узле, который стал жертвой (10.31.211.114), и адрес отправителя трафика (10.31.211.112).

    Событие в MaxPatrol SIEM - <38>Sep  4 14:34:43 receiver-main sshd[908]: Accepted password for administrator from 10.31.211. 112 port 40880 ssh2

  2. Так как узлы, задействованные в атаке, не покрываются мониторингом MaxPatrol SIEM, переходим в LogIQ (это система хранения логов, поддерживающая SQL-запросы для поиска в архивных данных). Ищем такое же событие о подключении пользователя administrator с узла 10.31.211.112 на узел receiver-main (10.31.211.114).

    SQL-запрос:
    SELECT timestamp, subject_account_name, msgid, action, message FROM messages WHERE message LIKE '%Accepted password for administrator from 10.31.211.112%

    Проанализируем события с атакующего узла (10.31.211.112), связанные с пользователем administrator. Для этого фильтруем события:

    event_src_ip = '10.31.211.112
    msgid = USER_ACCT
    message` LIKE '%administrator%

    SQL-запрос:
    SELECT `timestamp`, `subject_account_name`, `msgid`, `action`, `message` FROM `messages` WHERE `event_src_ip` = '10.31.211.112' AND `msgid` = 'USER_ACCT' AND `message` LIKE '%administrator%' ORDER BY `timestamp` ASC

    Видим подключение по SSH с учетной записью administrator с узла 10.31.211.115 на узел 10.31.211.112.

    Поищем другие подключения с узла 10.31.211.115 на узел 10.31.211.112.

    SELECT `timestamp`, `subject_account_name`, `msgid`, `action`, `message` FROM `messages` WHERE `event_src_ip` = '10.31.211.112' AND `msgid` = 'USER_ACCT' AND `message` LIKE '%10.31.211.115%' ORDER BY `timestamp` ASC

    Видим, что пользователь vpavlov подключался на атакующий узел (114) через 3 минуты после пользователя administrator.

  3. Проверяем возможную связь пользователей vpavlov и administrator. Ищем события, в которых фигурируют оба пользователя.

    SQL-запрос:
    SELECT timestamp, subject_account_name, msgid, action, message FROM messages WHERE message LIKE '%vpavlov%' AND message LIKE '%administrator%' ORDER BY timestamp ASC

    Ищем хронологически первые события — видим, что administrator добавил пользователя (adduser) vpavlov и добавил его в группу sudoers.

    На данном этапе уже знаем, что administrator (с хоста 10.31.211.115) зашел на 10.31.211.112, создал пользователя vpavlov. Затем, в следующую минуту vpavlov зашел с хоста 10.31.211.115 на 10.31.211.112.

  4. Продолжаем искать события, в которых участвовал vpavlov.

     Удостоверимся в причастности пользователя vpavlov к атаке на узел 10.31.211.114.

    SQL-запрос:
    SELECT `timestamp`, `subject_account_name`, `msgid`, `action`, `message` FROM `messages` WHERE `message` LIKE '%vpavlov%' AND `message` LIKE '%10.31.211.114%'

    На основе найденных событий можно заключить, что пользователь vpavlov с атакующего узла (10.31.211.112) запустил скрипт в powershell на атакуемом узле (10.31.211.114) с помощью УЗ administrator (от узла 114).

  5. Проверим, что именно было запущено пользователем vpavlov через powershell.

    SQL-запрос:
    SELECT `timestamp`, `subject_account_name`, `msgid`, `action`, `message` FROM `messages` WHERE `message` LIKE '%vpavlov%' AND `subject_process_name` = 'pwsh' ORDER BY `timestamp` ASC

    Далее необходимо провести аналитику хронологически первых событий с пользователем vpavlov и процессом pwsh.

    Был запущен скрипт AtomicRedTeam, который представляет собой набор автоматизированных атак.

    Теперь дополнительно удостоверимся, что скрипт, запущенный vpavlov’ым через powershell на атакуемом узле (10.31.211.114), и есть AtomicRedTeam.

    SQL-запрос:
    SELECT `timestamp`, `event_src_ip`, `subject_account_name`, `msgid`, `action`, `message` FROM `messages` WHERE `message` LIKE '%Atomic%' AND `message` LIKE '%%10.31.211.114%%' ORDER BY `timestamp` ASC

    Видим запуск скрипта AtomicRedTeam на атакуемом узле (10.31.211.114), в том числе указание на имя определенной запускаемой техники (T1014).

Что это было?

По итогам расследования мы выяснили, что administrator c узла 10.31.211.15 создал пользователя vpavlov на узле 10.31.211.112. Затем злоумышленник под учетной записью vpavlov зашел на 10.31.211.112 для проведения атаки. На атакующем узле был запущено удаленное выполнение скрипта AtomicRedTeam из powershell на атакуемом узле 10.31.211.114. Благодаря связке LogIQ + MaxPatrol SIEM нам удалось распутать цепочку атаки до конца. Без использования лог-менеджера мы бы не смогли определить, что злоумышленник действовал изначально с УЗ administrator, а не vpavlov, — соответственно, атака бы продолжилась далее.

Команда из корпоративной лиги «АХудиБудет» смогла выполнить это задание полностью, заработав максимальное количество баллов.

«Пропавший мастер»

Задание от Jet Nautilus

Количество баллов: 160

Фракция: Red Team

Время на выполнение: 40 минут

Что случилось?

Что делать?

Исследуйте коммерческое предложение (на вход участникам предоставляется QR-код, который содержит ссылку на коммерческое предложение в Google-таблице) и соберите необходимые улики для выявления личности хитроумного мошенника.

Нужно собрать все флаги:

  1. Адрес электронной почты, привязанный к Google-таблице;

  2. Чат в Telegram, который администрирует мошенник;

  3. Название компании мошенника (ответ указывается через нижнее подчеркивание);

  4. Имя пользователя в GitHub;

  5. Фамилию и имя мошенника;

  6. Населенный пункт, в котором скрывается мошенник.

Действуем!

  1. Для идентификации адреса электронной почты используем опенсорсный инструмент Xeuledoc (https://github.com/Malfrats/xeuledoc/blob/master/README.md). Скрипт показывает информацию, включая имя владельца документа, адрес электронной почты Gmail и номер Google ID любого общедоступного документа Google.

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

  2. Найденный адрес электронной почты не дает результата в поисковой выдаче, поэтому пробуем произвести поиск по части email. Для поиска имени пользователя в социальных сетях и различных интернет-сервисах воспользуемся популярными OSINT-инструментами и ботами, например Maigret или Sherlock.

    Находим пользователя в Telegram и изучаем профиль мошенника: исследуем, в каких каналах и чатах он состоит — для этого используем ботов (например, TeleSINT или fun stat bot).

    Находим чат в Telegram, который администрирует мошенник, и фиксируем название (флаг). В чате указана ссылка на пользователя GitHub, что тоже является флагом.

    Исследуем репозиторий пользователя и находим закодированные креды для следующего задания (так задания связываются между собой).

    Для дешифровки используем любые онлайн-инструменты, к примеру декодер Base64.

  3. Вернемся к Telegram-аккаунту мастера, чтобы изучить описание в профиле — в нем указана ссылка на веб-сайт https://masterwood.tilda.ws, который окажется нерабочим.

    Историю сайта можно посмотреть в web.archive.org, где во временной шкале отображены все копии. В одном из архивов можно найти информацию о названии компании Wood Master (флаг) и дополнительные контакты, которые понадобятся для дальнейшего поиска флагов.

    Второй найденный email приведет к социальной сети «ВКонтакте», где участник узнает фамилию и имя мошенника и получит очередной флаг. Как и с поиском аккаунта в Telegram, здесь используются инструменты для поиска аккаунтов по нику.

  4. Изучаем страницу мошенника — в разделе «Фото» есть единственный альбом с набором похожих фотографий.

    Здесь представлена одна фотография, разбитая на несколько частей. С помощью различных онлайн-сервисов для создания фотоколлажей можно легко собрать это изображение в его оригинальный вид.

    После того как все элементы будут собраны воедино, воспользуемся сервисом «Яндекс.Картинки» (либо любым альтернативным) и прогоним через него фотографию. Определим местонахождение башни — это и есть интересующий населенный пункт, в котором скрывается мошенник. Финальный флаг в нашем задании найден.

Что это было?

В результате мы собрали все необходимые улики для выявления личности мошенника и установили его местоположение — он скрывается в селе Симбухово Починковского муниципального округа.

Сразу пять команд заработали максимальное количество баллов за это задание: K0TN, IBEEE, 4ip5o3d1 из студенческой лиги; CITRUS, czon3 — из корпоративной.

Лайфхак

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

В задании не было скрытых сложностей или подводных камней. Главное, что требовалось для успешного выполнения, — это знание основ OSINT. Однако многие участники столкнулись с проблемой недостатка опыта работы с определенными инструментами. Например, боты для поиска упоминаний в группах не так уж распространены, и это создало некоторые трудности. В результате уходило значительное время на поиски необходимой информации, что в свою очередь увеличивало общее время, затрачиваемое на выполнение задания.

Также одним из «поедателей» времени были и ложные сработки по инструментам Maigret и Sherlock, так как ник оказался неуникальным. Но тут использовалась одна аватарка, это должно было помочь сэкономить время.

Продолжение следует!

Комментарии (0)