
Utility EDR Windows senza dipendenze che rileva e mitiga in tempo reale l'accesso non autorizzato alla memoria di LSASS, la duplicazione degli handle e il credential dumping tramite LOLBin.
Un'utilità EDR leggera e a dipendenze zero per Windows che rileva e mitiga in tempo reale accessi non autorizzati alla memoria di LSASS, duplicazione di handle e tentativi di dump delle credenziali tramite LOLBin.
Negli ambienti aziendali Windows, il Local Security Authority Subsystem Service () memorizza nella propria memoria virtuale le credenziali degli utenti attivi, i ticket Kerberos (TGT) e gli hash delle password NTLM.
lsass.exePoiché LSASS custodisce le chiavi dell'intero dominio, gli avversari e i red team lo prendono di mira abitualmente utilizzando:
PROCESS_VM_READ (0x0010) o PROCESS_ALL_ACCESS (0x1FFFFF).rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump <lsass_pid> <dump_path> full o procdump.exe -ma lsass.exe.Le piattaforme commerciali di Endpoint Detection and Response (EDR) come CrowdStrike Falcon o SentinelOne richiedono migliaia di dollari in abbonamenti enterprise per proteggere da questa esatta tecnica (MITRE ATT&CK T1003.001).
MemGuard fornisce un'implementazione Python completamente gratuita, open-source e trasparente che utilizza le strutture native del kernel Win32 e NT di Windows con zero dipendenze di terze parti.
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
endInterroga NtQuerySystemInformation con SystemExtendedHandleInformation (classe 64) per enumerare ogni handle aperto nell'intero sistema operativo. Duplica gli handle dei processi e verifica se il loro target corrisponde al PID attivo di lsass.exe.
Analizza la bitmask a 32 bit GrantedAccess di ciascun detentore di handle:
PROCESS_VM_READ (0x0010): CRITICO (Lettura della memoria del processo — prerequisito per il dumping delle credenziali)PROCESS_VM_WRITE (0x0020): ALTO (Iniezione di memoria / shellcode)PROCESS_VM_OPERATION (0x0008): ALTO (VirtualAllocEx / modifica della protezione delle pagine)PROCESS_CREATE_THREAD (0x0002): ALTO (Creazione di thread remoti)PROCESS_ALL_ACCESS (0x1FFFFF): CRITICO (Controllo senza restrizioni)I processi di sistema Windows legittimi noti (services.exe, csrss.exe, wininit.exe, Windows Defender MsMpEng.exe) sono inseriti in whitelist, mentre i processi di terze parti non verificati che detengono handle capaci di dump vengono immediatamente segnalati.
Ispeziona i processi in esecuzione leggendo direttamente il Process Environment Block (PEB) dalla memoria virtuale tramite NtQueryInformationProcess(ProcessBasicInformation) e ReadProcessMemory:
PEB -> ProcessParameters -> CommandLine (UNICODE_STRING).comsvcs.dll, #24, MiniDumpWriteDump, procdump -ma).NtSuspendProcess)Quando viene eseguito con il flag --suspend, MemGuard congela sul posto i thread del processo offensivo utilizzando ntdll.NtSuspendProcess nativo, impedendo l'estrazione della memoria e preservando al contempo il processo dell'attaccante in RAM per l'analisi forense live.
Nessuna installazione pip necessaria! Clona ed esegui direttamente con Python 3.8+:
git clone https://github.com/prox0959/MemGuard.git
cd MemGuard
python memguard.py --scan
# Monitora il sistema ogni 3 secondi
python memguard.py --monitor --interval 3
# Monitora con mitigazione attiva automatica (congela i processi di dumping)
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
Sviluppato da Çınar (@prox0959)
Studente delle scuole superiori che ricerca gli interni di basso livello dei sistemi operativi, la sicurezza difensiva e la forense della memoria di Windows.
Distribuito sotto la MIT License.