PowerShell для хакеров — выпуск для выживания, часть 3: знай своего врага

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
152
Депозит
-8.95$
Добро пожаловать обратно, начинающие хакеры!

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

Ни одна система не идеальна, и ни одна компания не обладает неограниченными ресурсами. Каждой растущей организации нужны аналитики, постоянно настраивающие оповещения и триггеры безопасности по мере добавления нового программного обеспечения и пользователей в сеть. Это утомительная и монотонная работа. Слишком много оповещений может утомить даже самых бдительных защитников. Усталость глаз, бессонные ночи и ложные срабатывания — всё это отвлекает внимание. Именно здесь появляется небольшое окно для действий или шанс проскользнуть незамеченным.

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

Видимость

У защитников есть несколько основных способов обнаружить вас, и знание их крайне важно, если вы хотите выжить:

Мониторинг процесса

Мониторинг процессов позволяет специалистам по безопасности отслеживать, какие программы запускаются, останавливаются или взаимодействуют друг с другом. Каждый процесс, включая PowerShell, оставляет следы своего происхождения (родительского процесса) и дочерних процессов. Аналитики используют эту родословную для выявления необычной активности.

Например, процесс PowerShell, запущенный документом Microsoft Word, может быть подозрительным. Специалисты по безопасности используют инструменты Endpoint Detection and Response (EDR) для сбора этих данных, а некоторые поставщики, например, Red Canary, сопоставляют их с другими событиями для выявления вредоносных шаблонов.

Мониторинг командования

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

Мониторинг сети

Злоумышленники часто используют PowerShell для загрузки инструментов или кражи данных по сети. Мониторинг исходящих и входящих соединений — надёжный способ обнаружения вредоносной активности. Распространённым примером является команда Invoke-Expression , которая извлекает контент с внешнего сервера по HTTP.

Что они смотрят

Давайте разберем журналы, на которые полагаются защитники для отслеживания активности PowerShell:

Идентификатор события безопасности Windows 1101: AMSI

AMSI расшифровывается как Antimalware Scan Interface (интерфейс сканирования на наличие вредоносных программ). Представьте себе контрольную точку безопасности внутри Windows, которая отслеживает выполнение скриптов в памяти, включая PowerShell, VBScript и WMI.

AMSI не хранит журналы в стандартном средстве просмотра событий. Вместо этого он работает с Event Tracing for Windows (ETW), системой низкоуровневого ведения журналов. Обойдя AMSI, можно выполнить код, который обычно запускает антивирусное сканирование, например, выгрузку LSASS или запуск вредоносного ПО, без немедленного обнаружения.

Но обходы AMSI рискованны. Они часто регистрируются, и Microsoft активно их исправляет. Публично доступные обходы — ловушка для тех, кто пытается выжить незаметно.

Идентификатор события безопасности Windows 4104: ведение журнала ScriptBlock

Журналирование ScriptBlock отслеживает фактический код, выполняемый в скриптах PowerShell. Существует два уровня:

Автоматически (по умолчанию): регистрирует код скрипта, который выглядит подозрительным, на основе списка опасных командлетов Microsoft и API .NET.

Глобально: регистрирует все без фильтров.

ведение журнала скриптов, реализованное в Windows

Событие с идентификатором 4104 собирает эту информацию. Вы можете обойти это, понизив версию PowerShell до 2, если она существует, но даже это понижение может быть зарегистрировано. Необходима тонкая обфускация. Вот как это сделать:

PS > powershell -version 2

Обратите внимание, что ведение журнала ScriptBlock работает только с PowerShell 5 и выше.

Идентификатор события безопасности Windows 400: ведение журнала командной строки PowerShell

Даже в старых версиях PowerShell есть событие с идентификатором 400, которое регистрируется при запуске процесса PowerShell. Полные команды не отображаются, но сам факт запуска процесса фиксируется.

Идентификаторы событий безопасности Windows 800 и 4103: загрузка модуля и тип добавления

Ведение журнала модулей (событие с идентификатором 800) отслеживает, какие модули PowerShell загружаются, включая исходный код команд, запускаемых через Add-Type . Это важно, поскольку Add-Type используется для компиляции и запуска кода C#.

В PowerShell 5+ этот контекст также регистрируется в событии с идентификатором 4103. Если защитник видит загрузку необычных или редко используемых модулей, это тревожный сигнал.

Идентификаторы событий Sysmon

Sysmon — это специализированный инструмент Windows, который обеспечивает защитникам дополнительную видимость. Обычно защитники отслеживают:

Идентификатор события 1: Создание каждого нового процесса.

Идентификатор события 7: загрузка модулей, в частности библиотек DLL.

Идентификатор события 10: Доступ к процессу, например, доступ к lsass.exe для сброса учетных данных.

В PowerShell событие с идентификатором 7 может сигнализировать о множестве библиотек System.Management.Automation.dll или связанных с ними модулей, что часто является явным признаком использования PowerShell. Также могут отслеживаться и многие другие идентификаторы Sysmon, поэтому обязательно уделите время изучению некоторых из них.

Чтобы проверить, запущен ли Sysmon:

PS > Get-Service -Name sysmon

Чтобы просмотреть последние события Sysmon:

PS > Get-WinEvent -LogName "Microsoft-Windows-Sysmon/Operational" -MaxEvent 20 | Format-List TimeCreated, Id, Message

проверка, установлен ли sysmon в Windows

Sysmon есть не во всех системах, но там, где он установлен, специалисты по безопасности ему доверяют. По сути, это своего рода высокотехнологичная камера видеонаблюдения: чёткая, постоянная и её сложно обмануть.

Инструменты обнаружения и реагирования на конечные точки (EDR)

Инструменты EDR объединяют все вышеперечисленные данные телеметрии, такие как процессы, команды, модули и сетевой трафик, чтобы предоставить специалистам по безопасности полную картину активности. Если вы работаете в системе с EDR, каждый шаг отслеживается несколькими способами.

Что, скорее всего, поможет вам быть замеченным

Злоумышленники предсказуемы. Если вы многократно запускаете одни и те же команды, это заметят специалисты по безопасности. Red Canary публикует фильтры, которые показывают подозрительную активность PowerShell. Эти фильтры используются не во всех системах, но они широко известны.

Закодированные команды

Использование -encodedcommand или Base64 может вызывать оповещения. Сам по себе Base64 не вызывает подозрений, но его повторное или необычное использование — тревожный знак.

фильтр обнаружения закодированных команд

Запутывание и экранирование символов

Добавление дополнительных символов (^, +, $, %) может затруднить обнаружение, но слишком большое их количество вызывает подозрения.

фильтр обнаружения обфускации

Подозрительные командлеты

Некоторые командлеты часто используются не по назначению. К ним относятся командлеты для загрузки файлов, запуска скриптов или управления процессами. Знание того, какие из них помечены, поможет избежать ошибок по невнимательности.

фильтр обнаружения подозрительных командлетов

Подозрительные каталоги скриптов

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

фильтр обнаружения подозрительных каталогов скриптов

Обходные пути

Даже если ваши передвижения ограничены, есть варианты.

1) Используйте собственные исполняемые файлы. Легальные программы для Windows менее подозрительны.

2) Менее распространённые команды. Избегайте часто используемых командлетов, чтобы снизить вероятность обнаружения.

3) Жизнь на природе. Креативное использование встроенных инструментов поможет вам оставаться незамеченными.

Мы рассмотрим это более подробно в следующей главе — как команды, предназначенные для одной цели, можно адаптировать для другой, оставаясь при этом невидимыми.

Сетевой трюк

Команда net — мощная, но её можно отслеживать. Используйте net1 , чтобы обойти некоторые фильтры в очень строгих условиях:

PS > net1 user

net1 трюк, чтобы избежать обнаружения сети

Это позволяет вам незаметно выполнять полный набор сетевых команд.

Журналы

Удаление журналов иногда может быть хорошей идеей, но следует помнить, что событие с идентификатором 1102 сразу же сигнализирует об этом. Кроме того, даже менее опытные специалисты по безопасности могут отслеживать горизонтальные перемещения по записям журналов. Резкие скачки трафика или сканирования SMB быстро обнаруживаются.

Методы уклонения от обнаружения

Сосредоточьтесь на минимизации своего воздействия и рисков. В этом руководстве не рассматриваются сложные и высокорисковые методы.

Избегайте записи файлов

Файлы на диске могут выдать вашу тактику. Если сохранение необходимо, используйте понятные имена, необычные папки и корректируйте временные метки. По возможности придерживайтесь выполнения в памяти. Менее известные команды, такие как odbconf.exe и cmstp.exe , более безопасны и часто игнорируются. Используйте их для выполнения.

PowerShell версии 2

Понижение версии может обойти логирование ScriptBlock. Но нужно тщательно всё скрыть. Тонкость здесь играет ключевую роль.

Изменить настройки пересылки

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

Повторное использование учетных данных и смешивание

Используйте известные учётные данные, а не перебор. Работайте в обычное время, чтобы хорошо вписаться в обстановку и сбрасывать трафик для понимания локальной активности. Использование неразборчивого режима может помочь получить более полную информацию о сети. Использование распространённых портов для распространения файлов также является хорошей идеей и хорошо вписывается в обычные схемы трафика.

Краткое содержание

В этой части мы узнали больше о противнике и о том, как защитники отслеживают каждый ваш шаг. Мы разобрали основные способы обнаружения злоумышленников, такие как мониторинг процессов, мониторинг команд и мониторинг сети. Затем мы рассмотрели идентификаторы событий Windows и механизмы ведения журнала. Мы сделали акцент на стратегиях выживания, которые помогут минимизировать воздействие, используя выполнение в памяти, использование менее известных или встроенных команд, использование PowerShell версии 2 или слияние с обычным трафиком. Практические советы, такие как трюк с net1 и процесс обработки журналов, дадут вам представление о том, как избежать тревоги.

Понимание того, как защитники наблюдают, регистрируют данные и реагируют, позволяет вам действовать, не срабатывая на оповещения. Зная, за чем и как ведется наблюдение, вы сможете безопаснее планировать свои действия и дольше выживать. Наша цель — показать вам, с какими трудностями вы столкнетесь в системах Windows в условиях ограничений, и дать вам реальное ощущение того, что вы никогда не будете по-настоящему одиноки.
 
Назад
Сверху Снизу