Dieser Artikel enthält Lösungen für Aufgaben, die auf die Forensik von Speicher-, RAM- und Webserverprotokollen abzielen. Sowie Beispiele für die Verwendung der Programme Volatility Framework und Autopsy.
OrganisationsinformationenSpeziell für diejenigen, die etwas Neues lernen und sich in einem der Bereiche Informations- und Computersicherheit entwickeln möchten, werde ich über die folgenden Kategorien schreiben und sprechen:
- PWN;
- Kryptographie (Krypto);
- Netzwerktechnologien (Netzwerk);
- Reverse (Reverse Engineering);
- Steganographie (Stegano);
- Suche und Ausnutzung von WEB-Schwachstellen.
Darüber hinaus werde ich meine Erfahrungen in den Bereichen Computerforensik, Analyse von Malware und Firmware, Angriffe auf drahtlose Netzwerke und lokale Netzwerke, Durchführung von Pentests und Schreiben von Exploits teilen.
Damit Sie sich über neue Artikel, Software und andere Informationen informieren können, habe ich
in Telegram einen
Kanal und eine
Gruppe eingerichtet, um alle Probleme im Bereich ICD
zu diskutieren . Außerdem werde ich Ihre persönlichen Anfragen, Fragen, Vorschläge und Empfehlungen
persönlich prüfen
und alle beantworten .
Alle Informationen werden nur zu Bildungszwecken bereitgestellt. Der Autor dieses Dokuments übernimmt keine Verantwortung für Schäden, die jemandem durch die Verwendung von Kenntnissen und Methoden entstehen, die durch das Studium dieses Dokuments erworben wurden.
Speicherforensik - Stufe 2

In dieser Aufgabe erhalten wir ein Bild des Arbeitsspeichers und werden gebeten, den Namen der Maschine zu ermitteln. Um diese Art von Aufgaben zu lösen, verwenden wir das Volatility Framework. Wir laden das Bild mit dem folgenden Befehl und geben den Pfad zum Bild als Parameter an. Zuerst erfahren wir Informationen über das Bild.
volatility -f ch2.dmp imageinfo

So erfahren wir, dass dies ein Speicherabbild des Windows-Betriebssystems ist. Das heißt, wir können den Namen des Computers aus der Registrierung herausfinden. Jetzt müssen wir das Profil als Parameter angeben. Der Schlüsselwert in der Registrierung kann folgendermaßen angezeigt werden.
volatility -f ch2.dmp --profile=Win7SP1x86_23418 printkey -K "ControlSet001\Control\ComputerName"

Und jetzt finden wir den Namen des Computers heraus.
volatility -f ch2.dmp --profile=Win7SP1x86_23418 printkey -K "ControlSet001\Control\ComputerName\ActiveComputerName"

Wir sehen den Namen des Computers. Übergeben, Punkte holen.

Protokolliert Forensik - Webangriff

In dieser Aufgabe geben sie uns ein Webserver-Protokoll und sagen, dass ein Angriff darauf ausgeführt wurde. Wir müssen verstehen, welche Daten der Angreifer gelernt hat. Lassen Sie uns das Protokoll öffnen.

Wir sehen, dass base64-codierte Daten als Auftragsparameter vorliegen. Wir werden einen Code schreiben, um sie zu dekodieren.
from re import * from base64 import * f = open('ch13.txt') log = f.read() f.close() k = findall("action=membres&order=(.*?) HTTP", log) [print(str(b64decode(i.replace("%3D", "=")), "utf-8")) for i in k]

Konvertieren Sie ein wenig in verständlich.

Daher vergleichen wir die ersten beiden Bits des ersten Buchstabens des Passworts mit 00, 01, 10, 11 und machen eine entsprechende Pause - 0, 2, 4 und 6 Sekunden. Passiert auch mit den zweiten und dritten beiden Bits. Danach wird das siebte Bit geprüft und je nach Gleichheit von 0 oder 1 eine Pause von 2 und 4 Sekunden eingelegt.
Anhand der Verzögerung können wir also bestimmen, welche Bits der Server zurückgibt.

Beispiel: Der Zeitunterschied zwischen den ersten Anforderungen beträgt 6 Sekunden, dh dies sind die Bits 11 usw. Automatisieren Sie diesen Prozess.
from re import * from base64 import * import binascii f = open('ch13.txt') log = f.read() f.close() k = findall("action=membres&order=(.*?) HTTP", log) dec_k = [str(b64decode(i.replace("%3D", "=")), "utf-8") for i in k] t = findall("2015:12:1(.*?) \+0200]", log) tim = [int(i.split(':')[0])*60 + int(i.split(':')[1]) for i in t] tim = [tim[i+1] - tim[i] for i in range(len(tim)-1)] + [0] password = "" for i in range(0, len(tim), 4): c = '' for sec in tim[i:i+3]: if sec == 0: c += '00' elif sec == 2: c += '01' elif sec == 4: c += '10' elif sec == 6: c += '11' if tim[i+3] == 2: c += '0' elif tim[i+3] == 4: c += '1' password += chr(int(c,2)) print(password)
Wir geben das Passwort.

Gedächtnisforensik - Stufe 5

Wir werden gebeten, das Passwort für John zu finden und einen RAM-Speicherauszug bereitzustellen. Wie beim letzten Mal finden wir heraus, welches Betriebssystem verwendet wird.

Das ist Windows. Volatilität hat eine Hashdump-Option.

Jetzt finden wir das Benutzerpasswort.

Wir senden das Passwort und bekommen Punkte.

Disk Forensics - finde die Katze

Wir erhalten ein Disk-Image und werden gebeten, den Ort zu finden, an dem sich die Katze befindet. Für solche Aufgaben können Sie FTK Imager verwenden. Ich werde es mit
AutoPsy lösen. Führen Sie das Programm aus.

Wir werden aufgefordert, die Seite in einem Browser zu öffnen. Wir öffnen. Erstellen Sie nun einen neuen Fall und fügen Sie einen Host hinzu. Als nächstes müssen Sie ein Bild hinzufügen.
Nach dem Erstellen der Umgebung haben wir Folgendes.

""
Wählen Sie die Analyseoption.

Wir zeigen die folgende Abschnittsstruktur. Der Ordner "Dokumentationen" enthält nichts Interessantes. Gehen wir zu Dateien.

Es gibt eine interessante Odt-Datei. Wir wählen es aus.

Der Inhalt wird unten angezeigt - es gibt eine Art Bild. Wählen Sie Extrahieren, um die Datei zu extrahieren. Aus der heruntergeladenen Datei extrahieren wir das Bild.

Höchstwahrscheinlich ist dies die Katze, die wir finden müssen. Sehen wir uns die Exif-Informationen an.

Großartig, es gibt Standortkoordinaten. Wir finden es in den Karten.

Wir senden die Antwort und erhalten Punkte.

Immer komplizierter ... Sie können sich uns
per Telegramm anschließen . Dort können Sie Ihre eigenen Themen vorschlagen und über die Themenauswahl für die folgenden Artikel abstimmen.