


Drei Prozessinjektionstechniken in der Mitre ATT&CK-Matrix
Drei Prozessinjektionstechniken in der Mitre ATT&CK-Matrix: klassische Prozessinjektion, Process Hollowing
und Process Doppelgänging
.
Der Hauptzweck von Malware mithilfe von Prozessinjektion besteht im Allgemeinen darin, die Erkennung durch Antivirensoftware zu vermeiden oder Vorgänge zur Rechteausweitung durchzuführen. Hier werden wir hauptsächlich die drei Methoden im ersten Fall ausführlich besprechen.
1: Klassische Prozessinjektion (DLL-Injektion)
Dies ist die klassischste Methode, und der Prozess ist auch sehr einfach und klar:
OpenProcess -> VirtualAllocEx -> WriteProcessMemory -> CreateRemoteThread
2: Process Hollowing
Dies ist eine sehr alte Methode, die im Chinesischen allgemein mit „Erstellen einer Puppe“ übersetzt wird Prozess“ „Der mit dieser Methode erstellte Prozess kann als jeder legale Prozess getarnt werden, z. B. als IE. Wenn er mit dem Prozess-Hacker im Speicher angezeigt wird, sind seine Symbolressourcen, seine Beschreibung und seine digitale Signatur alle die Werte des IE. Dies kann für Rettungskräfte während der Untersuchung schwierig zu erkennen sein.
Fassen Sie diese Methode in prägnanter Sprache zusammen: Der böswillige Prozess erstellt zunächst einen Prozess im angehaltenen Zustand, bricht dann seine ursprüngliche Speicherzuordnung ab, ersetzt sie durch vorbereiteten bösartigen Code und führt dann Vorgänge auf dem aus Geänderte Bilddatei. Stellen Sie den laufenden Status des Prozesses nach der Umleitung wieder her.
Implementierungsideen:
1. Erstellen Sie den Zielprozess über CreateProcess und übergeben Sie den Parameter CREATE_SUSPENDED, um den Prozess anzuhalten
2 . Durch NtQueryProcessInformation Holen Sie sich die Basisadresse der Bilddatei im Speicher des Zielprozesses. (PEB-Blockdatenstruktur)
3. Löschen Sie die Speicherdaten (Abschnitt) des Zielprozesses über NtUnmapViewOfSection. Die eingehenden Parameter sind das Prozesshandle und die Basisadresse des Bilddatei
4 Beantragen Sie neuen Speicher über VirtualAllocEx (die Startadresse ist die Basisadresse der vorherigen Bilddatei und die Größe ist die Größe der Nutzlast)
5. Schreiben Sie die Nutzlast in den Speicher
6. Leiten Sie die Basisadresse der in den Speicher geschriebenen Nutzlast um
7 Ziel-Thread über GetThreadContext und ändern Sie das EAX-Register des Kontexts in „Code-Einstiegspunkt korrigieren“
8. Legen Sie den Einstiegspunkt über „SetThreadContext“ fest
9
Konfrontationsideen:
Aus der Umsetzung Aus der Idee geht hervor, dass die Schritte 1, 4, 5, 6, 7, 8 und 9 herkömmliche Methoden zum Erstellen eines Prozesses und anschließenden Injizierens sind es selbst. Lediglich die Schritte 2 und 3 sind etwas Besonderes. Es kann mithilfe herkömmlicher Erkennungsmethoden wie Hook-Key-Funktionen erkannt werden.
Drei: Prozess-Doppelgänging
Dies ist eine relativ neue Injektionsmethode, die erstmals 2017 auf der europäischen Black-Hat-Konferenz vorgeschlagen wurde. Diese Methode ähnelt im Prinzip und in der Leistung dem Process Hollowing. Wenn der mit Process Doppelgänging erstellte Prozess mit Process Hacker im Speicher angezeigt wird, sind seine Symbolressourcen, Beschreibung und digitalen Signatur alle angegebenen Zielprogramme.
Diese Methode nutzt die Eigenschaften der Windows-Transaktion (TxF) und überschreibt mit schädlichen Dateien legitime Dateien in der Transaktion. Zu diesem Zeitpunkt wird die Transaktion nicht übermittelt (d. h. das Überschreiben findet nicht statt). der Festplatte) und dann wird ein Abschnitt erstellt (derzeit Kopie der Transaktion). Nach Erhalt des Abschnittshandles wird die Transaktion zurückgesetzt, um zu verhindern, dass schädliche Dateien tatsächlich legitime Dateien auf der Festplatte überschreiben. Danach wird das Handle des Abschnitts im Speicher zum Erstellen des Prozesses verwendet. Der erstellte Prozess verfügt über Informationen zu legalen ausführbaren Dateien.
Wie Sie sehen können, erfordert diese Methode eine Schreibberechtigung für die Zieldatei, da die Datei in der Transaktion überschrieben werden muss.
Implementierungsideen:
1. Erstellen Sie ein TxF-Transaktionsobjekt (NtCreateTransaction)
2. Öffnen Sie legal ausführbare Dateien mit der Transaktions-API. das heißt, Hinzufügen der Datei zum Transaktionsobjekt (CreateFileTransacted)
3. Öffnen Sie die schädliche Datei und weisen Sie ihr Speicherplatz zu (CreateFile, GetFileSizeEx -> NtAllocateVirtualMemory -> ; ReadFile)
4. Überschreiben Sie die legitime ausführbare Datei in der Transaktion mit der schädlichen Datei im Speicher (WriteFile)
5 die aktuelle Transaktion (NtCreateSection)
6. Setzen Sie die Transaktion zurück und stellen Sie die gerade überschriebene Datei in einer legalen ausführbaren Datei wieder her (NtRollbackTransaction)
7. Verwenden Sie den Abschnitt im Speicher, um den Prozess zu erstellen Objekt (NtCreateProcessEx)
8. Ermitteln Sie den Eintrittspunkt der Schaddatei, erstellen Sie einen Prozessparameterblock und schreiben Sie dann den Prozessblock in den Prozessspeicher (NtQueryInformationProcess -> ;RtlInitUnicodeString -> RtlCreateProcessParametersEx)
9. Aktualisieren Sie den Prozessparameterblock im PEB, erstellen Sie einen Thread für das Zielprozessobjekt und führen Sie Schadcode aus (NtCreateThreadEx)
Gegenmaßnahmen:
Anhand der Schritte kann Hook diese Technik erkennen, indem er Schlüsselfunktionen beurteilt (z. B. NtCreateThreadEx).
Zusammenfassung
Aus der Entwicklung der oben genannten drei Techniken lassen sich mehrere Trends erkennen.
Der erste Punkt ist, dass die Fähigkeit zur Verschleierung im Gedächtnis immer stärker wird. Von Anfang an gab es überhaupt keine Verschleierung, bis jetzt kann es sich im Gedächtnis im Einklang mit dem rechtlichen Programm verhalten.
Zweitens: Die Methode zum Freigeben von Nutzlasten in den Speicher wird immer schwieriger zu erkennen. Ursprünglich wurden Nutzlasten direkt in den Speicher kopiert. Jetzt können Angreifer einige Funktionen (z. B. TxF) nutzen, um den Freigabevorgang noch weiter zu verbergen.
Der dritte Punkt ist, dass die Schlüsselfunktionen in der Endphase fast keine Änderungen aufweisen. Auch wenn die Freigabe der Nutzlast immer mehr verborgen bleibt, wird sie dennoch in den Speicher freigegeben und zur Ausführung aufgerufen. Durch die Einbindung einer begrenzten Anzahl wichtiger Funktionen sollte die endgültige Nutzlast entsorgt werden.
Weitere verwandte Tutorial-Empfehlungen: Webserver-Sicherheit
Das obige ist der detaillierte Inhalt vonDrei Prozessinjektionstechniken in der Mitre ATT&CK-Matrix. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





Im ersten Artikel dieser Reihe haben wir die Zusammenhänge und Unterschiede zwischen künstlicher Intelligenz, maschinellem Lernen, Deep Learning, Datenwissenschaft und mehr diskutiert. Wir haben auch einige schwierige Entscheidungen hinsichtlich der Programmiersprachen, Tools und mehr getroffen, die in der gesamten Serie verwendet werden sollen. Abschließend haben wir noch ein wenig Matrixwissen eingeführt. In diesem Artikel werden wir die Matrix, den Kern der künstlichen Intelligenz, ausführlich besprechen. Aber vorher wollen wir zunächst die Geschichte der künstlichen Intelligenz verstehen. Warum müssen wir die Geschichte der künstlichen Intelligenz verstehen? In der Geschichte gab es viele KI-Booms, aber in vielen Fällen blieben die großen Erwartungen an das Potenzial der KI aus. Das Verständnis der Geschichte der künstlichen Intelligenz kann uns helfen zu erkennen, ob diese Welle der künstlichen Intelligenz Wunder bewirken wird oder nur eine weitere Blase ist, die kurz vor dem Platzen steht. uns

Eine beliebte Allzweck-Programmiersprache ist Python. Es wird in einer Vielzahl von Branchen eingesetzt, darunter Desktop-Anwendungen, Webentwicklung und maschinelles Lernen. Glücklicherweise verfügt Python über eine einfache und leicht verständliche Syntax, die für Anfänger geeignet ist. In diesem Artikel verwenden wir Python, um die Summe der rechten Diagonalen einer Matrix zu berechnen. Was ist eine Matrix? In der Mathematik verwenden wir ein rechteckiges Array oder eine Matrix, um ein mathematisches Objekt oder seine Eigenschaften zu beschreiben. Es handelt sich um ein rechteckiges Array oder eine Tabelle, die in Zeilen und Spalten angeordnete Zahlen, Symbole oder Ausdrücke enthält. Zum Beispiel -234512367574. Dies ist also eine Matrix mit 3 Zeilen und 4 Spalten, ausgedrückt als 3*4-Matrix. Nun gibt es in der Matrix zwei Diagonalen, die Primärdiagonale und die Sekundärdiagonale

In diesem Artikel erfahren Sie, wie Sie die Determinante einer Matrix mithilfe der Numpy-Bibliothek in Python berechnen. Die Determinante einer Matrix ist ein Skalarwert, der die Matrix in kompakter Form darstellen kann. Es ist eine nützliche Größe in der linearen Algebra und hat zahlreiche Anwendungen in verschiedenen Bereichen, darunter Physik, Ingenieurwesen und Informatik. In diesem Artikel besprechen wir zunächst die Definition und Eigenschaften von Determinanten. Anschließend lernen wir, wie man Numpy zur Berechnung der Determinante einer Matrix verwendet, und sehen anhand einiger Beispiele, wie es in der Praxis verwendet wird. Die Determinante einer Matrix ist ein Larwert, der zur Beschreibung der Eigenschaft verwendet werden kann

Eine Matrix ist eine Menge von Zahlen, die in Zeilen und Spalten angeordnet sind. Eine Matrix mit m Zeilen und n Spalten wird als mXn-Matrix bezeichnet, und m und n werden als ihre Dimensionen bezeichnet. Eine Matrix ist ein zweidimensionales Array, das in Python mithilfe von Listen oder NumPy-Arrays erstellt wird. Im Allgemeinen kann die Matrixmultiplikation durch Multiplikation der Zeilen der ersten Matrix mit den Spalten der zweiten Matrix erfolgen. Dabei sollte die Anzahl der Spalten der ersten Matrix gleich der Anzahl der Zeilen der zweiten Matrix sein. Eingabe- und Ausgabeszenario Angenommen, wir haben zwei Matrizen A und B. Die Abmessungen dieser beiden Matrizen betragen 2X3 bzw. 3X2. Die resultierende Matrix nach der Multiplikation hat 2 Zeilen und 1 Spalte. [b1,b2][a1,a2,a3]*[b3,b4]=[a1*b1+a2*b2+a3*a3][a4,a5,a6][b5,b6][a4*b2+a

Der Benutzer muss die Reihenfolge der beiden Matrizen sowie die Elemente beider Matrizen eingeben. Vergleichen Sie dann die beiden Matrizen. Zwei Matrizen sind gleich, wenn beide Matrixelemente und -größen gleich sind. Wenn die Matrizen gleich groß, aber nicht gleich in den Elementen sind, werden die Matrizen als vergleichbar, aber nicht gleich dargestellt. Wenn die Größen und Elemente nicht übereinstimmen, können die Anzeigematrizen nicht verglichen werden. Das folgende Programm ist ein C-Programm, das verwendet wird, um zu vergleichen, ob zwei Matrizen gleich sind: #include<stdio.h>#include<conio.h>main(){ intA[10][10],B[10][10] ; In

Eine Matrix ist eine zweidimensionale Anordnung von Zahlen, die in Zeilen und Spalten angeordnet sind. Python verfügt über keinen Datentyp zur Darstellung von Matrizen, wir können jedoch verschachtelte Listen oder NumPy-Arrays als Matrizen verwenden. Sehen Sie sich die folgenden Eingabe- und Ausgabeszenarien an, um zu erfahren, wie Sie die ersten und letzten Spaltenelemente einer Matrix austauschen. Eingabe-Ausgabe-Szenario Angenommen, wir haben eine 3X3-Matrix, die durch eine Liste von Listen dargestellt wird. Die Ausgabematrix ist die resultierende Matrix aus dem Austausch der ersten und letzten Spaltenelemente. Eingabematrix:[1,3,4][4,5,6][7,8,3]Ausgabematrix:[4,3,1][4,5,6][3,8,7]Betrachten wir eine andere Eine Matrix, deren Zeilen und Spalten ungleich sind. Eingabematrix:

Im Social-Media-Bereich ist der Matrix-Account-Backflow eine gängige Strategie. Durch die Umleitung des Traffics zwischen verschiedenen Accounts können sich Fans gegenseitig ergänzen und ihre Aktivität steigern. Der Rückfluss zwischen Matrixkonten erfordert eine sorgfältige Planung und Ausführung und ist keine einfache Angelegenheit. In diesem Artikel wird ausführlich erläutert, wie eine Umkehrung zwischen verschiedenen Konten implementiert wird und welche Bedeutung die Matrixumkehr hat. 1. Wie storniere ich das Konto in der Matrix? Unter den Matrixkonten ist es entscheidend, ein Hauptkonto auszuwählen, das zur Hauptverkehrsquelle und Plattform für die Veröffentlichung von Kerninhalten wird. Bei der Inhaltsplanung geht es darum, entsprechende Inhaltspläne auf der Grundlage von Kontomerkmalen und Zielgruppen zu formulieren, um eine gleichbleibende Qualität und einen gleichbleibenden Stil der Inhalte sicherzustellen. 3. Empfehlen und liken Sie sich gegenseitig: Bewerben und liken Sie sich gegenseitig zwischen Matrix-Konten und führen Sie die Fans durch angemessene Layouts und Arrangements.

Mit der rasanten Entwicklung der Kurzvideobranche hat sich Douyin zu einer der beliebtesten Kurzvideoplattformen in China entwickelt. Viele Unternehmen und Selbstständige hoffen, ihren Einfluss durch den Aufbau einer Douyin-Kontomatrix zu erweitern. Wie erstellt man also eine gute Douyin-Kontomatrix? Dieser Artikel beantwortet diese Frage für Sie und stellt Möglichkeiten zur Lösung von Kontoproblemen vor. 1. Wie richte ich die Douyin-Kontomatrix ein? Bei der Erstellung einer Douyin-Kontomatrix besteht die erste Aufgabe darin, die Positionierung jedes Kontos genau zu bestimmen. Klären Sie je nach den Merkmalen der Marke oder Person das Thema und den Stil jedes Kontos, um die Zielgruppe anzusprechen. Die Festlegung Ihrer Content-Strategie ist von entscheidender Bedeutung, einschließlich Inhaltsthemen, Veröffentlichungshäufigkeit und Aufnahmetechniken. Diese Schritte können dazu beitragen, dass Kontomatrizen ihre Wirksamkeit voll ausschöpfen. 3. Interaktion zwischen Konten: Stellen Sie eine gute Beziehung zwischen den einzelnen Konten her
