- Der EPROCESS-Block enthält die wesentlichen Informationen, die der Kernel Windows wird zum Verwalten aktiver Prozesse verwendet.
- Mit den Debugger-Erweiterungen !process und .process können Sie den Kontext von Prozessen auf Kernelebene auflisten, untersuchen und ändern.
- Fortgeschrittene Techniken wie DKOM nutzen den Zugriff auf EPROCESS, um Prozesse zu verbergen und herkömmliche Sicherheitstools zu umgehen.
Zugang zum Block E-PROZESS innerhalb eines Windows-Systems ist ein Thema von enormem Interesse sowohl für Fachleute als auch Cybersicherheit, Entwickler von Treiber sowie für diejenigen, die die inneren Abläufe des Betriebssystems studieren. EPROCESS wird oft im Zusammenhang mit erweitertem Debugging, der Entwicklung forensischer Analysetools und natürlich beim Studium offensiver Techniken wie der direkten Manipulation von Objekten im Kernel, bekannt als DKOM (Direct Kernel Object Manipulation), diskutiert.
Wenn Sie sich jemals gefragt haben, wie Systeme ihre Prozesse schützen oder wie es einigen Rootkits gelingt, Prozesse vor dem Betriebssystem selbst zu verbergen, liegt der Schlüssel genau in der Kenntnis und Manipulation von Strukturen wie E-PROZESSMit diesem Leitfaden verstehen Sie von der Befehle Der Windows-Debugger, die Interpretation interner Prozessinformationen und die Möglichkeit, diese Blöcke für legitime und böswillige Zwecke zu verwenden und zu verändern. All dies geschieht in einer klaren Sprache, die sich an fortgeschrittene und technisch versierte Benutzer richtet, wobei jeder Schritt verständlich erklärt wird.
Was ist der EPROCESS-Block und warum ist er wichtig?
Innerhalb der Windows-Architektur hat jeder laufende Prozess einen zugehörigen Datenblock im Speicher, genannt E-PROZESSDieser Block enthält alle relevanten Informationen zur Verwaltung des Prozesses: Kennungen, Priorität, Adressraum, Thread-Listen, Sicherheitstoken und unzählige interne Details darüber, wie der Prozess ausgeführt und verwaltet wird.
Der Block E-PROZESS Es befindet sich im Kernelspeicher und ist für den Betrieb des Systems unerlässlich. Der Zugriff darauf bedeutet in der Praxis, das Verhalten aller Prozesse im System verstehen und ändern zu können.
Kernelmodus-Debugging: Der Ausgangspunkt
So greifen Sie auf den Block zu und prüfen ihn E-PROZESSmüssen Sie normalerweise eine Kernelmodus-DebuggingDiese Methode ermöglicht eine eingehende Analyse von Prozessen und Speicher auf niedriger Ebene auf einem Windows-System, da viele herkömmliche Benutzertools einfach nicht über die erforderlichen Berechtigungen verfügen, um direkt mit dem Kernelspeicher zu interagieren.
Der Windows Debugger ist mit sehr leistungsstarken Erweiterungen ausgestattet, darunter !Verfahren y .Verfahren, mit denen Sie vorhandene Prozessblöcke im System prüfen, filtern und bearbeiten können.
Verwenden des Befehls !process
Die Erweiterung !Verfahren Es wird am häufigsten in Kernelmodusanalyse- und Entwicklungssituationen verwendet. Seine Hauptfunktion besteht darin, detaillierte Informationen zu einem oder allen aktiven Prozessen anzuzeigen, einschließlich ihrer Blockadressen. E-PROZESS.
Wichtig! Dieser Befehl kann nur während Windows-Kernelmodus-Debugsitzungen ausgeführt werden. Wenn Sie versuchen, ihn außerhalb dieses Kontexts zu verwenden, funktioniert er einfach nicht oder zeigt nicht die erwarteten Informationen an.
Grundlegende Syntax des Befehls !process
Der übliche Aufruf hat folgendes Format:
!process ]
Oder durch Angabe zusätzlicher Optionen:
!process 0 Flags ImageName
Erklärung der wichtigsten Parameter
- /s Sitzung: Ermöglicht Ihnen, Prozesse nach einer bestimmten Sitzung zu filtern.
- /m Modul: Zeigt nur die Prozesse an, die mit einem bestimmten Modul verknüpft sind.
- Prozess: Dies kann entweder die hexadezimale Adresse eines EPROCESS-Blocks oder die PID (Prozesskennung) sein. Wird diese Angabe weggelassen, zeigt der Befehl allgemeine Informationen oder Informationen zum aktuellen Kontext an.
- Flags: Ein Wert, der den Detaillierungsgrad der Ausgabe bestimmt (z. B. 0 für grundlegende Informationen, 0x7 für ausführliche Informationen).
- Bildname: Ermöglicht die Suche nach Prozessen, deren ausführbare Datei dem angegebenen Namen entspricht. Es ist üblich, den Namen der Binärdatei anzugeben (z. B. notepad.exe), um zu filtern.
Wenn Sie Prozess gleich Null und Sie lassen Bildnamezeigt der Debugger Daten für alle aktiven Prozesse an. Wenn Sie -1wird der aktuelle Vorgang in die Fehlersuche übernommen.
Interpretieren der Ausgabe von !process
Beispiel einer typischen Ausgabe:
kd> !process 0 0
NT ACTIVE PROCESS DUMP
PROCESS 80a02a60 Cid: 0002 Peb: 00000000 ParentCid: 0000 DirBase: 00006e05 ObjectTable: 80a03788 TableSize: 150. Image: System
...
Jeder Eintrag entspricht einem Prozess und verfügt über ein Feld „PROCESS“ sowie eine hexadezimale Adresse. Dies ist die Speicheradresse des Blocks. E-PROZESS für diesen Prozess.
- Prozessrichtung: Erster Hexadezimalwert nach „PROCESS“ (Beispiel, Version:).
- Kriminalpolizei: Prozesskennung (PID).
- Peb: Adresse des PEB (Process Environment Block), relevant für den Benutzerbereich.
- ParentCid: PID des übergeordneten Prozesses.
- DirBase: Seitenverzeichnisbasis (Speicherverwaltung).
- Objekttabelle: Adresse der Tabelle der mit dem Prozess verknüpften Objekte.
- Bild: Name der mit dem Prozess verknüpften ausführbaren Datei.
Einzelheiten: Um vollständige Informationen zu erhalten, können Sie Folgendes ausführen:
!process 7
Der zweite Parameter (7) gibt an, dass die maximale Menge nützlicher Informationen über den Prozess angezeigt werden soll, einschließlich Threads, Ressourcen und Details zur Speichernutzung.
Über die Liste hinaus: Zugriff auf und Änderung des Prozesskontexts
Wenn Sie den Prozessspeicher nicht nur untersuchen, sondern auch manipulieren möchten, können Sie den Befehl verwenden .Verfahren:
.process ]
Mit diesem Befehl können Sie den Debugkontext auf den Prozess ändern, dessen Block E-PROZESS Sie angeben. Von diesem Moment an kann der Debugger auf die virtueller Speicher des Prozesses, überprüfen Sie unter anderem die geladenen Module und Befehlszeilenparameter.
- /i: Erzwingt nur beim Live-Debuggen ein invasives Debuggen des Prozesses.
- /p: Übersetzt Einträge der Prozessseitentabelle für eine eingehende Analyse.
- /r: Aufladen Symbole des Benutzers nach Prozessänderungen.
- /P: Übersetzt die Seitentabellen aller Prozesse.
Das Argument Prozess ist die Adresse des Blocks E-PROZESS zuvor erhalten mit !Verfahren.
Praktisches Beispiel zum Ändern des Kontexts:
kd> .process fe3c0d60
Implicit process is now fe3c0d60
Anschließend können Sie Befehle wie !peb um die Struktur des Prozesses, seiner geladenen Module und Umgebungsvariablen zu analysieren.
Flags und erweiterte Analyseoptionen verstehen
Parameter Flags des Befehls !Verfahren Ermöglicht Ihnen, den Detaillierungsgrad der Ausgabe anzupassen. Einige gängige Stufen sind:
- Bit 0 (0x1): Grundlegende Prioritäts- und Zeitstatistik.
- Bit 1 (0x2): Liste der Threads und Ereignisse.
- Bit 2 (0x4): Übersichtsansicht oder mit Stacktraces.
- Bit 3 (0x8): Rücksprungadressen und Stapelzeiger.
- Bit 4 (0x10): Höhere Präzision bei Kontextwechseln.
Kombinieren Sie diese Werte, indem Sie ihre Bits im Hexadezimalformat addieren (Flags = 0x7 für eine vollständige Analyse).
Praktische Anwendungen: Forensik, Sicherheit, Entwicklung und Rootkits
Zugang zum Block E-PROZESS Es gibt vielfältige Anwendungen sowohl in der legitimen Entwicklung als auch in offensiven Cybersicherheitstechniken. Eine der bekanntesten Techniken in Malware Es ist die DKOM.
Was ist DKOM?
DKOM (Direkte Kernelobjektmanipulation) Es handelt sich um eine fortgeschrittene Technik, die es Ihnen ermöglicht, Kernelobjekte zu manipulieren, wie zum Beispiel E-PROZESS das Verhalten des Systems zu verändern. Dies ermöglicht:
- Prozesse ausblenden, Treiber oder Systemelemente.
- Erhöhen Sie die Prozess- oder Thread-Berechtigungen.
- Erschweren Sie die forensische Analyse und Malware-Erkennung.
Durch die Manipulation der Felder Flink y Blinken der Struktur LIST_ENTRY en E-PROZESSkann ein Prozess aus den globalen Listen entfernt werden, wodurch er für herkömmliche Tools unsichtbar wird.
Reales Beispiel: Technik zum Verbergen von Prozessen über den Treiber
Angenommen, Sie entwickeln einen Kernel-Modus-Treiber. Mit PsLookupProcessByProcessId Sie erhalten einen Zeiger auf E-PROZESS aus der PID. Dann suchen Sie den Feldoffset Flink und Sie ändern die Struktur:
- El Flink vom versteckten Prozess zeigt auf den nächsten Prozess in der Liste.
- El Blinken des nächsten Prozesses verweist auf den vorherigen und überspringt den versteckten.
- Der versteckte Prozess aktualisiert seine eigenen Felder Flink y Blinken schweigen.
Auf diese Weise verschwindet das Verfahren aus den traditionellen Börsennotierungen, wird jedoch weiterhin durchgeführt.
Tools, Umgebungen und Anforderungen für die Kernelanalyse
Um Debugging und Manipulation auf dieser Ebene durchzuführen, benötigen Sie:
- Debugging-Umgebung (Windbg, kd) im Kernelmodus.
- Passendes Treiber-Kit (WDK/DDK).
- Entsprechende Überschriften und Symbole (ntifs.h).
- Unterstützte Systeme (Windows 2000 und höher, mit versionsspezifischen Offsets).
In vielen Beispielen und PoCs werden versteckte Treiber und Anwendungen im Benutzermodus entwickelt, um sie mithilfe von IOCTLs zu laden und mit ihnen zu kommunizieren.
Sicherheitstipps für Administratoren und Analysten
Verständnis des Zugriffs und der Manipulation von E-PROZESS ist der Schlüssel zur Erkennung bösartiger Aktivitäten und zum Schutz von Systemen. Beispiele hierfür sind:
- Rootkits erkennen: Tools wie gmer, ProcL und andere Versionen von psinfo können versteckte Prozesse finden, indem sie umfangreiche Speicherscans durchführen.
- Das System stärken: Durch die Aktualisierung von Treibern und System werden Treiberschwachstellen und DKOM-Techniken vermieden.
- Einschränkung gefährdeter Fahrer: Beschränken Sie das Laden unsicherer Treiber, um Manipulationen am Kernel zu verhindern.
Umgehung von Ransomware und EDR-Lösungen
Einige fortgeschrittene Ransomware-Beispiele, wie beispielsweise BlackByte, nutzen ähnliche Techniken, um Sicherheitslösungen zu umgehen. Sie nutzen anfällige legitime Treiber, um Kernel-Routinen in Echtzeit zu ändern, Callbacks zu löschen, Payloads zu manipulieren und EDR-Überwachungsmechanismen zu deaktivieren. Dies geschieht häufig durch dynamisch aktualisierte, kernelversionsspezifische Offsets, was ihre Erkennung erschwert.
Zu den Abwehrempfehlungen gehören die Überwachung auf nicht autorisierte Treiber, die Validierung der Integrität von Prozesslisten mit unabhängigen Tools und die Einschränkung von Treibern auf kritischen Systemen.
Die Beherrschung dieser Techniken, sowohl für den legitimen als auch für den böswilligen Einsatz, ist für Sicherheitsexperten, die Windows-Systeme auf niedriger Ebene verstehen oder schützen möchten, von entscheidender Bedeutung. Das Verstehen des Blocks E-PROZESS, wie man darauf zugreift und wie man es manipuliert, stellen eine wesentliche Grundlage für erweiterte Sicherheit und Malware-Reverse-Engineering dar.
Leidenschaftlicher Autor über die Welt der Bytes und der Technologie im Allgemeinen. Ich liebe es, mein Wissen durch Schreiben zu teilen, und genau das werde ich in diesem Blog tun und Ihnen die interessantesten Dinge über Gadgets, Software, Hardware, technologische Trends und mehr zeigen. Mein Ziel ist es, Ihnen dabei zu helfen, sich auf einfache und unterhaltsame Weise in der digitalen Welt zurechtzufinden.