Привет!

Сегодня разберем практический кейс «Инфраструктурный бэкдор» из раздела «Атаки» для блюшников с платформы Standoff Cyberbones.

Подробнее

Описание задания:

У открытого окна в кабинете Додсон закурил свою последнюю сигарету на этот день. Вечерело. Фонари медленно загорались, освещая влажную после дождя дорогу. Идиллию прервал громкий хлопок двери. В кабинет влетел Микаел:
-Додсон! У нас проблемы!
Додсон окинул его уставшим взглядом и безразлично спросил:
-Что случилось?
Не отдышавшись, Микаел продолжил:
-Специалисты центра мониторинга заметили подозрительный туннель на периметре!
Глаза Додсона налились кровью:
-Нужно немедленно понять, как они это провернули!
Микаел вздохнул:
-Додсон, этот туннель на твоем компьютере...

Шаг 0. Поиск необходимого актива

Исходя из диалога сотрудников компании, нам стало известно, что атака произошла на узле Додсона, поэтому необходимо определить название УЗ, хоста и его адрес. Для этого можно перейти в перечень сервисов на платформе:

Шаг 1. Ищем точку входа: как заразились?

Самый сложный этап - найти, с чего всё началось. Исходя из диалога Додсона и Микаела, нам известно, что специалисты центра мониторинга заметили подозрительный туннель на узле Додсона. Давайте найдём, какая программа его создала.

Для этого, необходимо выполнить поиск сетевой активности (подключения, каналы и т.д.), которую фиксируют события Sysmon с ID 3, 17, 18 и событие безопасности 5156:

event_src.host = "COMP-9794.tube.stf" and msgid in [3, 17, 18, 5156]

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

Среди всех процессов выделяются два подозрительных: winword.exe и excel.exe. Офисные программы не должны создавать постоянные сетевые подключения.

Теперь посмотрим, запуск какого файла привел к инициализации сетевой активности с хостом злоумышленника. Для этого ищем события создания процессов (Sysmon ID 1, 4688) с именами winword.exe или excel.exe:

event_src.host = "COMP-9794.tube.stf" and msgid in [1, 4688] and object.process.name in ["winword.exe", "excel.exe"]

В самых ранних событиях виден запуск Word с документа CV.doc из папки C:\Attachments. Это классический признак фишинговой атаки (T1566) - пользователь открыл вложение из письма.

Ответ: C:\Attachments\62e49b7b5fb04453ac5e0092deee5a9dCV.doc

Шаг 2. Что сделал макрос? Ищем первое соединение

Мы выяснили, что заражение пошло от документа Word. Теперь посмотрим, что происходило сразу после его запуска.

Отфильтруем логи по хосту и процессу winword.exe:

event_src.host = "COMP-9794.tube.stf" AND subject.process.name = "winword.exe"

В логах видно, что Word, помимо загрузки легитимных библиотек, подключался к именованному каналу srvsvc. Это подозрительно. Осталось разобраться к кому идет подключение:

event_src.host = "comp-9794.tube.stf" and object.name = "srvsvc"

Поиск по названию канала ничего не дал. Попробуем найти прямое сетевое соединение, которое установил процесс winword.exe после запуска:

event_src.host = "comp-9794.tube.stf" and object = "connection" and object.process.name = "winword.exe"

Вредоносный макрос внутри документа прописал команду на подключение к IP-адресу злоумышленника. Это первая связь хоста жертвы с командным сервером.

Ответ: 10.126.10.34

Шаг 3. Ищем следы разведки внутри системы

Злоумышленник внутри системы Додсона (15:17:41). Следуя по матрице MITRE, дальше должно быть инициировано изучение окружения. На данном этапе, необходимо определить его дальнейшую активность. Для этого можно посмотреть все действия УЗ на узле, связанные с разведкой:

event_src.host = "comp-9794.tube.stf" and subject.account.name = "a_dodson" and msgid in [4688, 1]

Среди тысяч событий ищем процессы нехарактерные для обычной работы системы, ориентируясь на тактику MITRE Discovery (TA0007). В результате, удалось определить факт разведки, связанной с попыткой узнать текущее имя пользователя, используя whoami.exe.

Ответ: c:\windows\syswow64\whoami.exe

Шаг 4. Доставка полезной нагрузки

Разведка проведена. Дальше злоумышленнику нужен более функциональный инструмент, чем макрос. Вручную перебирать все события сложно. Воспользуемся "плюшкой" MP SIEM - полем importance (важность). Система сама помечает подозрительные события высоким приоритетом:

event_src.host = "comp-9794.tube.stf" and importance = "high"

Среди результатов сразу видим событие о загрузке файла gost-windows-amd64.exe по HTTP, используя curl.exe

Пользуя��ь уже установленным доступом, злоумышленник вручную или с помощью скрипта скачал на хост основной инструмент - GOST для создания туннеля.

Ответ: http://10.126.10.34:10005/gost-windows-amd64.exe

Шаг 5. Определяем хэш инструмента

Исходя из примера отчета расследования, необходимо найти хэш исполняемого файла (в данном случае, для файла gost.exe). Найти его можно, используя функционал Sysmon (событие 1), который позволяет узнать хэш запускаемого файла:

event_src.host = "comp-9794.tube.stf" and object.name = "gost.exe" and msgid = 1

В найденном событии поле object.process.hash содержит нужный нам хэш.

Ответ: D00833318A04CAA019C6F95DCB3598AD947D405010BFB2F3CBD04530A00BC3A4

Шаг 6. Определяем абсолютной путь инструмента

Финальный шаг - локализовать вредоносный файл в файловой системе. Для этого подходит то же самое событие запуска gost.exe, которое мы использовали в шаге 5:

В этом событии есть поле object.process.fullpath, которое показывает полный путь к исполняемому файлу. Вредоносная утилита была сохранена в папку Documents пользователя Додсона, откуда и была запущена.

Ответ: c:\users\a_dodson\documents\gost.exe

Итог: Мы восстановили полную цепочку атаки: Фишинг -> Запуск макроса -> Установка соединения -> Разведка -> Доставка полезной нагрузки -> Создание туннеля.

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


  1. diakin
    19.10.2025 08:05

    winword.exe и excel.exe. Офисные программы не должны создавать постоянные сетевые подключения.

    А нельзя просто запретить офисным программам создавать постоянные сетевые подключения?


    1. artrone Автор
      19.10.2025 08:05

      Можно. Есть несколько вариантов: Firewall, Applocker,  Microsoft Office Trust Center


    1. apcs660
      19.10.2025 08:05

      а непостоянные можно? записываем: пакетный режим можно.


  1. apcs660
    19.10.2025 08:05

    Один знакомый любил фразу "в системе обнаружен вирус: Windows!" и при этом смеялся.. У меня до сих пор Windows сладко спит в виде виртуальных машин (10я и 11я) - включаю изредка, может раз в полгода.


    1. artrone Автор
      19.10.2025 08:05

      истинный линуксовод :)


      1. apcs660
        19.10.2025 08:05

        Когда я встретил этого человека в стартапе, то я был свежим MCSE (NT 4.0), перековывавшимся в программиста; в стартапе для разработки был только Линукс, пришлось освоить. В 2001 сдал LPI и на этом успокоился. Были проекты и на windows позже, C#, C++ но после мака не смог себя заставить вернуться на windows и в итоге уже лет 10 сижу в Линукс в качестве десктопа. В чем причина? Основная причина возможность почти полного контроля системы, а в случае windows даже админ на самом деле гость.


        1. artrone Автор
          19.10.2025 08:05

          Всё верно, но каждому своё. Кому-то нравится рулить всем в системе, а кто-то даже UAC никогда не вызывал, подтверждая открытие файла.


    1. MxMaks
      19.10.2025 08:05

      Графика в вмках очень медленно работает, с тех пор появились улучшения какие?


      1. apcs660
        19.10.2025 08:05

        сложно сказать - не пользуюсь акселераторами в вм, пользуюсь CPU графикой, в игрушки не играю. Перешел на мелкие lenovo/minisforum, к ним пару eGPU прицепил, для CUDA но не для графики (серверная установка). Если нужно поехать (а езжу часто) - в рюкзак и небольшую сумку кинул и кластер перевез

        ВМ только для офиса и иногда для бухгалтерского софта.


  1. AlexeyK77
    19.10.2025 08:05

    ага, так вы и запретите сейчас офисному ПО создавать сетевые соединения. Это когда микрософт вложил максим умусилий, что бы все эти офисы365 непрерывно были в онлайне с облаком и всякими внутренними ресурсами внутри сети. Это очень нетривиальное дело, почти утопическое. Времена, когда можно было просто фаерволом подрезать трафик и ничего не поломать ушли в прошлое. Ну и вишенка, сейчас трафик приложения проксируется через встроенный броузер, и фаерволом вообще уже не подрежешь. Кстати фаерволов на винду, где можно было указывать не только имя процесса, но и parent process вообще нет.


  1. nikulin_krd
    19.10.2025 08:05

    А теперь представим что атакующий имеет чуть больше скила, чем банальный скрипткидди. Что будете делать с инжектами в легитимные процессы и всякого рода методами скрытия "полезной" нагрузки?


    1. artrone Автор
      19.10.2025 08:05

      Тогда уровень статьи не был бы "Лёгкий", а разбор был бы другим)