Этой статьей мы начинаем серию публикаций о неуловимых малвари. Программы для взлома, не оставляющие следов атаки, известные также как fileless («бестелесные», невидимые, безфайловые), как правило, используют PowerShell на системах Windows, чтобы скрытно выполнять команды для поиска и извлечения ценного контента. Обнаружить хакерскую деятельность без вредоносных файлов — сложно выполнимая задача, т.к. антивирусы и многие другие системы обнаружения работают на основе сигнатурного анализа. Но хорошая новость состоит в том, что такое ПО все же существует. Например,
Когда я впервые начал изучать тему крутых хакеров,
Великий и ужасный PowerShell
Я писал о некоторых из этих идей раньше в
Помимо самих образцов на сайте можно увидеть, что же делают эти программы. Гибридный анализ запускает вредоносное ПО в собственной песочнице и отслеживает системные вызовы, запущенные процессы и действия в сети, а также извлекает подозрительные текстовые строки. Для двоичных файлов и других исполняемых файлов, т.е. там, где вы даже не можете посмотреть на фактический код высокого уровня, гибридный анализ решает, является ли ПО вредоносным или просто подозрительным на основе его активности во время выполнения. И после этого уже оценивается образец.
В случае с PowerShell и другими образцами сценариев (Visual Basic, JavaScript и т. д.), я смог увидеть и сам код. Например, я наткнулся на такой PowerShell экземпляр:
Вы также можете запустить PowerShell в кодировке base64, чтобы избежать обнаружения. Обратите внимание на использование Noninteractive и Hidden параметров.
Если вы прочитали мои записи по обфускации, то вы знаете, что параметр -e указывает на то, что содержимое кодируется в base64. Кстати, гибридный анализ помогает также и с этим, декодируя все обратно. Еcли вы захотите попробовать декодировать base64 PowerShell (далее – PS) самостоятельно, нужно выполнить эту команду:
[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodedText))
Вникай глубже
Я декодировал наш PS-сценарий с помощью этого метода, ниже представлен текст программы, правда слегка мной модифицированный:
Заметьте, что скрип был привязан к дате 4 сентября 2017 и передавал сессионные cookies.
Я писал об этом стиле атаки в
Для чего это нужно?
Для программного обеспечения безопасности, сканирующего журналы событий Windows или файерволла, кодировка base64 предотвращает обнаружение строки «WebClient» по простому текстовому шаблону в целях защиты от выполнения такого веб-запроса. И так как все «зло» вредоносного ПО затем загружается и передается в наш PowerShell, этот подход таким образом позволяет полностью уклоняться от обнаружения. Вернее, это я так думал сначала.
Оказывается, с включением продвинутого логирования журнала Windows PowerShell (см. мою статью ) вы сможете увидеть загруженную строку в журнале событий. Я (как
Добавим дополнительные сценарии
Хакеры ловко скрывают атаку PowerShell в макросах Microsoft Office, написанных на Visual Basic и на других скриптовых языках. Идея заключается в том, что жертва получает сообщение, например, от службы доставки, с вложенным отчетом в формате .doc. Вы открываете этот документ, который содержит макрос, и в конечном итоге он сам запускает вредоносный PowerShell.
Часто сам сценарий Visual Basic обфусцируется так, что он свободно уклоняется от антивирусов и других сканеров вредоносных программ. В духе уже изложенного, я решил в качестве упражнения закодировать приведенный выше PowerShell в JavaScript. Ниже результаты моей работы:
Обфусцированный JavaScript, прячущий наш PowerShell. Реальные хакеры делают это на раз-два.
Это еще одна из техник, которую я встретил на просторах сети: использование оболочки Wscript.Shell для запуска кодированного PowerShell. Кстати, JavaScript сам по себе является
В нашем случае, вредоносный скрипт JS вложен как файл c .doc.js расширением. Windows, как правило, показывает только первый суффикс, поэтому он будет отображаться жертве как документ Word.
Значок JS отображается только в иконке в виде свитка. Неудивительно, что многие люди будут открывать это вложение, думая, что это Word-документ.
В моем примере я изменил приведенный выше PowerShell, чтобы загрузить сценарий с моего веб-сайта. Удаленный сценарий PS просто печатает «Evil Malware». Как видите, он совсем не злой. Конечно, реальные хакеры заинтересованы в получении доступа к ноутбуку или серверу, скажем, через командую оболочку. В следующей статье я покажу, как это сделать, используя PowerShell Empire.
Надеюсь, что для первой ознакомительной статьи мы не слишком глубоко погрузились в тему. Теперь я позволю вам перевести дух, и в следующий раз мы начнем разбирать реальные примеры атак с использованием fileless-малвари без лишних вводных слов и подготовки.
Источник: habr.com