# Analyse-Methoden für forensische Daten ## Anmerkungen Tutorium * WAL , wear leveling * bei Flash Speicher werden iNodes durch-rotiert * es kann also X-tausend SQlite DBs bei etwa 50 Apps * Smartphones haben 30-40 Partitionen * Autopsy für Smartphone ist erlaubt * Sleuthkit für Win Image: da Nintendo nicht ok ## Fokus * Win * Android ## APL Ausgabe 2.12 ### Win 11 * Sleuth `mmls` * verschlüsselt ### Logfile * Logic Analyzer 20 GB * `sync` nach Kopieren ### Linux prep Die Forensik VM braucht Ressourcen. Es dauert sonst zu lange. * `losetup -a` : keine SquashFS loop Devices = einfacher * bauen von Loop Devices (manuell ?) * `--partscan` / `--find` / `--show` * `log2timeline` * optional, für die Generierung für Super-Timeline * `sleuthkit` ist sehr versions-abhängig * 4.12 hat LVM Unterstützung (unwichtig für APL) * Auswertungen beginnen mit der Listung der Versions-Nummern der eingesetzten Forensik-Programme, sonst sind 2 Punkte weg. * nicht alles wie `grep` etc., sondern `sleuthkit` usw. * ZFS - Filesystem der 3. Generation. FAT16 z. B. ist schwer zu reparieren, da es kein Journal hat. 2. Generation: ext3 / ext4, HFS(+), NTFS - haben ein Journal. 3. Generation: ZFS * `binwalk` und `yafs` werden ehr nicht benötigt werden * `bulkextractor` sucht Crypto-Currency Kram und `.onion` Darknet URLs * nur die alte Version mit Python 2 funktioniert für uns. Version 2 nicht nutzen, nur 1.6 * `scraper` Modul kann *nur* Crypto-Spuren suchen (es reicht für uns, und braucht kein Python 2) ## APL Theorie * **Prefetch** * `sccainfo` für das Lesen von *.pf Files * gehören zu den "Windows-spezifischen Artefakten" * HW Wallet (?) * Indizien für Crypto Kram (USB -> ?) * **Volume Shadow Copies** * unallocated & allocated - in der VSS Kopie sind auch gelöschte Dateien. * wenn es sie nicht gibt, dokumentieren -> Screenshot * Anzahl der Files vom Windows = Anzahl der VSS Dateien * plaso erzeugt eine SQlite wo alles drin steht, deshalb dauert es so lange. `log2timeline` erkennt VSS Kopieen automatisch und fragt. Die letzte könnte ausreichen: also "die neueste...". * `vshadowinfo` : Sucher * `vmdk` : Mounter * **Registry** * `sleuth` `fsstat` - zeigt Win XP, kann aber 11 sein. XP ist die Versions-Nummer von NTFS (!) * OS Infos werden ermittelt: aus der Registry * Angedockte USB Devices erscheinen in der Registry * USB Kennung emulierbar . Zeitstempel & Mount Point können evtl. abweichen. Kann man aufzeigen, aber ist semi-relevant ("sieht manipuliert aus"). * RegRipper (`rip.pl` oder so) * Log2Timeline * Geht alle logisch vorhandene Dateien durch, und macht einen Zeitstrahl * Empfehlung: ohne VSS Kopieen * Timeline: fix, nur Meta-Infos aus Datei * Super-Timeline: lange, weil auch inhaltlich * USB Sick Mount Event hat Zeitstempel * **Outlook** * APL irrelevant * **$MFT** * DB-artige Struktur, 4 Zeitstempel (Meta-Infos) * Anti-Forensik Tools können idR die Zeitstempel in der MFT nicht manipulieren ## Zeitstempel Anpassung der Zeitstempel unter Linux. Mindestens 3 Stempel, oft 4. ### MAC 1. m - modified (Inhaltlich) 2. a - accessed 3. c - Win: creation, Lin: changed (Änderung der Meta-Daten) ### MAC B ("Birth") 4. b - ## Tutorials ## Beispiele DELL & VSS ### Demo Trace * APL: Screenshots nicht als alleiniges Merkmahl. Ein Satz muss dazu. * Ein paar Screenshots sind sinnvoll, da es eine Echtheitsprüfung nach der APL geben kann. Nicht alles muss als Screenshot dargestellt werden. * Es ist zu empfehlen zu zeigen, dass die Verzeichnisse vorher leer sind ```bash ###### win xp mmls dell3.E0* # klassifizierung fls -pro 63 dell3.E0* | grep -i prefetch # prefetch dateien ansehen # bei FF runcount und last used icat -o 63 dell3.E0* 13973 > /tmp/ff.pf # im Prefetch nachsehen ob z. B ein HW Wallet da ist ###### win 7 mmls vss.E0* # 206848 / 2 # Gibt es VSS Kopieen? -> Doku # APL bedarf logisch (mount listing) & physisch (auch gelöschte) xmount --int ewf dell3.E0* --cache /tmp/dell.ovl --out vdi # VDI in Virtualiserer rein, vorhandene HD # opengates um offline zu bleiben, kann auch SATA Treiber reinmachen # HW Raids haben den MBR hinten. Stattdessen ein Image # xmount kann das verschieben # RAID Controller kann man evtl. nicht direkt an VBox durchreichen # in der APL soll das Win 11 Virtualisiert werden # qemu / Vbox # BIOS mit TPM wird gebraucht # Hier wird virtualisiert nach dem Entschlüsseln # Bitlocker Partition kann ersetzt werden # nested virtualisierung muss man aktivieren # OVL wird grundsätzlich gemacht xmount --in ewf css.E0* --cache /tmp/vss.ovl --out raw /ewf mmls /ewf/css.dd # VSS werden in der C:, also in der 2. Partition sein # ins RAW Image gehen: xmount in raw muss vorher durch sein losetup --partscan --find --show /ewf/vss.dd # /dev/loop7 oder so kommt raus, je nachdem ll /dev/loop7* # kommt dann loop7(,p1, p2) - wir brauchen p2 vshadowinfo /dev/loop7p2 # VSS Kopieen bereitstellen mkdir /vss vshadowmount /dev/lopp7p2 /vss ll /vss # c-time von den erzeugten Stores, innen sind die VSS Kopieen integer # aus der VSS Kopie alle gelöschten Dateien raus: tsk_recover /vss/vss5 /tmp/recovered # in der APL die neuste mount -o ro /vss/vss5 /mnt/ # kann sein, dass gelöschte Dateien hier sind. ``` ### Registry * Authenzifizierungsverfahren für lokale Accounts in Evolution * Rainbow Tables für biszu 7 Zeichen einfach erzeugbar, da unsalted bis Win 7 * ```SAM``` file, heute verschlüsselt mit `SYSTEM` Key * Am Anfang der Analyse extrahieren: * ```SAM``` * ```SYSTEM``` * ```SOFTWARE```- **USB device history** (relevant für APL) * Service Pack, User, System Information ```bash mmls dell3.E0* # 63 offset kommt hierher # RegEx: $: endet mit SAM fls -pro 63 /dev/loop7p2 | grep SAM$ # .. nicht APL relevant # Bei toten Loop Devices in der APL können wir uns Anmerkungen schenken, wenn aus loop7 loop7+1 ... wird # WINDOWS /systemn32/config/SAM - Hive # ntuser.dat - profilbezogener Hive (letzte Dateien geöffnet, Drucker benutzt usw.) - wird nicht benötigt (?) # Extraktion des Files icat -o 63 dell3.E0* 3667 > /tmp/SAM # Cross-check doku,entieren: file /tmp/SAM # da sollte so was wie MS Windows registry file stehen # nicht ausschweifend beschreiben. Nutzung zeigen, nicht wissenschaftlich erklären # SYSTEM Hive alles klein, SAM alles groß # -i - case ignorieren fls -pro 63 dell3.E0* | grep system$ # es ist die Datei in system32/config/system fls -pro 63 dell3.E0* 334 > /tmp/system file /tmp/system # Es gibt mehrere ntuser.dat, z. B. bei User Default # Dieser ist ein Template User. # Lokale Win Accounts sind heute selten ophcrack & # SAM und SYSTEM per -> Load # Crack per Rainbow table # in der APL soll System virtualisiert werden. Als Nachweis: eigenes Desktop Bild, Datei abgelegt oder so was (Originalität). # Es liegt _k_ein Lokal-Konto vor # * utilmgr.exe durch cmd.exe austauschen, cmd auf beim Login Dialog nach dem Boot # Regripper plugin listing regripper -l | grep -i ver # zur Bestimmung winver aus dem [Software] Hive # ServicePack, BuildRelease, RegisteredOwner # externe USB Platten sind keine USB Devices bei MS regripper -p winver -r # ? /tmp/system # # es gibt verschiedene USB Plugins # Verwendung von EventLogs ist ebenfalls ok # in der Registry stehen auch MAC Adressen <-> Access Point Verbindungen, was relevant sein kann ``` ## Bitlocker Entschlüsselung #### Funktionsweise von TPM Sniffing * per Bus TPM Sniffing mittels Logic Analyzer mit genug MSPS * TPM nutzt LPC (7 Signale), SPI (4 Signale) oder I2C * Nyquist Shannon: Logic Analyser muss doppelt - 3x so hoch sein * PCI Bus 33 MhZ. Also 66 MhZ. 4 - 7 Signale. * Ein 500 MSPS LogicAnalyzer reicht für LPC * FVEK - zum Ver- und Entschlüsseln * Ent VMK1 - muss entsiegelt werden (Binär-Datei, unter 100k), wird FVEK #### APL Vorgehensweise In der APL wird ein LPC Bus benutzt (also 7 Kanal-System). Die exportierten Werte müssen an "ARNE" übergeben werden. Im Header der Sample-Datei stehen die Spezifikationen. *Saleae Logic 2* herunterladen. -> File -> Open Capture (paar hundert MB *.sal File) -> Export Data -> dauert lange, und wird 20 GB großes CSV. Tipp: Nach dem DL der Captures sollte der Hash-Wert geprüft werden, sonst droht Zeitverschwendung. #### Für den Boot-Vorgang Hier werden die Daten noch nicht entschlüsselt ```bash ARNE -i bitlocker_logic_export.csv\ # nicht das .sal File -k "1=LCKL,2=LAD0,3=LAD1,4=LAD2,5=LAD3,6=LFRAME,7=LRESET"\ -o wings_apl.vmk ``` #### Entschlüsselung ```dislocker``` : wird gebraucht, nach ARNE. Kann Bitlocker Partitionen unter macOS und Linux einbinden. Hier wird der VMK gebraucht (Version >= 0.7.2). Partions-Layout: * sdc1 vfat - EFI Kram * hidden NTFS am Ende ARNE sucht nach einer Signatur, und holt einen 32 Byte für den VMK (?); sollte da drin sein wenn man nach dem Sub-String sucht. ```bash mkdir /tmp/dislocker sudo dislocker -h # siehe Platform 4n6 # Eine entschlüsselte physische Partition entsteht wenn dislocker funktioniert # Hex-Editor: xxd dislocker-file | less ``` * 0..9615 - Block 1 * 9616 - Block 2 : Bitlocker * Block 3: NTFS Block 2 wird ersetzt. `dmsetup` hilft. # foo