Обфускация команд используется для сокрытия функциональности команд или кода. Эта техника включает в себя различные методы, такие как шифрование или кодирование командных строк, использование полиморфных методов для динамического изменения шаблонов кода или применение других тактик, чтобы код казался доброкачественным на первый взгляд. Обфускация команд добавляет слои сложности в код и служит барьером для автоматизированных инструментов безопасности и аналитиков вредоносного ПО.
Обфусцированные файлы или данные: Обфускация команд
Злоумышленники используют технику командной обфускации, чтобы усложнить обнаружение угроз средствами контроля безопасности. Злоумышленники манипулируют строками и шаблонами в командах и скриптах, чтобы обойти обнаружение и анализ на основе сигнатур. Этот вид обфускации обычно интегрируется в команды, выполняемые поставляемой полезной нагрузкой, будь то фишинговые атаки, компрометация с помощью drive-by или интерактивное использование интерпретаторов команд и сценариев.
Обфускация команд включает в себя намеренное злоупотребление синтаксисом с использованием различных символов и экранирующих знаков, таких как пробел, ^, +, $ и %. Эта техника направлена на то, чтобы сделать команды запутанными и сложными для анализа, сохранив при этом их целевую функциональность. Приведенный ниже пример показывает, что злоумышленники могут добавлять в команды символ каретки "^" без ущерба для их функциональности.
1 2 | C:\> cmd /c "who^am^i" Output: .\test_user |
Многие языки программирования также предоставляют встроенные механизмы обфускации, такие как кодировка base64 или URL. Кодирование команды скрывает ее исходную структуру, что требует от защитников точной расшифровки и интерпретации для раскрытия вредоносной деятельности.
1 2 3 4 5 6 7 8 9 | PS C:\> whoami Output: .\test_user PS C:\> [Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes("whoami")) Output: Llx0ZXN0X3VzZXI= PS C:\> powershell.exe -EncodedCommand Llx0ZXN0X3VzZXI= Output: .\test_user |
Чтобы создать лабиринт в структуре кода, злоумышленники применяют техники обфускации команд вручную, например:
- Разделение строк: "Wor "+"d.Application"
- Изменение порядка и регистра символов: rev <<<'dwssap/cte/ tac'
- Сглаживание: mkdir -p '/tmp/:&$NiA'
Обход каталога - еще один метод обфускации команд. Злоумышленники используют технику обхода каталогов для маскировки ссылок на двоичные файлы, вызываемые командой. Например, команда может содержать запутанные пути, такие как „C:/Windows/system32\.//\\\\./\/\/\/\calc.exe“, используя обход каталогов для введения аналитиков в заблуждение относительно истинного местоположения и назначения вызываемого двоичного файла [18].
Для автоматизации обфускации злоумышленники используют специализированные инструменты с открытым исходным кодом, такие как Invoke-Obfuscation и Invoke-DOSfuscation. Эти инструменты предлагают широкий спектр возможностей обфускации - от кодирования и шифрования до применения более сложных техник.
Злоумышленники, использующие Hive ransomware, используют полезную нагрузку PowerShell, обфусцированную с помощью кодировки Base64. Полезная нагрузка действует как стейджер и загружает дополнительные вредоносные программы, такие как рефлексивные загрузчики и Meterpreter в памяти, с контролируемого злоумышленниками веб-сервера.
1 | powershell.exe -nop -w hidden -e UwB0AGEAcg... |