
أداة Windows EDR بدون اعتماديات تكتشف وتمنع الوصول غير المصرح به إلى ذاكرة LSASS، ونسخ المقابض، واستخراج بيانات الاعتماد عبر LOLBin في الوقت الفعلي.
أداة EDR خفيفة الوزن لنظام Windows بدون اعتماديات، تكشف وتخفف من الوصول غير المصرح به إلى ذاكرة LSASS، ونسخ المقابض (handles)، ومحاولات استخراج بيانات الاعتماد عبر LOLBin في الوقت الفعلي.
في بيئات Windows المؤسسية، تخزّن خدمة النظام الفرعي للسلطة الأمنية المحلية (lsass.exe) بيانات اعتماد المستخدمين النشطة، وتذاكر منح التذاكر Kerberos (TGT)، وتجزئات كلمات مرور NTLM في ذاكرتها الافتراضية.
ولأن LSASS يحتفظ بمفاتيح النطاق بأكمله، فإن الخصوم والفرق الحمراء يستهدفونه بشكل روتيني باستخدام:
PROCESS_VM_READ (0x0010) أو PROCESS_ALL_ACCESS (0x1FFFFF).rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump <lsass_pid> <dump_path> full أو procdump.exe -ma lsass.exe.تفرض منصات الكشف والاستجابة لنقاط النهاية (EDR) التجارية مثل CrowdStrike Falcon أو SentinelOne آلاف الدولارات في اشتراكات المؤسسات للحماية من هذه التقنية تحديدًا (MITRE ATT&CK T1003.001).
يوفر MemGuard تنفيذًا بلغة Python مجانيًا بالكامل ومفتوح المصدر وشفافًا باستخدام بنى نواة Win32 وNT الأصلية في Windows مع صفر اعتماديات خارجية.
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
endيستعلم عن NtQuerySystemInformation باستخدام SystemExtendedHandleInformation (الفئة 64) لتعداد كل مقبض مفتوح عبر نظام التشغيل بأكمله. ينسخ مقابض العمليات ويتحقق مما إذا كان هدفها يُحل إلى PID النشط لـ lsass.exe.
يحلل قناع البتات GrantedAccess ذا الـ 32 بت لكل حامل مقبض:
PROCESS_VM_READ (0x0010): حرج (قراءة ذاكرة العملية — متطلب أساسي لاستخراج بيانات الاعتماد)PROCESS_VM_WRITE (0x0020): مرتفع (حقن الذاكرة / shellcode)PROCESS_VM_OPERATION (0x0008): مرتفع (VirtualAllocEx / تعديل حماية الصفحات)PROCESS_CREATE_THREAD (0x0002): مرتفع (إنشاء خيط عن بُعد)PROCESS_ALL_ACCESS (0x1FFFFF): حرج (تحكم غير مقيّد)تُدرج عمليات Windows النظامية الشرعية المعروفة (services.exe، csrss.exe، wininit.exe، Windows Defender MsMpEng.exe) في القائمة البيضاء، بينما تُعلَّم فورًا العمليات الخارجية غير الموثّقة التي تحمل مقابض قادرة على الاستخراج.
يفحص العمليات قيد التشغيل عبر قراءة كتلة بيئة العملية (PEB) مباشرة من الذاكرة الافتراضية عبر NtQueryInformationProcess(ProcessBasicInformation) وReadProcessMemory:
PEB -> ProcessParameters -> CommandLine (UNICODE_STRING).comsvcs.dll, #24، MiniDumpWriteDump، procdump -ma).NtSuspendProcess)عند التشغيل مع العلامة --suspend، يجمّد MemGuard خيوط العملية المخالفة في مكانها باستخدام ntdll.NtSuspendProcess الأصلي، مما يمنع استخراج الذاكرة مع الحفاظ على عملية المهاجم في الذاكرة العشوائية للتحليل الجنائي المباشر.
لا حاجة لتثبيت pip! استنسخ وشغّل مباشرة باستخدام Python 3.8+:
git clone https://github.com/prox0959/MemGuard.git
cd MemGuard
python memguard.py --scan
# Monitor system every 3 seconds
python memguard.py --monitor --interval 3
# Monitor with automatic active mitigation (freeze dumper processes)
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
طُوِّر بواسطة Çınar (@prox0959)
طالب في المدرسة الثانوية يبحث في البنى الداخلية لأنظمة التشغيل منخفضة المستوى، والأمن الدفاعي، والتحليل الجنائي لذاكرة Windows.
موزّع تحت MIT License.