
Pseudo-malicious Usermode-Memory-Artifact-Generator-Kit, das entwickelt wurde, um die von echter Malware auf einem infizierten Windows-Betriebssystem hinterlassenen Fußabdrücke leicht nachzuahmen.
__ .__ _____ __ __ .__ __
_____ / |_||/ __ ____/ | | | _||/ |
_ \ __ \ \ \ \ \ _/ _\ \ | |/ / \
/ __ | | /| | | || | / __ \ _| | | <| || |
( /| || |||__| (___ /___ >| ||_ __||__|
/ / / /
Malicious Memory Artifact Generator Kit v1.0 | Forrest Orr | 2020
ERFORDERLICH
--alloc-type {dll-map-hollow|dll-load-hollow|txf-dll-map-hollow|private|mapped}
OPTIONAL
--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 <Größe> --hollow-dll-file
--payload-file Die Datei, die entweder den Shellcode oder die PE enthält, die als Implantat verwendet werden sollen. Falls dies nicht vom Benutzer angegeben wird, wird der angegebene Regionstyp dennoch allokiert, jedoch nicht mit Code implantiert. --payload-type Der Typ des in der angegebenen Payload-Datei gespeicherten Codes. Muss ein Shellcode oder eine MZ PE sein. Dieser Parameter ist erforderlich, wenn eine Payload-Datei angegeben wird. --alloc-type Die Art und Weise, wie der dynamische Speicher, der das Payload-Implantat enthält, erstellt werden soll.
dll-map-hollow Eine Ansicht eines Image-Abschnitts, der aus einer DLL in System32
generiert wurde.
dll-load-hollow Eine DLL, die über LoadLibrary aus System32 geladen wurde.
txf-dll-map-hollow Eine Ansicht eines Image-Abschnitts, der aus einer transaktionierten
DLL aus System32 generiert wurde, die bereits mit dem Payload
implantiert wurde.
private Ein Bereich privaten Speichers, der über NtAllocateVirtualMemory
allokiert wurde.
mapped Eine gemappte Ansicht eines Sections, die von der Windows
Pagefile abgeleitet wurde.
--exec-method Die Methode, mit der der Payload-Code aufgerufen wird, nachdem er in den angegebenen Speicherbereich implantiert wurde.
create-thread Führt den Payload mit der CreateThread-API aus.
call Führt den Payload mit einem normalen CALL-Assemblerbefehl aus.
ep-jmp-hook Führt den Payload über einen Inline-JMP vom Einstiegspunkt der
Prozess-EXE aus.
--stealth Optionale Verschleierungen der allokierten Region.
wipe-headers Überschreibt den PE-Header des Payloads im Speicher mit Nullen.
Nur für PE-Payloads gültig.
mirror-headers Behält die ursprünglichen PE-Header einer ausgehöhlten DLL bei,
nachdem sie mit einem Payload-PE implantiert wurde. Nur für
einen PE-Payload in einem Image-Regionstyp gültig.
rw-rx Anstatt die Implantatregion direkt mit +RWX-Berechtigungen zu
allokieren, wird sie zuerst als +RW allokiert und danach auf +RX
gesetzt. Nur für private und mapped Regionstypen gültig.
dotnet Wählt beim Aushöhlen nur DLLs mit einem .NET-Header aus.
Nur für Image-Regionstypen gültig.
moat Füllt die allokierte Region vor dem Shellcode mit Nullen auf.
Standardmäßig wird 1 MB Padding verwendet. Nicht gültig für
Shellcode-Implantate in ausgehöhlten DLLs. Kann nicht mit dem
TxF-Allokationstyp verwendet werden.
peb-img-base Aktualisiert das Image-Base-Feld des PEB, sodass es auf die
neu allokierte Region zeigt.
--moat-size Die Größe des Datenmoats, der vor dem Payload-Implantat generiert werden soll. Nur erforderlich, wenn die Moat-Verschleierungsoption angegeben ist. Standardgröße: 1 MB. --hollow-dll-file Manuelle Angabe des Pfads einer DLL, die in Verbindung mit dem Aushöhlungs- Allokationstyp verwendet werden soll. Wenn nicht angegeben, wird zufällig eine geeignete DLL aus dem Windows-Verzeichnis oder einem seiner Unterordner ausgewählt.
BEISPIELE
Erstellen eines 32-Bit-Shellcode-Implantats im .text-Abschnitt einer gemappten 32-Bit-DLL-Image und Ausführung mit dem CALL-Befehl:
ArtifactsKit32.exe --payload-type shellcode --payload-file Payloads\MsgboxShellcode32.bin --alloc-type dll-map-hollow
Erstellen eines 64-Bit-Shellcode-Implantats in einer Region aus +RWX-gemapptem Pagefile-Speicher mit einem Offset von +1 MB von der Allokationsbasis und Ausführung mit der KERNEL32.DLL!CreateThread-API:
ArtifactsKit64.exe --payload-type shellcode --payload-file Payloads\MsgboxShellcode64.bin --alloc-type mapped --stealth moat
Erstellen eines 32-Bit-PE-Implantats auf dem gemappten Image-Speicher einer 32-Bit-DLL-Image unter Beibehaltung der ursprünglichen Header, Bootstrap und Ausführung des Payload-PE IMAGE_OPTIONAL_HEADER.AddressOfEntryPoint mit einem CALL:
ArtifactsKit32.exe --payload-type pe --payload-file Payloads\TestExe32.exe --alloc-type dll-map-hollow --stealth mirror-headers
Erstellen eines 64-Bit-PE-Implantats im gemappten Image-Speicher einer modifizierten TxF-Section einer 64-Bit-DLL (d. h. Phantom-DLL-Aushöhlung) und Ausführung seines IMAGE_OPTIONAL_HEADER.AddressOfEntryPoint mit einem JMP-Hook vom IMAGE_OPTIONAL_HEADER.AddressOfEntryPoint des Artefakt-Elternprozesses:
ArtifactsKit64.exe --payload-type pe --payload-file Payloads\TestExe64.exe --alloc-type txf-dll-map-hollow --exec-method ep-jmp-hook