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:
- Öffnen Sie einen Zielprozess mit allen Zugriffsrechten.
- Ordnen Sie den Zielprozessspeicher für den Shellcode zu.
- Schreiben Sie Shellcode in den zugewiesenen Speicher im Zielprozess.
- 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:
- Erstellen Sie einen Zielprozess im angehaltenen Zustand.
- Öffnen Sie ein schädliches Bild.
- Entfernen Sie die Zuordnung von legitimem Code aus dem Prozessspeicher.
- Reservieren Sie Speicherplätze für Schadcode und schreiben Sie jeden Abschnitt in den Adressraum.
- Legen Sie einen Einstiegspunkt für den Schadcode fest.
- Beenden Sie den Zielprozess aus einem angehaltenen Zustand.
Bei einem Thread auf hoher Ebene (Ausführung) kann das Hijacking in elf Schritte unterteilt werden:
- Suchen und öffnen Sie einen zu steuernden Zielprozess.
- Speicherbereich für Schadcode zuweisen.
- Schreiben Sie schädlichen Code in den zugewiesenen Speicher.
- Identifizieren Sie die Thread-ID des Ziel-Threads, der gekapert werden soll.
- Öffnen Sie den Zielthread.
- Den Ziel-Thread anhalten.
- Rufen Sie den Threadkontext ab.
- Aktualisieren Sie den Anweisungszeiger zum Schadcode.
- Schreiben Sie den Ziel-Thread-Kontext neu.
- Setzen Sie den entführten Thread fort.
Auf hoher Ebene kann die DLL-Injektion in sechs Schritte unterteilt werden:
- Suchen Sie einen Zielprozess zum Einfügen.
- Öffnen Sie den Zielprozess.
- Speicherbereich für schädliche DLL zuordnen.
- Schreiben Sie die schädliche DLL in den zugewiesenen Speicher.
- Laden und führen Sie die schädliche DLL aus.
Raumantworten
Welches Flag wird nach dem Einfügen des Shellcodes erhalten?
Welches Flag wird nach dem Aushöhlen und Einfügen des Shellcodes erhalten?
Welche Flagge wird nach dem Entführen des Threads erhalten?
Welcher Windows-API-Aufruf wird zum Warteschlangenaufbau einer APC-Funktion verwendet?
Kann der Void-Funktionszeiger auf einem Remote-Prozess verwendet werden? (j/n)
Waren die von TrickBot eingesetzten Injektionstechniken reflektierend? (j/n)
Welcher Funktionsname wurde zum manuellen Schreiben von Hooks verwendet?
Video-Komplettlösung