PowerShell — мощный язык сценариев и инструмент автоматизации в операционных системах Windows. Но иногда вам могут попасться обфусцированные скрипты PowerShell, делает это для усложнения их анализа и реверс-инжиниринга. Далее рассмотрим деобфускацию PowerShell, почему она важна, и какие инструменты использовать для деобфускации скриптов PowerShell.
Еще по теме: Деобфускация зловредного приложения с Dex-Oracle
Деобфускация PowerShell
Деобфускация PowerShell — процесс восстановления исходного, читаемого кода из обфусцированных скриптов на языке PowerShell. Обфускация в данном контексте означает применение различных техник, таких как изменение имен переменных, добавление множественных бесполезных операторов, кодирование и сжатие, с целью затруднения понимания и анализа кода.
Деобфускация PowerShell — важный этап в анализе обфусцированных скриптов. Она позволяет понять функционал скрипта, а также обеспечивает дополнительную защиту, идентифицируя потенциально вредоносный код.
Инструменты деобфускации PowerShell
Вот список популярных деобфускаторов PowerShell:
- Invoke-Obfuscation – инструмент для обфускации и деобфускации скриптов PowerShell, разработанный Дэниэлом Боханноном. Он предоставляет различные методы обфускации и может быть использован для восстановления кода. Использует две основные функции:Get-RvoScriptBlock и Measure-RvoObfuscation. Функция Get-RvoScriptBlock позволяет извлекать локальные или внешние журналы событий (Eventlogs), а функция Measure-RvoObfuscation пытается классифицировать скрипт PowerShell как обфусцированный или нет.
- CyberChef — это онлайн инструмент для кодирования и декодирования данных, разработанный агентством национальной безопасности Великобритании GCHQ. Кодирование и декодирование различными алгоритмами: Base64, Hex, Binary, URL encode и др. Шифрование и дешифрование: XOR, AES, DES и др.
- PSDecode – помогает деобфусцировать скрипты PowerShell, используя различные методы деобфускации. Может декодировать Base64, HEX и другие типы шифрования, используемых в PowerShell. Поддержка всех версий PowerShell, включая PowerShell Core. Часто используется для анализа вредоносных скриптов PowerShell.
- PSScriptAnalyzer – помогает анализировать и деобфусцировать скрипты PowerShell. Инструмент используется для написании кода, так и для анализа существующих скриптов.
- PowerShell Deobfuscator — простой деобфускатор PowerShell. Может помочь восстановить исходный код из обфусцированных скриптов.
- PowerDecode — это инструмент, созданный на базе PowerShell, который позволяет деобфусцировать скрипты PowerShell, обфусцированные через несколько уровней различных методов.
Заключение
Помните, что эффективность деобфускации может зависеть от конкретной обфускации, используемой в скриптах, поэтому иногда может потребоваться комбинированное использование нескольких инструментов для достижения наилучших результатов.
Часто обфусцированные скрипты используют схожие паттерны и методы. Поиск таких паттернов может упростить деобфускацию.
В некоторых случаях есть смысл написать собственные скрипты или программы, используя функции декодирования и распаковки.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Обфускация с помощью ProGuard
- Обфускация Python с помощью Pyarmor
- Шифрование и дешифрование в PowerShell
- Извлечение и деобфускация макросов XLM