Wir haben die Grundlagen der internen Vorgänge in Windows behandelt, darunter Prozesse, virtuelle Speicherzuweisung, Handles, DLLs, Portable Executable Header und andere Aspekte des Windows-Betriebssystems. Dies war Teil von Interne Vorgänge von TryHackMe Pfad des Roten Teams.

OSCP-Notizen abrufen

Kurs zu Techniken zur Eskalation von Windows-Berechtigungen

Beschreibung der Herausforderung

Lernen und verstehen Sie die Grundlagen der Funktionsweise von Windows.

Video-Highlights

Ein Prozess verwaltet und repräsentiert die Ausführung eines Programms; eine Anwendung kann einen oder mehrere Prozesse enthalten. Ein Prozess hat viele Komponenten, in die er zerlegt wird, um gespeichert und mit ihnen interagiert zu werden. Der Microsoft-Dokumente Unterteilen Sie diese anderen Komponenten in „Jeder Prozess stellt die Ressourcen bereit, die zur Ausführung eines Programms erforderlich sind. Ein Prozess verfügt über einen virtuellen Adressraum, ausführbaren Code, offene Handles für Systemobjekte, einen Sicherheitskontext, eine eindeutige Prozesskennung, Umgebungsvariablen, eine Prioritätsklasse, minimale und maximale Arbeitssatzgrößen und mindestens einen Ausführungsthread.“ Diese Informationen können einschüchternd wirken, aber dieser Raum soll dieses Konzept etwas weniger komplex machen.

Ein Thread ist eine ausführbare Einheit, die von einem Prozess verwendet und basierend auf Gerätefaktoren geplant wird.

Gerätefaktoren können variieren je nach CPU und Speicherspezifikationen, Prioritäts- und logische Faktoren und andere.

Wir können die Definition eines Threads vereinfachen: „Steuerung der Ausführung eines Prozesses.“

Da Threads die Ausführung steuern, ist dies eine häufig angegriffene Komponente. Thread-Missbrauch kann allein zur Unterstützung der Codeausführung verwendet werden, oder er wird häufiger zur Verkettung mit anderen API Anrufe als Teil anderer Techniken.

Der virtuelle Speicher ist eine wichtige Komponente der Funktionsweise und Interaktion von Windows-Interna. Der virtuelle Speicher ermöglicht anderen internen Komponenten die Interaktion mit dem Speicher, als wäre er physischer Speicher, ohne dass es zu Konflikten zwischen Anwendungen kommt.

Der virtuelle Speicher stellt jedem Prozess eine privater virtueller Adressraum. Ein Speichermanager wird verwendet, um virtuelle Adressen in physische Adressen zu übersetzen. Durch einen privaten virtuellen Adressraum und das Nicht-direkte Schreiben in den physischen Speicher besteht für Prozesse ein geringeres Risiko, Schäden zu verursachen.

Der Microsoft-Dokumente beschreiben Sie eine DLL als „eine Bibliothek, die Code und Daten enthält, die von mehreren Programmen gleichzeitig verwendet werden können.“

DLLs werden als eine der Kernfunktionen hinter der Anwendungsausführung in Windows verwendet. Von der Windows-Dokumentation„Die Verwendung von DLLs fördert die Modularisierung von Code, die Wiederverwendung von Code, die effiziente Speichernutzung und die Reduzierung des Speicherplatzes. Das Betriebssystem und die Programme werden also schneller geladen, laufen schneller und beanspruchen weniger Speicherplatz auf dem Computer.“

Wenn ein DLL als Funktion in ein Programm geladen wird, wird die DLL als Abhängigkeit zugewiesen. Da ein Programm von einer DLL abhängig ist, können Angreifer die DLLs und nicht die Anwendungen angreifen, um einen Aspekt der Ausführung oder Funktionalität zu steuern.

Raumantworten

Öffnen Sie die bereitgestellte Datei „Logfile.PML“ in Procmon und beantworten Sie die folgenden Fragen.

Was ist die Prozess-ID von „notepad.exe“?

Was ist die übergeordnete Prozess-ID des vorherigen Prozesses?

Wie hoch ist die Integritätsstufe des Prozesses?

Wie lautet die Thread-ID des ersten von notepad.exe erstellten Threads?

Was ist das Stapelargument des vorherigen Threads?

Wie groß ist der theoretisch maximale virtuelle Adressraum eines 32-Bit-x86-Systems?

Welches Flag mit den Standardeinstellungen kann zum Neuzuordnen des Adressraums von Benutzerprozessen verwendet werden?

Öffnen Sie die bereitgestellte Datei „Logfile.PML“ in Procmon und beantworten Sie die folgenden Fragen.

Was ist die Basisadresse von „notepad.exe“?

Was ist die Basisadresse von „ntdll.dll“, das von „notepad.exe“ geladen wurde?

Wie groß ist die von „notepad.exe“ geladene Datei „ntdll.dll“?

Wie viele DLLs wurden von „notepad.exe“ geladen?

Was SPORT Komponente druckt die Meldung „Dieses Programm kann nicht im DOS-Modus ausgeführt werden“?

Öffnen Sie „notepad.exe“ in Detect It Easy und beantworten Sie die folgenden Fragen.

Was ist der von DiE gemeldete Einstiegspunkt?

Was ist der Wert von „AnzahlAbschnitte“?

Wie lautet die virtuelle Adresse von „.Daten“?

Welche Zeichenfolge befindet sich am Offset „0001f99c“?

Geben Sie unten das Flag ein, das Sie aus der ausführbaren Datei erhalten haben.

Video-Komplettlösung

Über den Autor

Ich erstelle Notizen zur Cybersicherheit, Notizen zum digitalen Marketing und Online-Kurse. Ich biete auch Beratung zum digitalen Marketing an, einschließlich, aber nicht beschränkt auf SEO, Google- und Meta-Anzeigen und CRM-Verwaltung.

Artikel anzeigen