
Псевдовредоносный набор для генерации артефактов памяти в пользовательском режиме, предназначенный для лёгкой имитации следов, оставляемых реальным вредоносным ПО в заражённой ОС Windows.
__ .__ _____ __ __ .__ __
_____ / |_||/ __ ____/ | | | _||/ |
_ \ __ \ \ \ \ \ _/ _\ \ | |/ / \
/ __ | | /| | | || | / __ \ _| | | <| || |
( /| || |||__| (___ /___ >| ||_ __||__|
/ / / /
Malicious Memory Artifact Generator Kit v1.0 | Forrest Orr | 2020
ОБЯЗАТЕЛЬНО
--alloc-type {dll-map-hollow|dll-load-hollow|txf-dll-map-hollow|private|mapped}
НЕОБЯЗАТЕЛЬНО
--payload-file <путь> --payload-type {PE|shellcode} --exec-method {create-thread|call|ep-jmp-hook} --stealth {wipe-headers|mirror-headers|rw-rx|dotnet|moat|peb-img-base} --moat-size <размер> --hollow-dll-file <путь>
--payload-file Файл, содержащий shellcode или PE, используемый в качестве импланта. Если этот параметр не указан пользователем, указанный тип области всё равно будет выделен, но не имплантирован никаким кодом. --payload-type Тип кода, хранящегося в указанном файле полезной нагрузки. Должен быть shellcode или MZ PE. Этот параметр обязателен, если указан файл полезной нагрузки. --alloc-type Способ создания динамической памяти, используемой для хранения импланта полезной нагрузки.
dll-map-hollow Представление секции образа, созданное из DLL в System32.
dll-load-hollow DLL, загруженная через LoadLibrary из System32.
txf-dll-map-hollow Представление секции образа, созданное из транзакционной DLL из
System32, в которую уже был имплантирован код полезной нагрузки.
private Область приватной памяти, выделенная через NtAllocateVirtualMemory.
mapped Отображённое представление секции, полученной из файла подкачки Windows.
--exec-method Метод вызова кода полезной нагрузки после его имплантации в указанную область памяти.
create-thread Выполнение полезной нагрузки с помощью API CreateThread.
call Выполнение полезной нагрузки с помощью обычной инструкции CALL.
ep-jmp-hook Выполнение полезной нагрузки через встроенный JMP из точки входа
EXE-процесса.
--stealth Необязательные обфускации выделенной области.
wipe-headers Заменяет PE-заголовок полезной нагрузки в памяти нулями. Работает
только для PE-полезных нагрузок.
mirror-headers Сохраняет оригинальные PE-заголовки пустотелой DLL после того, как в
неё имплантирован PE-файл полезной нагрузки. Работает только для
PE-полезной нагрузки с типом области образа.
rw-rx Вместо прямого выделения области импланта с правами +RWX
выделяет её как +RW, а затем устанавливает +RX. Работает
только для приватных и отображённых типов областей.
dotnet Выбирать только DLL с заголовком .NET при операциях вытеснения.
Работает только для типов областей образа.
moat Добавляет перед shellcode область, заполненную нулями.
По умолчанию используется 1 МБ заполнения. Не работает для
имплантов shellcode в пустотелых DLL. Не может использоваться с типом
выделения TxF.
peb-img-base Обновляет поле базового образа в PEB, чтобы оно указывало на вновь
выделенную область.
--moat-size Размер «рва» данных, генерируемого перед имплантом полезной нагрузки. Требуется только если указан параметр маскировки moat. Размер по умолчанию 1 МБ. --hollow-dll-file Указать вручную путь к DLL, используемой совместно с типом выделения hollowing. Если этот параметр не указан, подходящая DLL будет случайным образом выбрана из каталога Windows или одного из его подкаталогов.
ПРИМЕРЫ
Создать 32-битный имплант shellcode внутри секции .text отображённого 32-битного образа DLL и выполнить его с помощью инструкции CALL:
ArtifactsKit32.exe --payload-type shellcode --payload-file Payloads\MsgboxShellcode32.bin --alloc-type dll-map-hollow
Создать 64-битный имплант shellcode в области +RWX отображённой памяти файла подкачки со смещением +1 МБ от её базового адреса и выполнить его с помощью API KERNEL32.DLL!CreateThread:
ArtifactsKit64.exe --payload-type shellcode --payload-file Payloads\MsgboxShellcode64.bin --alloc-type mapped --stealth moat
Создать 32-битный PE-имплант поверх отображённой памяти образа 32-битной DLL, сохранив её оригинальные заголовки, загрузить и выполнить IMAGE_OPTIONAL_HEADER.AddressOfEntryPoint полезной нагрузки PE с помощью CALL:
ArtifactsKit32.exe --payload-type pe --payload-file Payloads\TestExe32.exe --alloc-type dll-map-hollow --stealth mirror-headers
Создать 64-битный PE-имплант внутри отображённой памяти образа модифицированной TxF-секции 64-битной DLL (т.е. фантомное вытеснение DLL) и выполнить его IMAGE_OPTIONAL_HEADER.AddressOfEntryPoint с помощью JMP-хука из IMAGE_OPTIONAL_HEADER.AddressOfEntryPoint родительского процесса артефакта:
ArtifactsKit64.exe --payload-type pe --payload-file Payloads\TestExe64.exe --alloc-type txf-dll-map-hollow --exec-method ep-jmp-hook