MaxPatrol SIEM

Выявляет инциденты ИБ, ведущие к нарушению киберустойчивости компании

T1059.001: PowerShell

Злоумышленники могут использовать для выполнения вредоносного кода команды и сценарии PowerShell. PowerShell — мощный интерактивный интерфейс командной строки и среда выполнения сценариев в составе операционной системы Windows. Злоумышленники могут использовать PowerShell для осуществления различных действий, включая сбор информации и выполнение кода. Например, командлет Start-Process может быть использован для запуска исполняемого файла, а командлет Invoke-Command выполняет команду локально или на удаленном компьютере (хотя использование PowerShell для подключения к удаленным системам требует разрешений администратора).

PowerShell также может использоваться для загрузки и запуска исполняемых файлов из интернета, которые затем могут запускаться с диска или непосредственно из памяти, минуя диск.

Доступно немалое количество инструментов тестирования на проникновение на базе PowerShell, включая Empire, PowerSploit, PoshC2 и PSAttack.

Команды и сценарии PowerShell также могут выполняться без прямого обращения к бинарному файлу powershell.exe через интерфейсы входящей в PowerShell DLL сборки System.Management.Automation с помощью платформы .NET и инфраструктуры общего языка (CLI) Windows.

Какие продукты Positive Technologies покрывают технику

Экспертиза MaxPatrol SIEM

it_bastion: PT-CR-2184: SKDPUNT_Blacklisted_Command: Выполнена команда из черного списка
mitre_attck_execution: PT-CR-339: Script_Files_Execution: Пользователь попытался запустить скрипт
mitre_attck_execution: PT-CR-342: Schtasks_Commandline: Управление запланированной задачей через командную строку или PowerShell
mitre_attck_execution: PT-CR-581: Execute_Encoded_Powershell: Обнаружен запуск процесса PowerShell или команды, закодированной в формате Base64
mitre_attck_execution: PT-CR-644: Powershell_Library_Loaded_into_Process: Процесс инициировал загрузку окружения PowerShell в свое адресное пространство
mitre_attck_execution: PT-CR-646: Run_Malicious_Msbuild_Project: Обнаружена попытка загрузить .NET-сборку по пути с маской microsoft.build
hacking_tools: PT-CR-373: SharpWMI_Usage: Обнаружено возможное использование программного обеспечения SharpWMI
hacking_tools: PT-CR-374: Sliver_Shell_Usage: Обнаружено возможное использование программного обеспечения Sliver Shell
mitre_attck_collection: PT-CR-491: Clipboard_Access: Обнаружение попыток сделать теневую копию информации, скопированной в буфер обмена
mitre_attck_collection: PT-CR-492: Clipboard_Access_Powershell: Обнаружение попыток сделать теневую копию информации, скопированной в буфер обмена, через PowerShell
mitre_attck_collection: PT-CR-499: Shadow_Screen_saves_PowerShell: Обнаружение попыток сделать множество скрытых снимков экрана через PowerShell
mitre_attck_collection: PT-CR-500: Documents_Access_via_Console: Взаимодействие с документами Office через cmd.exe или PowerShell
hacking_tools: PT-CR-584: Empire_Stager: Запущен PS-скрипт с подстрокой, характерной для Empire Stager
hacking_tools: PT-CR-586: Metasploit_Payload: Обнаружено возможное исполнение полезной нагрузки Metasploit
hacking_tools: PT-CR-588: Windows_Hacktool_Usage: Обнаружено возможное использование утилит для анализа защищенности систем Windows
mitre_attck_execution: PT-CR-1091: Payload_Injection_into_EventLog: Обнаружена попытка записать полезную нагрузку в журнал событий с помощью powershell-команды Write-EventLog
mitre_attck_execution: PT-CR-1359: NimPlant_Powershell_Activity: Обнаружен запуск потенциально вредоносного командлета PowerShell с помощью импланта NimPlant
mitre_attck_execution: PT-CR-1756: PowerShdll_Usage: Запуск утилиты PowerShdll
mitre_attck_execution: PT-CR-1087: Dangerous_Command_Usage: Обнаружена попытка выполнить потенциально опасную команду
mitre_attck_impact: PT-CR-497: Shadow_Copies_Deletion_with_Builtin_Tools: Обнаружение попыток удалить теневые копии данных, необходимых для восстановления Windows
mitre_attck_impact: PT-CR-501: Stop_Important_Service: Попытка остановить важную службу
mitre_attck_lateral_movement: PT-CR-957: Input_Remote_PowerShell_via_WinRM: Удаленное использование командлетов PowerShell через протокол WinRM на атакованном узле
mitre_attck_lateral_movement: PT-CR-959: Lateral_Movement_via_WinRM: Удаленное использование командлетов PowerShell через протокол WinRM
mitre_attck_lateral_movement: PT-CR-961: Output_Remote_PowerShell_via_WinRM: Удаленное использование командлетов PowerShell на атакующем узле через протокол WinRM
mitre_attck_lateral_movement: PT-CR-220: Client_Side_Execution_via_DCOM: Использование DCOM для удаленного выполнения кода
mitre_attck_execution: PT-CR-2300: Windows_Path_Traversal: Попытка атаки "Обход каталога" (Path Traversal). Злоумышленники используют эту атаку в командной строке Windows для получения несанкционированного доступа к файлам в системе
mitre_attck_execution: PT-CR-2391: Fuegoshell_Remote_Shell: Возможное создание удаленной оболочки с помощью функций PowerShell System.IO.Pipes.NamedPipeServerStream и System.IO.Pipes.NamedPipeClientStream, предназначенных для создания сервера на узле пользователя (bind shell) и подключения к серверу на узле злоумышленника (reverse shell). Это может быть признаком использования однострочных скриптов Fuegoshell
mitre_attck_execution: PT-CR-2392: Fuegoshell_Oneliners_Execution: Использованы функции PowerShell System.IO.Pipes.NamedPipeServerStream и System.IO.Pipes.NamedPipeClientStream, предназначенные для создания сервера, ожидающего прямого или обратного подключения (bind или reverse shell). Это может быть признаком использования однострочных сценариев Fuegoshell и создания удаленной оболочки для исполнения вредоносных команд через PowerShell
mitre_attck_execution: PT-CR-316: LOLBin_Copying: Обнаружена попытка скопировать системное приложение
mitre_attck_execution: PT-CR-340: Execute_Malicious_Command: Обнаружена попытка выполнить потенциально опасную команду
mitre_attck_execution: PT-CR-58: Execute_Malicious_Powershell_Cmdlet: Обнаружен запуск потенциально вредоносного командлета PowerShell
mitre_attck_execution: PT-CR-944: Subrule_PowerShell_CLM_Bypass_4103: На основе событий журнала модуля PowerShell обнаружены команды обхода языкового режима PowerShell ConstrainedLanguage
mitre_attck_execution: PT-CR-945: Subrule_PowerShell_CLM_Bypass_4104: На основе событий журнала блоков сценариев PowerShell обнаружены команды обхода языкового режима PowerShell ConstrainedLanguage
mitre_attck_collection: PT-CR-1932: Copying_Files: Копирование файлов и папок с помощью утилит xcopy, robocopy, команды copy, командлета Copy-Item
mitre_attck_defense_evasion: PT-CR-1859: Disable_UAC_Remote_Restrictions: Злоумышленники могут отключить UAC в рамках контроля удаленных подключений. Это позволяет высокопривилегированным пользователям подключиться к удаленному узлу с использованием учетной записи из локальной группы администраторов на этом узле
microsoft_mecm: PT-CR-1860: MECM_SharpSCCM: Использование утилиты SharpSCCM, предназначенной для поиска конфиденциальной информации о клиентах MECM
mitre_attck_defense_evasion: PT-CR-1861: Firewall_Modify: Попытка изменить конфигурацию брандмауэра Windows
mitre_attck_execution: PT-CR-1962: Remote_Registry_Enable: Возможный запуск службы "Удаленный реестр", позволяющей удаленно изменить значения ключей реестра Windows, что может быть использовано для перемещения внутри периметра
mitre_attck_execution: PT-CR-207: Suspicious_Wmic_Command: Обнаружена попытка использовать утилиту "wmic", чтобы совершить подозрительные действия
mitre_attck_execution: PT-CR-2116: Reverse_Shell_via_Powershell: Создано обратное подключение (reverse shell) с помощью PowerShell
it_bastion: PT-CR-2171: SKDPUNT_Suspicious_Command: Пользователь выполнил потенциально опасную команду
it_bastion: PT-CR-2177: SKDPUNT_Potentially_Dangerous_Command: Использованы потенциально опасные команды
hacking_tools: PT-CR-839: SharPersist_Usage: Обнаружено возможное использование утилиты SharPersist
hacking_tools: PT-CR-840: SharpKatz_Usage: Обнаружены признаки использования программного обеспечения SharpKatz
hacking_tools: PT-CR-1726: Havoc_Powerpick: В процесс werfault.exe внедрился подозрительный процесс, что может быть признаком использования Havoc для скрытого исполнения команд PowerShell
hacking_tools: PT-CR-1727: Havoc_Powershell_Command_Execution: По артефактам из командной строки обнаружено выполнение команды PowerShell подозрительным процессом
hacking_tools: PT-CR-1947: Powermad_Usage: Использование утилиты Powermad для эксплуатации атрибутов учетных записей AD
mitre_attck_execution: PT-CR-782: WinAPI_Access_from_Powershell: Обнаружен вызов функций Windows API из PowerShell
mitre_attck_defense_evasion: PT-CR-930: AMSI_Bypass_via_Powershell: Использование методов обхода AMSI
mitre_attck_defense_evasion: PT-CR-936: Obfuscated_Powershell: Использование известных методов обфускации в сценариях PowerShell
mitre_attck_defense_evasion: PT-CR-938: PowerShell_CLM_Bypass: Попытка обхода языкового режима PowerShell ConstrainedLanguage
mitre_attck_defense_evasion: PT-CR-942: Subrule_CSC_Start_and_File_Create: Запуск процесса csc.exe, родителем которого является процесс powershell.exe, и создание процессом библиотеки
hacking_tools: PT-CR-2134: SharpToken_Usage: Использован инструмент SharpToken, который ищет утечки токенов во всех процессах системы и эксплуатирует их. Если злоумышленники получили доступ к учетной записи с низким уровнем привилегий, этот инструмент позволит им повысить привилегии до "NT AUTHORITY\SYSTEM". Также с помощью SharpToken можно захватить интерактивный сеанс пользователя
hacking_tools: PT-CR-2339: PsMapExec_First_Usage: Впервые использован инструмент PsMapExec, написанный на PowerShell. Этот инструмент применяется для постэксплуатации, разведки, получения доступа, удаленного выполнения команд на узлах и компрометации учетных записей в рамках домена Active Directory
mitre_attck_persistence: PT-CR-264: Add_new_user_in_commandline: Обнаружена попытка создать учетную запись при помощи командной строки или PowerShell
mitre_attck_persistence: PT-CR-271: Service_Created_or_Modified: Обнаружена попытка выполнить операции со службами Microsoft Windows через командную строку или PowerShell
hacking_tools: PT-CR-369: Mimikatz_Command: Обнаружено возможное использование программного обеспечения Mimikatz
hacking_tools: PT-CR-370: NetCat_Usage: Обнаружено возможное использование программного обеспечения NetCat, Socat или Powercat
hacking_tools: PT-CR-371: Rubeus_Usage: Обнаружено возможное использование программного обеспечения Rubeus
hacking_tools: PT-CR-372: SharpSploit_Usage: Обнаружено возможное использование программного обеспечения SharpSploit
hacking_tools: PT-CR-750: Cobalt_Strike_Powershell_Payload_Delivery: Обнаружено скачивание полезной нагрузки с помощью зашифрованной команды PowerShell
mitre_attck_defense_evasion: PT-CR-203: BitsJob_Download_and_Run: Обнаружена попытка загрузить или запустить приложение при помощи средства командной строки Microsoft Windows "bitsadmin"
mitre_attck_defense_evasion: PT-CR-2060: Powershell_Execution_from_Image: Применение утилиты Invoke-PSImage для запуска скрипта PowerShell, внедренного в изображение
mitre_attck_defense_evasion: PT-CR-208: XSL_Script_WMIC_Execution: Обнаружена попытка запустить сценарии XSL с помощью утилиты "wmic"
mitre_attck_cred_access: PT-CR-298: Access_System_Credential_files_via_cmdline: Обнаружена попытка получить учетные данные пользователей операционной системы
mitre_attck_cred_access: PT-CR-299: LAPS_Enumeration: Поиск пользователей, групп и компьютеров, имеющих доступ к Microsoft LAPS (Local Administrator Password Solution). LAPS автоматически управляет паролем учетной записи локального администратора и создает резервную копию пароля на устройствах, подключенных к службам Active Directory
pt_application_firewall: PT-CR-1915: PTAF_Hacktool_Detected: Приложение PT AF обнаружило признаки использования вредоносной утилиты

Способы обнаружения

IDDS0012Источник и компонент данныхСценарий: Выполнение сценарияОписание

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

Аналитика 1. События журнала, связанные с блоками сценариев

(source=WinEventLog:"Microsoft-Windows-PowerShell/Operational" EventID="4104” AND Image="powershell.exe" AND (CommandLine="-enc*" OR CommandLine="-ep bypass" OR CommandLine="-noni")

IDDS0017Источник и компонент данныхКоманда: Выполнение командОписание

Если в системе включена политика выполнения сценариев, злоумышленники, получившие доступ от имени администратора или системы, могут изменить ее через реестр или командную строку. Отслеживая изменения этой политики, можно обнаружить несанкционированное использование PowerShell. Если в вашей среде не используется PowerShell, рекомендуется тем не менее отслеживать выполнение PowerShell, чтобы выявить вредоносную активность. Также рекомендуется включить журналирование PowerShell для улучшения мониторинга действий при выполнении сценариев, связанных с вызовом .NET . В PowerShell 5.0 появились расширенные возможности журналирования; некоторые из них были также добавлены в PowerShell 4.0. В более ранних версиях PowerShell количество функций журналирования ограничено. Организация может собирать подробные данные о выполнении PowerShell через платформу аналитики данных, а затем дополнять их другой информацией.

PowerShell может использоваться для удаленного выполнения команд на узле через WinRM. При запуске удаленного сеанса PowerShell процесс svchost.exe выполняет wsmprovhost.exe.

Для этого необходимо задать определенные ключи реестра и включить службу WinRM. Для создания удаленного сеанса PowerShell используется команда PowerShell Enter-PSSession -ComputerName \

IDDS0009Источник и компонент данныхПроцесс: Создание процессаОписание

Отслеживайте запуск новых процессов, в которых могут использоваться команды и сценарии PowerShell для выполнения вредоносного кода. PowerShell — среда выполнения сценариев в составе операционной системы Windows, которая может использоваться не только администраторами, но и злоумышленниками. В большинстве версий Windows выполнение сценариев PowerShell непрозрачно и, как правило, не отслеживается антивирусом, что делает PowerShell удобным инструментом для обхода систем безопасности. Эта аналитика отслеживает использование сценариев PowerShell.

PowerShell позволяет скрывать выполнение отслеживаемых команд, таких как:

net use sc start

Примечание. Логика аналитики 1 основана на обнаружении неинтерактивных сеансов PowerShell (то есть тех, которые не были запущены пользователем через explorer.exe). При использовании в производственной среде это может привести к ложным срабатываниям, поэтому рекомендуется включать в аналитику дополнительные алгоритмы (например, алгоритм поиска подозрительных родительских процессов), которые будут отфильтровывать такие события. Логика аналитики 2 основана на обнаружении удаленных сеансов PowerShell. PowerShell может использоваться через WinRM для удаленного выполнения команд на узле. При запуске удаленного сеанса PowerShell svchost.exe выполняет wsmprovhost.exe.

Аналитика 1. Неинтерактивные сеансы PowerShell

(source="*WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode="1") OR (source="*WinEventLog:Security" EventCode="4688") Image="powershell.exe" AND ParentImage!="explorer.exe"

Аналитика 2. Удаленные сеансы PowerShell

(source="*WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode="1") OR (source="*WinEventLog:Security" EventCode="4688") Image="wsmprovhost.exe" AND ParentImage="svchost.exe"

Аналитика 3. Выполнение PowerShell

(source="WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode="1") Image="C:\Windows\\powershell.exe" ParentImage!="C:\Windows\explorer.exe"|stats values(CommandLine) as "Command Lines" values(ParentImage) as "Parent Images" by ComputerName

IDDS0009Источник и компонент данныхПроцесс: Метаданные процессаОписание

По возможности отслеживайте события Windows с идентификатором 400: в поле EngineVersion указана версия запущенной оболочки PowerShell (что также позволяет обнаружить технику Атака "на понижение"), а в поле HostName указано, как выполняется PowerShell — локально или удаленно. Кроме того, события с идентификатором 400 могут указывать на время начала сеанса PowerShell, а с идентификатором 403 — на время его завершения.

IDDS0011Источник и компонент данныхМодуль: Загрузка модуляОписание

Отслеживайте загрузку и (или) выполнение артефактов, сгенерированных отдельными сборками PowerShell, например System.Management.Automation.dll (особенно с нестандартными именами процессов или путями их запуска).

Аналитика 1. Загрузка сборок PowerShell процессами

source="*WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode="7" | where ModulePath LIKE "%system.management.automation%" OR FileDescription LIKE "%system.management.automation%"

Меры противодействия

IDM1049НазваниеАнтивирус или ПО для защиты от вредоносных программОписание

Антивирус может использоваться для автоматического помещения подозрительных файлов в карантин.

IDM1042НазваниеОтключение или удаление компонента или программыОписание

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

Отключите или ограничьте использование службы WinRM, чтобы предотвратить использование PowerShell для удаленного выполнения.

IDM1045НазваниеПодпись исполняемого кодаОписание

Установите политику выполнения PowerShell так, чтобы выполнялись только подписанные сценарии.

IDM1026НазваниеУправление привилегированными учетными записямиОписание

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

PowerShell JEA (Just Enough Administration) также может использоваться для создания песочницы администрирования и ограничения команд, которые администраторы и обычные пользователи могут выполнять через удаленные сеансы PowerShell.

IDM1038НазваниеЗащита от выполненияОписание

По мере необходимости используйте контроль приложений. Режим PowerShell Constrained Language можно использовать для ограничения доступа к чувствительным или иным опасным элементам языка, например тем, которые используются для выполнения произвольных API Windows или файлов (например, Add-Type).