
Utilitaire EDR Windows sans dépendances qui détecte et atténue en temps réel les accès non autorisés à la mémoire de LSASS, la duplication de handles et le dumping d'identifiants via LOLBin.
Un utilitaire EDR Windows léger et sans dépendance qui détecte et atténue en temps réel les accès non autorisés à la mémoire de LSASS, la duplication de handles et les tentatives d'extraction d'identifiants via LOLBin.
Dans les environnements d'entreprise Windows, le Local Security Authority Subsystem Service () stocke les identifiants utilisateurs actifs, les tickets Kerberos (TGT) et les hachages de mots de passe NTLM dans sa mémoire virtuelle.
lsass.exeParce que LSASS détient les clés de tout le domaine, les adversaires et les red teams le ciblent régulièrement en utilisant :
PROCESS_VM_READ (0x0010) ou PROCESS_ALL_ACCESS (0x1FFFFF).rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump <lsass_pid> <dump_path> full ou procdump.exe -ma lsass.exe.Les plateformes commerciales de détection et réponse sur les terminaux (EDR) comme CrowdStrike Falcon ou SentinelOne facturent des milliers de dollars en abonnements d'entreprise pour se protéger contre cette technique précise (MITRE ATT&CK T1003.001).
MemGuard fournit une implémentation Python entièrement gratuite, open-source et transparente utilisant les structures natives du noyau Win32 et NT de Windows avec zéro dépendance tierce.
flowchart TD
subgraph Host ["Windows 11 / 10 Endpoint"]
Adversary["Attacker / LOLBin / Mimikatz / ProcDump"] -- OpenProcess (PROCESS_VM_READ) --> LSASS["lsass.exe (PID: 1744)"]
subgraph MemGuard ["MemGuard Defensive Engine"]
HScan["NtQuerySystemInformation\n(SystemExtendedHandleInformation)"] --> CheckMask{"Access Mask\nAnalysis"}
CheckMask -- "VM_READ / ALL_ACCESS" --> Alert1["🚨 Critical Alert:\nUnauthorized Handle"]
PEBScan["Process PEB Reader\n(NtQueryInformationProcess)"] --> LOLBinCheck{"CommandLine\nRegex Engine"}
LOLBinCheck -- "comsvcs.dll / procdump" --> Alert2["🚨 Critical Alert:\nLOLBin Dump Attempt"]
DumpWatch["Triage Directory\nArtifact Scanner"] --> MDMPCheck{"MDMP Header\nValidation"}
MDMPCheck -- "Valid LSASS .dmp" --> Alert3["🚨 Alert:\nRogue Dump File"]
Alert1 & Alert2 --> Mitigation["Active Mitigation:\nNtSuspendProcess (Freeze)"]
end
endInterroge NtQuerySystemInformation avec SystemExtendedHandleInformation (classe 64) pour énumérer chaque handle ouvert sur l'ensemble du système d'exploitation. Il duplique les handles de processus et vérifie si leur cible correspond au PID actif de lsass.exe.
Analyse le masque de bits GrantedAccess sur 32 bits de chaque détenteur de handle :
PROCESS_VM_READ (0x0010) : CRITIQUE (Lecture de la mémoire du processus — prérequis pour l'extraction d'identifiants)PROCESS_VM_WRITE (0x0020) : ÉLEVÉ (Injection mémoire / shellcode)PROCESS_VM_OPERATION (0x0008) : ÉLEVÉ (VirtualAllocEx / modification de protection de page)PROCESS_CREATE_THREAD (0x0002) : ÉLEVÉ (Création de thread distant)PROCESS_ALL_ACCESS (0x1FFFFF) : CRITIQUE (Contrôle sans restriction)Les processus système Windows légitimes connus (services.exe, csrss.exe, wininit.exe, Windows Defender MsMpEng.exe) sont mis en liste blanche, tandis que les processus tiers non vérifiés détenant des handles capables d'extraction sont immédiatement signalés.
Inspecte les processus en cours d'exécution en lisant le Process Environment Block (PEB) directement depuis la mémoire virtuelle via NtQueryInformationProcess(ProcessBasicInformation) et ReadProcessMemory :
PEB -> ProcessParameters -> CommandLine (UNICODE_STRING).comsvcs.dll, #24, MiniDumpWriteDump, procdump -ma).NtSuspendProcess)Lorsqu'il est exécuté avec le flag --suspend, MemGuard gèle les threads du processus fautif sur place via le natif ntdll.NtSuspendProcess, empêchant l'extraction mémoire tout en préservant le processus attaquant en RAM pour une analyse forensique en direct.
Aucune installation pip nécessaire ! Clonez et exécutez directement avec Python 3.8+ :
git clone https://github.com/prox0959/MemGuard.git
cd MemGuard
python memguard.py --scan
# Surveiller le système toutes les 3 secondes
python memguard.py --monitor --interval 3
# Surveiller avec atténuation active automatique (geler les processus d'extraction)
python memguard.py --monitor --interval 2 --suspend
python memguard.py --scan --json incident_report.json
python memguard.py --scan --lang tr
███╗ ███╗███████╗███╗ ███╗ ██████╗ ██╗ ██╗ █████╗ ██████╗ ██████╗
████╗ ████║██╔════╝████╗ ████║██╔════╝ ██║ ██║██╔══██╗██╔══██╗██╔══██╗
██╔████╔██║█████╗ ██╔████╔██║██║ ███╗██║ ██║███████║██████╔╝██║ ██║
██║╚██╔╝██║██╔══╝ ██║╚██╔╝██║██║ ██║██║ ██║██╔══██║██╔══██╗██║ ██║
██║ ╚═╝ ██║███████╗██║ ╚═╝ ██║╚██████╔╝╚██████╔╝██║ ██║██║ ██║██████╔╝
╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝
Zero-Dependency LSASS Memory Dump Shield & EDR Hook Detector | Pure Python
► MITRE ATT&CK: T1003.001 (OS Credential Dumping: LSASS Memory)
[*] Privilege Level: Elevated (Administrator) - Full Kernel Handle Access
[*] SeDebugPrivilege Status: Enabled Successfully
[*] Target Security Process Found: lsass.exe (PID: 1744) | Path: C:\Windows\System32\lsass.exe
--- LSASS Handle Table Audit (NtQuerySystemInformation) ---
✓ No unauthorized or suspicious handles targeting LSASS detected.
--- Process Heuristics & LOLBin CommandLine Inspection ---
✓ No credential dumping processes or LOLBin signatures found.
--- Dump File Artifacts & Honeypot Tripwire ---
✓ No rogue memory dump (.dmp) files identified in triage directories.
Audit Summary: 0 handle threats, 0 process threats, 0 dump artifacts.
MemGuard/
├── memguard.py # Main CLI entry point & real-time monitoring loop
├── core/
│ ├── __init__.py
│ ├── win_api.py # Native Win32/NT kernel ctypes prototypes & PEB reader
│ ├── handle_scanner.py # NtQuerySystemInformation handle table & access mask auditor
│ ├── process_auditor.py # Heuristic LOLBin cmdline inspection & parent verification
│ └── honey_dmp.py # MiniDump (.dmp) artifact validator
├── LICENSE # MIT License
├── README.md # Technical Documentation
└── requirements.txt # Zero dependencies notice
Développé par Çınar (@prox0959)
Lycéen recherchant les internes de bas niveau des systèmes d'exploitation, la sécurité défensive et la forensique mémoire Windows.
Distribué sous la MIT License.