NovaLdr ⚜️
NovaLdr — это Threadless Module Stomping, написанный на Rust, созданный как учебный проект во время исследования мира разработки вредоносного ПО. Он использует продвинутые техники, такие как косвенные системные вызовы и шифрование строк, для достижения своих функций. Этот проект не предназначен быть законченным или отшлифованным продуктом, а скорее путешествием в технические аспекты вредоносного ПО, демонстрирующим различные техники и возможности.
Обзор возможностей 💡
- Косвенные системные вызовы
- Шифрование строк
- Шифрование шелл-кода: простой XOR и преобразование байтов шелл-кода в MAC-адрес
- Выполнение без потока
- Threadless inject: записывает трамплин в указанную функцию внутри заданной DLL и перенаправляет её для загрузки другой DLL.
- JMPThreadHijack: захватывает поток без вызова SetThreadContext. Требует доработки, так как я ленив и не реализовал всё достаточно хорошо для сохранения исходной функциональности потока. Просто быстрый и грязный PoC (Остерегайтесь контроля выполнения полезной нагрузки. Браузеры склонны выполнять полезную нагрузку несколько раз)
- Отключение модуля
- Перезаписывает магические байты заголовка DOS.
- Очищает базовые адреса DLL из целевого процесса.
- Удаляет строки имени DLL из целевого процесса.
- Отключает модуль из списка модулей
- Запуск процесса: создание приостановленного процесса с помощью NtCreateUserProcess, подмена PPID и установка процесса в режим блокировки DLL
- Открепление Ntdll: удаленное и локальное открепление Ntdll с использованием техники Fart от Parun
- Нет GetModuleHandleA и GetProcAddress: пользовательская функция, использующая NT-функции
- Спящий режим с шифрованием: пользовательская функция сна, которая шифрует стек во время сна с помощью отдельного потока.
- HWBP: бесшовный обход AMSI + ETW в процессе с помощью HWBP во всех потоках.
Использование 🛠️
- Создать файл шелл-кода:
msfvenom -p windows/x64/messagebox TITLE=NovaLdr TEXT='In memory of all those murdered in the Nova party massacre 7.10.2023' ICON=WARNING EXITFUNC=thread -b '\xff\x00\x0b' -f raw -e none -o Nova_MSG.bin
- Зашифровать файл шелл-кода и преобразовать его в формат MAC-адреса:
python bin2mac.py Nova_MSG.bin > nova_msg.txt
- Скопировать содержимое выходного файла и вставить его в файл main.rs
- Скомпилировать программу, просто запустив файл
compile.bat
Отказ от ответственности 📢
NovaLdr предназначен только для образовательных и исследовательских целей. Автор не несет ответственности за любое неправомерное использование или ущерб, причиненный этой программой. Всегда запрашивайте разрешение перед тестированием на любой цели.
Вклад 📈
Поскольку этот проект является учебным путешествием, мы приветствуем вклад, предложения и улучшения, чтобы сделать NovaLdr ценным ресурсом для изучения разработки вредоносного ПО на Rust.
Ресурсы и благодарности 📍
POC

PE-SIEVE
