
Быстрая отладка шеллкода, извлеченного в ходе анализа вредоносного ПО
BlobRunner — это простой инструмент для быстрой отладки шеллкода, извлечённого в ходе анализа вредоносного ПО.
BlobRunner выделяет память для целевого файла и переходит к базовому адресу (или смещению) выделенной памяти. Это позволяет
аналитику быстро начать отладку извлечённых артефактов с минимальными накладными расходами и усилиями.

Чтобы воспользоваться BlobRunner, вы можете скачать скомпилированный исполняемый файл со страницы релизов или собрать свой собственный, следуя инструкциям ниже.
Сборка исполняемого файла проста и относительно безболезненна.
Требования
Шаги сборки
cl blobrunner.c
Сборка x64-версии практически идентична описанной выше, но использует x64-инструментарий.
cl /Feblobrunner64.exe /Foblobrunner64.out blobrunner.c
Для отладки:
BlobRunner.exe shellcode.bin
Отладка файла с определённым смещением.
BlobRunner.exe shellcode.bin --offset 0x0100
Отладка файла без паузы перед переходом. Предупреждение: Убедитесь, что перед переходом установлена точка останова.
BlobRunner.exe shellcode.bin --nopause
Необязательный параметр --jit позволяет отлаживать шеллкод с помощью настроенного Just-In-Time (JIT) отладчика.
Чтобы запустить отладчик, BlobRunner удаляет право на выполнение из только что выделенной области памяти. Это вызывает
исключение AccessViolation (0xC0000005) при попытке выполнить загруженный шеллкод.
Инструкции по настройке JIT-отладчика в Windows можно найти здесь. Для x64Dbg см. setjit или setjitauto.
Пример:
BlobRunner.exe shellcode.bin --jit
Когда отладчик загрузится, предоставьте региону право на выполнение. Используя x64Dbg, вы можете выполнить команду setpagerights, указав адрес, возвращённый BlobRunner.
setpagerights <region>, ExecuteReadWrite
Встроенный ассемблер не поддерживается x64-компилятором, поэтому для поддержки отладки x64 шеллкода загрузчик создаёт приостановленный поток, что позволяет вам установить точку останова на входе в поток до его возобновления.
Процесс практически идентичен локальной отладке шеллкода — за исключением того, что вам нужно скопировать файл шеллкода на удалённую систему. Если файл скопирован в тот же каталог, откуда запускается win32_remote.exe, вам нужно использовать имя файла в качестве параметра. В противном случае вам потребуется указать путь к файлу шеллкода на удалённой системе.
Вы можете быстро сгенерировать образцы шеллкода с помощью инструмента Metasploit msfvenom.
Генерация простой полезной нагрузки Windows exec.
msfvenom -a x86 --platform windows -p windows/exec cmd=calc.exe -o test2.bin