Условие
Сотрудник johndoe обратился в СИБ, заметив, что на его ноутбуке стали открываться окна с терминалом. В архиве — логи с его ПК на момент инцидента. Логи разложены по категориям:
win_events_powershell_logs— события PowerShell;processes_running_processes— список процессов;win_events_process_audit— аудит процессов Windows;network_extra_process_connections— сетевые соединения процессов.
Вопросы
- Как скомпрометировали устройство? Название вредоносного файла; как сотрудник его получил.
- Какие инструменты использовал злоумышленник? Что пытался сделать?
- IP-адрес C&C-сервера злоумышленника.
- (сложнее) Как злоумышленник обошёл Windows Defender?
- (сложнее) Как злоумышленник обошёл AMSI?
Решение прислать в виде отчёта: процесс анализа + ответы на вопросы.
Решение
Подход — методология
Когда у нас 4 категории логов, начинаем сверху вниз: процессы → аудит процессов → PowerShell → сеть. Цель — построить цепочку:
Входной артефакт (файл) → Запущенные процессы → Что они делали → Куда стучали → Почему не сработали защиты
1. Точка входа: processes_running_processes + win_events_process_audit
Ищем подозрительные родительско-дочерние пары:
outlook.exeилиchrome.exe→cmd.exe/powershell.exe/wscript.exe/mshta.exe— классический фишинг (макрос или html-аттач).explorer.exe→*.exeизDownloadsилиTemp— пользователь вручную запустил скачанный файл.winword.exe→powershell.exe— макрос в DOC.
Из логов имя файла будет видно, например, Invoice_2025_03.docm или Order_details.lnk. Часто LNK-файлы запускают powershell.exe через cmd.exe со скрытым окном.
Гипотеза ответа на вопрос 1: сотрудник получил файл через email (фишинг). Имя файла — указано в CommandLine родительского outlook.exe или в process_audit при создании нового процесса. Часто это .lnk, .iso, .docm, .zip → .js.
2. Инструменты атакующего: PowerShell-логи
PowerShell module logging и Script Block Logging (Event ID 4104) показывают целиком исполнившиеся скрипты. Что искать:
IEX (New-Object Net.WebClient).DownloadString(...)— загрузка stage-2.Invoke-Mimikatz,Invoke-Kerberoast,Invoke-PowerShellTcp— известные инструменты.Reflection.Assembly+[Reflection.Assembly]::Load(...)— рефлективная загрузка .NET.Reverse shell-паттерн:socket = New-Object Net.Sockets.TCPClient(...) ; powershell -nop -ep bypass -....
Гипотеза ответа на вопрос 2: PowerShell Empire / Sliver / Cobalt Strike Beacon — характерные паттерны. Цель — установить C2-канал, провести разведку (whoami, net user /domain, ipconfig /all) и закрепиться.
3. C&C-сервер: network_extra_process_connections
Фильтруем по PID PowerShell или подозрительного процесса; ищем исходящие соединения на нестандартные порты или внешние IP.
# Псевдо-фильтр (если CSV)
grep -P '\bpowershell\.exe\b' connections.csv | awk -F',' '$5 ~ /^(45\.|185\.|176\.)/'Реальные C2 часто на 443/8080/4444/8443. IP — пишем именно тот, который видим в логе, а не «угадываем».
4. Обход Windows Defender
Типичные техники:
- Add-MpPreference -ExclusionPath: добавление папки в исключения. Фиксируется в
Microsoft-Windows-Windows Defender/Operational(Event ID 5007 — изменение настроек). - Stop-MpComputerService /
Set-MpPreference -DisableRealtimeMonitoring $true— отключение защиты в реальном времени. - AMSI bypass + obfuscation (вместе с пунктом 5).
- Запуск из памяти (рефлективная загрузка) минует сигнатурный сканер на диске.
В PowerShell-логах ищем Set-MpPreference, Add-MpPreference -ExclusionPath, Stop-Service WinDefend.
5. Обход AMSI
AMSI (Anti-Malware Scan Interface) перехватывает PowerShell-скрипты до выполнения. Известные обходы:
- Patching
amsi.dll!AmsiScanBufferв памяти процесса:[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true) - Obfuscation: разбивка строк через
[char]+ конкатенацию, base64-кодирование (-EncodedCommand). - WPM (Write-Process-Memory) для изменения возвращаемого AMSI значения на «Clean».
- Загрузка ранее версии CLR / новый AppDomain.
Ищем в Script Block Logging строки с amsiInitFailed, AmsiUtils, AmsiScanBuffer, длинные base64 после -EncodedCommand, [Convert]::FromBase64String(...).
Структура отчёта
- Хронология событий (timeline) — таблица
время, источник, событие. - Цепочка атаки по MITRE ATT&CK:
- Initial Access (фишинг — T1566)
- Execution (PowerShell — T1059.001)
- Defense Evasion (Disable AV — T1562.001, AMSI bypass — T1562.001/T1059.001)
- Command and Control (T1071.001 — HTTPS)
- Discovery / Privilege Escalation / Persistence (если есть в логах)
- IOC (Indicators of Compromise): имя файла, хеш, IP C2, домены, пути исключений.
- Рекомендации по реагированию.
Подводные камни
- Хронология ≠ порядок в файле. Сортируем по таймстемпам всё сразу — иначе пропустишь причинно-следственные связи.
- PID повторяется. Один и тот же PID может быть переиспользован после
process exit. Используйтеprocess_creation_time+pidкак ключ. -EncodedCommandвсегда подозрителен. Декодируйте base64 → видите истинный скрипт. Иногда base64 многослойный.- Doppelganger-имена.
powerShell.exevspowershell.exe(с большойS) — на NTFS регистрозависимо в PE-имени, но пути нечувствительны. Ищите редкие написания. - C2-IP может быть legitimate proxy. Bing CDN, Cloudflare — могут быть прокси для C2. Сверяйте с GeoIP и WHOIS.
- AMSI bypass не всегда логируется. Если AMSI отключили до загрузки модуля — последующие скрипты не попадут в Script Block log. Ищем именно первый скрипт с патчингом.
- Не доверяйте именам процессов.
svchost.exeбез-kпараметра — почти точно malware. ПроверяйтеCommandLine.
Эталонный ответ
Структура отчёта: timeline → MITRE-цепочка → IOC → рекомендации.
Конкретные ответы зависят от логов, но типовые:
- Точка входа — фишинговый аттач (
.lnk/.docm/.iso), запущенный пользователем; имя файла — изprocess_auditили OutLook-логов. - Инструменты — PowerShell + framework (Empire/Sliver/CS Beacon); цель — закрепиться, разведать AD.
- C&C-IP — внешний адрес из
network_extra_process_connectionsдля PID PowerShell (порт обычно 443/8080). - Defender — отключён через
Set-MpPreference -DisableRealtimeMonitoring $trueили добавление exclusion-path. - AMSI — обход через
AmsiUtils.amsiInitFailed = $trueили базовая обфускация +-EncodedCommand.