Wir haben uns mit Prozessinjektion und Prozessaushöhlung befasst. Prozessinjektion ist der Prozess, bei dem ein bereits laufender Prozess mit Schadcode oder Shellcode injiziert wird. Prozessaushöhlung ist der Prozess, bei dem ein legitimer Prozess in einen angehaltenen Zustand versetzt wird und der legitime Code dann aus dem Speicher entfernt und durch den Shellcode ersetzt wird. Sowohl Prozessinjektion als auch Aushöhlung sind nützlich, um Rootkits und Shellcodes in unschuldig aussehenden Prozessen zu verstecken, um Zugriff und Persistenz aufrechtzuerhalten. Dies war Teil von TryHackMe missbraucht Windows-Interna Pfad des roten Teams.

Wir haben auch DLL-Injection und DLL-Hijacking anhand eines praktischen Szenarios aus dem TryHackMe-Labor „Abusing Windows Internals“ behandelt, das Teil des Red-Team-Pfads ist. Bei der DLL-Injection werden Windows-API-Aufrufe verwendet, um bestimmte Aktionen auszuführen, z. B. einen laufenden Prozess auszuwählen, Speicher zuzuweisen und die bösartige DLL in den zugewiesenen Speicherbereich zu schreiben. Bei DLL-Hijacking sind Zugriffsberechtigungen erforderlich, um eine legitime DLL zu finden und durch eine bösartige zu ersetzen.

Holen Sie sich die Studiennotizen zu COMPTIA Pentest+

Kurs zu Techniken zur Eskalation von Windows-Berechtigungen

Beschreibung der Herausforderung

Nutzen Sie interne Windows-Komponenten, um gängigen Erkennungslösungen zu entgehen, indem Sie moderne, werkzeugunabhängige Ansätze verwenden.

Video-Highlights

„Prozessinjektion“ wird häufig als Oberbegriff verwendet, um das Einschleusen von Schadcode in einen Prozess über legitime Funktionen oder Komponenten zu beschreiben.

Auf einer hohen Ebene kann die Shellcode-Injektion in vier Schritte unterteilt werden:

  1. Öffnen Sie einen Zielprozess mit allen Zugriffsrechten.
  2. Ordnen Sie den Zielprozessspeicher für den Shellcode zu.
  3. Schreiben Sie Shellcode in den zugewiesenen Speicher im Zielprozess.
  4. Führen Sie den Shellcode mithilfe eines Remote-Threads aus.

Process Hollowing bietet die Möglichkeit, eine ganze bösartige Datei in einen Prozess einzuschleusen. Dies wird erreicht, indem der Prozess „ausgehöhlt“ oder entmappt wird und bestimmte SPORT (Ptragbar Executable) Daten und Abschnitte in den Prozess ein.

Auf hoher Ebene kann das Aushöhlen in sechs Schritte unterteilt werden:

  1. Erstellen Sie einen Zielprozess im angehaltenen Zustand.
  2. Öffnen Sie ein schädliches Bild.
  3. Entfernen Sie die Zuordnung von legitimem Code aus dem Prozessspeicher.
  4. Reservieren Sie Speicherplätze für Schadcode und schreiben Sie jeden Abschnitt in den Adressraum.
  5. Legen Sie einen Einstiegspunkt für den Schadcode fest.
  6. Beenden Sie den Zielprozess aus einem angehaltenen Zustand.

Bei einem Thread auf hoher Ebene (Ausführung) kann das Hijacking in elf Schritte unterteilt werden:

  1. Suchen und öffnen Sie einen zu steuernden Zielprozess.
  2. Speicherbereich für Schadcode zuweisen.
  3. Schreiben Sie schädlichen Code in den zugewiesenen Speicher.
  4. Identifizieren Sie die Thread-ID des Ziel-Threads, der gekapert werden soll.
  5. Öffnen Sie den Zielthread.
  6. Den Ziel-Thread anhalten.
  7. Rufen Sie den Threadkontext ab.
  8. Aktualisieren Sie den Anweisungszeiger zum Schadcode.
  9. Schreiben Sie den Ziel-Thread-Kontext neu.
  10. Setzen Sie den entführten Thread fort.

Auf hoher Ebene kann die DLL-Injektion in sechs Schritte unterteilt werden:

  1. Suchen Sie einen Zielprozess zum Einfügen.
  2. Öffnen Sie den Zielprozess.
  3. Speicherbereich für schädliche DLL zuordnen.
  4. Schreiben Sie die schädliche DLL in den zugewiesenen Speicher.
  5. Laden und führen Sie die schädliche DLL aus.

Raumantworten

Identifizieren Sie die PID eines Prozesses, der als THM-Attacker ausgeführt wird, um ihn anzugreifen. Sobald die PID identifiziert ist, geben Sie sie als Argument für die Ausführung an. shellcode-injector.exe befindet sich im Injectors-Verzeichnis auf dem Desktop.

Welches Flag wird nach dem Einfügen des Shellcodes erhalten?

Identifizieren Sie einen PID eines Prozesses, der als THM-Attacker läuft, auf das Ziel. Geben Sie die PID und den Namen der ausführbaren Datei als Argumente an, um Aushöhlung-injektor.exe befindet sich im Injektorverzeichnis auf dem Desktop.

Welches Flag wird nach dem Aushöhlen und Einfügen des Shellcodes erhalten?

Identifizieren Sie einen PID eines Prozesses, der als THM-Attacker läuft, auf das Ziel. Geben Sie die PID als Argument an, um Faden-injector.exe befindet sich im Injectors-Verzeichnis auf dem Desktop.

Welche Flagge wird nach dem Entführen des Threads erhalten?

Welches Protokoll wird für die asynchrone Ausführung im Kontext eines Threads verwendet?

Welcher Windows-API-Aufruf wird zum Warteschlangenaufbau einer APC-Funktion verwendet?

Kann der Void-Funktionszeiger auf einem Remote-Prozess verwendet werden? (j/n)

Welcher alternative Windows-API-Aufruf wurde von TrickBot verwendet, um einen neuen Benutzer-Thread zu erstellen?

Waren die von TrickBot eingesetzten Injektionstechniken reflektierend? (j/n)

Welcher Funktionsname wurde zum manuellen Schreiben von Hooks verwendet?

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