Распечатанный фрагмент матрицы MITRE ATT&CK на кремовой бумаге лежит на светлом столе. Рядом — перьевая ручка и рукописная пометка о боковом перемещении, три ячейки выделены синим.


Понедельник, 9:15 утра. EDR генерирует алерт: обращение к процессу lsass.exe через comsvcs.dll на рабочей станции бухгалтерии. Аналитик L1 подтверждает true positive, изолирует хост. Тикет закрыт, все довольны. Но атакующий-то начал за 40 минут до срабатывания. По данным CrowdStrike Global Threat Report 2025, среднее время breakout - перехода к lateral movement после initial access - составило 62 минуты в 2024 году. Рекордный случай - 51 секунда. За те 40 минут злоумышленник мог оказаться на трёх-четырёх соседних машинах, а SOC празднует победу над одним хостом. Threat hunting lateral movement начинается именно здесь: не «заблокирован ли первый хост», а «найдены ли все остальные точки присутствия». Разница между этими двумя вопросами - разница между закрытым тикетом и закрытым инцидентом.

Карта техник: что именно ищем при threat hunting lateral movement​

Прежде чем открывать консоль SIEM, определяем конкретный набор техник, которые оставляют следы в логах. Каждая техника MITRE ATT&CK - это отдельный тип артефактов, и искать их нужно по-разному.

ТехникаMITRE IDКлючевые артефактыТипичный сценарий
SMB/Windows Admin SharesT1021.002, Lateral MovementEventID 5145, 7045, файл от System PID 4PsExec, копирование payload на C$/ADMIN$
Remote Desktop ProtocolT1021.001, Lateral MovementEventID 4624 Type 10, 1149 (TerminalServices)Интерактивная сессия на сервере
Pass the HashT1550.002, Lateral MovementEventID 4624 Type 3 с NTLM без предшествующего 4776Переиспользование NTLM-хеша
Pass the TicketT1550.003, Lateral MovementEventID 4769, аномальный encryption typeGolden/Silver Ticket через Mimikatz
Scheduled Tasks (удалённые)T1053.005 (Execution, Persistence)EventID 4698, сетевое подключение svchost по DCE/RPCОтложенное выполнение на целевом хосте
LSASS MemoryT1003.001, Credential AccessSysmon EventID 10 (ProcessAccess к lsass)Дамп credentials перед перемещением
Valid AccountsT1078, Initial Access / Persistence / Privilege Escalation / Defense EvasionEventID 4624 с нетипичного source на нетипичный destИспользование украденных credentials
Clear Windows Event LogsT1070.001, Defense EvasionEventID 1102 (Security Log Cleared)Зачистка следов после перемещения

Decision tree для выбора направления поиска:
  1. Алерт на credential access (T1003.001) - ищем Logon Type 3 и Type 10 с source IP скомпрометированного хоста на все остальные машины в окне от момента компрометации
  2. Обнаружен новый сервис на удалённом хосте (EventID 7045) - проверяем предшествующий EventID 4624 с нетипичного source
  3. Аномальный Kerberos-тикет - фильтруем EventID 4769 по Encryption Type 0x17 (RC4-HMAC), который указывает на Pass-the-Hash или Overpass-the-Hash при включённом AES в домене
  4. Нетипичная пара src-dst в RDP-сессиях - сравниваем с baseline за 30 дней

Требования к окружению​

КомпонентМинимальная конфигурацияРекомендация
Windows Event ForwardingSecurity Log: 4624, 4625, 4648, 4672, 4776, 5145, 7045Добавить 4698, 4769, 1102
SysmonВерсия 14+, конфиг SwiftOnSecurityEventID 1, 3, 10, 11 - минимальный набор
SIEMSplunk 9.x (SPL) / Elastic 8.x (EQL) / Microsoft Sentinel (KQL)Retention от 90 дней для ретроспективного анализа
СетьNetFlow или Zeek для корреляции хостовых и сетевых событийЗеркалирование межсегментного трафика
Права доступаRead-доступ к индексам Security, System, Sysmon в SIEMВозможность создания ad-hoc scheduled searches

Запросы ниже - в SPL (Splunk). Адаптация под KQL или EQL требует замены синтаксиса, но логика корреляции та же.

SIEM-запросы для обнаружения бокового перемещения​

PsExec и SMB Admin Shares (T1021.002)​

PsExec - один из самых частых инструментов lateral movement. И у пентестеров, и у реальных групп. Любят его за простоту: скопировал бинарь через ADMIN$, создал сервис, получил шелл. По исследованию Elastic Security Labs, при копировании файла через SMB на целевой машине событие file creation генерируется виртуальным процессом System (PID 4). Обычные пользовательские процессы файлы от имени ядра не создают - это и есть ключевой артефакт.

Что ищем:
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

Индикаторы компрометации IOC: от статических хешей к поведению​

79% атак в 2024 году обошлись без malware (CrowdStrike) - атакующие работают hands-on-keyboard, используя встроенные инструменты ОС: PowerShell, WMI, net.exe. Файловых IOC нет. Хешировать нечего. Threat hunting lateral movement в malware-free сценариях строится исключительно на поведенческих индикаторах.

Поведенческие IOC для lateral movement:
  • Один source IP генерирует Logon Type 3 на 5+ хостов за 10 минут - характерный паттерн credential spraying или массового перемещения
  • Учётная запись впервые аутентифицируется на сервере, к которому не обращалась за 90 дней baseline - Valid Accounts (T1078)
  • EventID 4648 (Explicit Credentials) - пользователь явно указывает другие credentials при подключении (runas /netonly или аналогичная техника)
  • EventID 1102 (Security Log Cleared) на хосте, который фигурировал как target в цепочке аномальных аутентификаций - Clear Windows Event Logs (T1070.001)
  • Remote System Discovery (T1018): выполнение net view, nltest /dclist:, dsquery, arp -a на скомпрометированном хосте перед следующим прыжком
При обогащении IOC через MISP или OpenCTI - приоритет при активном инциденте: сначала scope (масштаб), потом contain (изоляция), потом enrich (контекст для postmortem). Обогащение не должно задерживать containment. Видел ситуации, когда аналитик тратил час на поиск хеша в VirusTotal, пока атакующий спокойно перемещался по сети.

Скомпрометированный легитимный хост - слепая зона SOC​

Сценарий, который большинство SOC пропускают: lateral movement от хоста, который не был предметом начального алерта. Атакующий скомпрометировал рабочую станцию A, получил credentials, перешёл на хост B - и дальше все действия идут с B, которого нет в поле зрения. Хост A изолирован, тикет закрыт, а злоумышленник сидит на B и посмеивается.

По данным Mandiant M-Trends 2025, медианное время обнаружения составило 11 дней в 2024 году. 57% организаций узнали об инциденте от внешней стороны. Атакующий провёл почти две недели в сети, перемещаясь между хостами, - внутренние средства его не заметили. С учётом оборотных штрафов за утечку персональных данных в российском законодательстве, каждый пропущенный день dwell time - это рост не только технического, но и финансового ущерба.

Методика поиска скомпрометированных легитимных хостов:
  1. Pivot от известного хоста. Все EventID 4624 Type 3 и Type 10, где source IP = скомпрометированный хост. Каждый destination - потенциальная точка присутствия.
  2. Рекурсивный обратный pivot. Для каждого найденного destination - куда дальше аутентифицировался этот хост. Минимум 2-3 уровня глубины. Да, это муторно. Но без этого вы найдёте только первый хоп.
  3. Аномалии Valid Accounts (T1078). Учётная запись атакующего могла аутентифицироваться на хостах вне обычного baseline. Запрос: EventCode=4624 Account_Name=<compromised> | stats values(dest) | diff baseline_hosts.
  4. Следы разведки (T1018). На каждом подозрительном хосте ищем выполнение net view, nltest, arp -a - разведка предшествует следующему прыжку.
Insider threat сценарий технически идентичен: вместо внешнего атакующего действует сотрудник с валидными credentials. Поведенческие IOC те же - нетипичные dst-хосты, аномальное время активности, несвойственные обращения к сервисам.

Detection-чеклист: корреляционные правила для lateral movement​

Готовый набор правил для имплементации в SIEM как saved searches или scheduled alerts.

ПравилоИсточникЛогика корреляцииMITRE IDПриоритет
Mass logon spraySecurity 4624 Type 3Один src - 5+ уникальных dest за 10 минT1021.002Высокий
RC4 Kerberos anomalySecurity 4769Encryption Type 0x17 при AES-доменеT1550.003Высокий
Remote service installSystem 7045 + Security 46247045 в пределах 10 сек после 4624 Type 3 с нетипичного srcT1021.002Критический
LSASS access chainSysmon 10 + Security 4624ProcessAccess к lsass, затем Type 3 от того же хостаT1003.001Критический
Remote task creationSecurity 4698 + 4624Task create + network logon от внешнего IP в окне 60 секT1053.005Высокий
Log wipe on targetSecurity 1102Очистка Security Log на хосте из scope инцидентаT1070.001Критический
First-time src-dst pairSecurity 4624Logon от пары, отсутствующей в 90-дневном baselineT1078Средний
Explicit cred switchSecurity 4648Явная подстановка credentials, не совпадающих с текущим пользователемT1078Средний
RDP from non-admin hostSecurity 4624 Type 10RDP-вход с рабочей станции, не входящей в список jump-серверовT1021.001Средний

Каждое правило требует baseline. Без baseline - поток ложных срабатываний, от которого аналитики L1 выгорают за неделю. Начните с stats dc(dest) by src за 30 дней - это буквально один запрос.

Из расследований lateral movement, в которых я участвовал за последние два года, в каждом втором проблема была не в отсутствии логов, а в том, что никто не знал, как выглядит «нормально». Аналитик видит EventID 4624 Type 3 от одного хоста к другому и не может сказать: это штатная работа бэкап-агента или атакующий переместился. IBM X-Force фиксирует, что в dark web ежедневно появляется порядка 6000 свежих пар учётных данных. При таком потоке украденных credentials единственный способ отличить легитимное использование от злоумышленного - знать, что было нормой вчера.

И вот в чём системная проблема: команды вкладываются в новые SIEM-лицензии, покупают threat intelligence фиды, нанимают threat hunter-ов - но не выделяют двух недель на построение baseline аутентификаций и типичных сетевых потоков. Без этого фундамента даже лучшие запросы из этой статьи утонут в шуме. Возьмите любое правило из таблицы выше, запустите без baseline - получите сотни срабатываний в день. Запустите с baseline - получите 5-10 событий, каждое из которых стоит внимания. Кто хочет разобрать Sigma-правила и корреляции под конкретный стек детекции lateral movement - тематический тред с playbook'ом по этой группе TTP есть на yg140.servegame.com.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab