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

mitre_attck_collection: PT-CR-1932: Copying_Files: Копирование файлов и папок с помощью утилит xcopy, robocopy, команды copy, командлета Copy-Item mitre_attck_collection: PT-CR-500: Documents_Access_Via_Console: Взаимодействие с документами Office через cmd.exe или PowerShell mitre_attck_collection: PT-CR-491: Clipboard_Access: Обнаружение попыток сделать теневую копию информации, скопированной в буфер обмена mitre_attck_collection: PT-CR-492: Clipboard_Access_Powershell: Обнаружение попыток сделать теневую копию информации, скопированной в буфер обмена, через PowerShell mitre_attck_impact: PT-CR-501: Stop_Important_Service: Попытка остановить важную службу mitre_attck_impact: PT-CR-497: Shadow_Copies_Deletion_With_Builtin_Tools: Обнаружение попыток удалить теневые копии данных, необходимых для восстановления Windows 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 mysql_database: PT-CR-617: MySQL_Code_Execution: Запуск процесса от имени учетной записи базы данных может свидетельствовать о попытке злоумышленника, получившего возможность выполнять запросы к базе данных, повысить привилегии 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_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 hacking_tools: PT-CR-369: Mimikatz_Command: Обнаружено возможное использование программного обеспечения Mimikatz hacking_tools: PT-CR-586: Metasploit_Payload: Обнаружено возможное исполнение полезной нагрузки Metasploit hacking_tools: PT-CR-2799: Rubeus_Non_Cmdline_Usage: Использование инструмента Rubeus для атак на протокол Kerberos hacking_tools: PT-CR-2636: Invoke_Rubeus_Usage: Использована техника AS-REP Roasting или Kerberoasting путем внедрения полезной нагрузки в память процесса PowerShell. Это может быть признаком использования вредоносной утилиты Invoke-Rubeus (обфусцированная версия Rubeus, использующая закодированную в Base64 полезную нагрузку) hacking_tools: PT-CR-588: Windows_Hacktool_Usage: Обнаружено возможное использование утилит для анализа защищенности систем Windows hacking_tools: PT-CR-1947: Powermad_Usage: Использование утилиты Powermad для эксплуатации атрибутов учетных записей AD hacking_tools: PT-CR-1727: Havoc_Powershell_Command_Execution: По артефактам из командной строки обнаружено выполнение команды PowerShell подозрительным процессом hacking_tools: PT-CR-2688: Covenant_Launcher_Start: Запущен лаунчер Covenant с помощью InstallUtil или PowerShell с последующей установкой подозрительного TCP-соединения с другим узлом hacking_tools: PT-CR-370: NetCat_Usage: Обнаружено возможное использование программного обеспечения NetCat, Socat или Powercat hacking_tools: PT-CR-750: Cobalt_Strike_Powershell_Payload_Delivery: Пользователь скачал полезную нагрузку с помощью зашифрованной команды PowerShell hacking_tools: PT-CR-584: Empire_Stager: Запущен PS-скрипт с подстрокой, характерной для Empire Stager hacking_tools: PT-CR-2891: Stracciatella_Usage: Возможное использование утилиты Stracciatella. Злоумышленники используют эту утилиту для обхода журналирования, антивирусов, систем безопасности EDR и настроенных в PowerShell ограничений hacking_tools: PT-CR-374: Sliver_Shell_Usage: Обнаружено возможное использование программного обеспечения Sliver Shell hacking_tools: PT-CR-840: SharpKatz_Usage: Обнаружены признаки использования программного обеспечения SharpKatz hacking_tools: PT-CR-1726: Havoc_Powerpick: В процесс werfault.exe внедрился подозрительный процесс, что может быть признаком использования Havoc для скрытого исполнения команд PowerShell hacking_tools: PT-CR-2563: Cobalt_Strike_Powershell_Stager: Полезная нагрузка Cobalt Strike скачана и запущена с помощью PowerShell hacking_tools: PT-CR-2339: PsMapExec_First_Usage: Впервые использован инструмент PsMapExec, написанный на PowerShell. Этот инструмент применяется для постэксплуатации, разведки, получения доступа, удаленного выполнения команд на узлах и компрометации учетных записей в рамках домена Active Directory hacking_tools: PT-CR-373: SharpWMI_Usage: Обнаружено возможное использование программного обеспечения SharpWMI hacking_tools: PT-CR-2637: Subrule_Invoke_Rubeus_Usage: Возможное использование функций PowerShell для внедрения полезной нагрузки в память процесса. Это может быть признаком использования вредоносной утилиты Invoke-Rubeus (обфусцированная версия Rubeus, использующая закодированную в Base64 полезную нагрузку) hacking_tools: PT-CR-371: Rubeus_Usage: Обнаружено возможное использование программного обеспечения Rubeus hacking_tools: PT-CR-839: SharPersist_Usage: Обнаружено возможное использование утилиты SharPersist hacking_tools: PT-CR-372: SharpSploit_Usage: Обнаружено возможное использование программного обеспечения SharpSploit hacking_tools: PT-CR-2134: SharpToken_Usage: Использован инструмент SharpToken, который ищет утечки токенов во всех процессах системы и эксплуатирует их. Если злоумышленники получили доступ к учетной записи с низким уровнем привилегий, этот инструмент позволит им повысить привилегии до "NT AUTHORITY\SYSTEM". Также с помощью SharpToken можно захватить интерактивный сеанс пользователя mitre_attck_defense_evasion: PT-CR-2654: Suspicious_XSLT_XML_PowerShell_Execution: Подозрительное XSL-преобразование с помощью PowerShell, чтобы обойти средства защиты mitre_attck_defense_evasion: PT-CR-936: Obfuscated_Powershell: Использование известных методов обфускации в сценариях PowerShell mitre_attck_defense_evasion: PT-CR-1861: Firewall_Modify: Попытка изменить конфигурацию брандмауэра Windows mitre_attck_defense_evasion: PT-CR-942: Subrule_CSC_Start_And_File_Create: Запуск процесса csc.exe, родителем которого является процесс powershell.exe, и создание процессом библиотеки mitre_attck_defense_evasion: PT-CR-2060: Powershell_Execution_From_Image: Применение утилиты Invoke-PSImage для запуска скрипта PowerShell, внедренного в изображение mitre_attck_defense_evasion: PT-CR-930: AMSI_Bypass_Via_Powershell: Использование методов обхода AMSI mitre_attck_defense_evasion: PT-CR-1859: Disable_UAC_Remote_Restrictions: Злоумышленники могут отключить UAC в рамках контроля удаленных подключений. Это позволяет высокопривилегированным пользователям подключиться к удаленному узлу с использованием учетной записи из локальной группы администраторов на этом узле mitre_attck_defense_evasion: PT-CR-208: XSL_Script_WMIC_Execution: Обнаружена попытка запустить сценарии XSL с помощью утилиты "wmic" mitre_attck_defense_evasion: PT-CR-203: BitsJob_Download_And_Run: Обнаружена попытка загрузить или запустить приложение при помощи средства командной строки Microsoft Windows "bitsadmin" mitre_attck_defense_evasion: PT-CR-938: PowerShell_CLM_Bypass: Попытка обхода языкового режима PowerShell ConstrainedLanguage microsoft_mecm: PT-CR-1860: MECM_SharpSCCM: Использование утилиты SharpSCCM, предназначенной для поиска конфиденциальной информации о клиентах MECM it_bastion: PT-CR-2184: SKDPUNT_Blacklisted_Command: Выполнена команда из черного списка it_bastion: PT-CR-2171: SKDPUNT_Suspicious_Command: Пользователь выполнил потенциально опасную команду it_bastion: PT-CR-2177: SKDPUNT_Potentially_Dangerous_Command: Использованы потенциально опасные команды 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_execution: PT-CR-339: Subrule_Script_Files_Execution: Пользователь запустил скрипт mitre_attck_execution: PT-CR-1359: NimPlant_Powershell_Activity: Обнаружен запуск потенциально вредоносного командлета PowerShell с помощью импланта NimPlant mitre_attck_execution: PT-CR-1962: Remote_Registry_Enable: Возможный запуск службы "Удаленный реестр", позволяющей удаленно изменить значения ключей реестра Windows, что может быть использовано для перемещения внутри периметра 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-646: Run_Malicious_Msbuild_Project: Обнаружена попытка загрузить .NET-сборку по пути с маской microsoft.build mitre_attck_execution: PT-CR-207: Suspicious_Wmic_Command: Обнаружена попытка использовать утилиту "wmic", чтобы совершить подозрительные действия 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-2300: Windows_Path_Traversal: Попытка атаки "Обход каталога" (Path Traversal). Злоумышленники используют эту атаку в командной строке Windows для получения несанкционированного доступа к файлам в системе mitre_attck_execution: PT-CR-782: WinAPI_Access_From_Powershell: Обнаружен вызов функций Windows API из PowerShell mitre_attck_execution: PT-CR-1087: Dangerous_Command_Usage: Обнаружена попытка выполнить потенциально опасную команду mitre_attck_execution: PT-CR-58: Execute_Malicious_Powershell_Cmdlet: Обнаружен запуск потенциально вредоносного командлета PowerShell mitre_attck_execution: PT-CR-2655: SCT_Scripts_Hidden_Execution: Запуск команд для скрытого выполнения SCT-скриптов, что может свидетельствовать о злонамеренных целях mitre_attck_execution: PT-CR-2459: Dump_Bitlocker_Keys_From_Host: Использование утилиты manage-bde или командлета Get-BitLockerVolume для получения информации о томах, зашифрованных с помощью BitLocker, а также ключей восстановления. Злоумышленник может использовать полученную информацию для расшифровки защищенных данных mitre_attck_execution: PT-CR-644: Powershell_Library_Loaded_Into_Process: Процесс инициировал загрузку окружения PowerShell в свое адресное пространство mitre_attck_execution: PT-CR-340: Execute_Malicious_Command: Обнаружена попытка выполнить потенциально опасную команду mitre_attck_execution: PT-CR-1756: PowerShdll_Usage: Запуск утилиты PowerShdll mitre_attck_execution: PT-CR-2707: Execute_File_From_Sysvol_Share: Запущен процесс или сценарий из одного из дочерних каталогов общего сетевого ресурса Sysvol: Startup, Shutdown, Logon, Logoff, Scripts. Эти каталоги используются для хранения исполняемых файлов и файлов сценариев, необходимых для управления групповыми политиками и другими настройками в Active Directory. Это может быть попыткой злоумышленника закрепиться в системе mitre_attck_execution: PT-CR-581: Execute_Encoded_Powershell: Обнаружен запуск процесса PowerShell или команды, закодированной в формате Base64 mitre_attck_execution: PT-CR-1091: Payload_Injection_Into_EventLog: Обнаружена попытка записать полезную нагрузку в журнал событий с помощью powershell-команды Write-EventLog mitre_attck_execution: PT-CR-316: LOLBin_Copying: Обнаружена попытка скопировать системное приложение mitre_attck_execution: PT-CR-2116: Reverse_Shell_Via_Powershell: Создано обратное подключение (reverse shell) с помощью PowerShell mitre_attck_execution: PT-CR-2810: Script_Files_Execution: Пользователь запустил скрипт с помощью процесса, который обратился на внешний адрес, запустил дочерний процесс, изменил ключ реестра, чтобы закрепиться в инфраструктуре, получил доступ к другому процессу или создал удаленный поток в другом процессе mitre_attck_execution: PT-CR-342: Schtasks_Commandline: Управление запланированной задачей через командную строку или PowerShell mitre_attck_persistence: PT-CR-271: Service_Created_Or_Modified: Обнаружена попытка выполнить операции со службами Microsoft Windows через командную строку или PowerShell mitre_attck_persistence: PT-CR-568: IIS_Module_Filter_Installation: Модуль расширения или фильтр был установлен в Internet Information Services. Злоумышленник может прослушивать, изменять или перенаправлять сетевой трафик, а также закрепиться в системе или выполнять вредоносный код на других узлах mitre_attck_persistence: PT-CR-264: Add_New_User_In_Commandline: Обнаружена попытка создать учетную запись при помощи командной строки или PowerShell 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 <RemoteHost>.

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%"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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