Forensische_Analyse_2023/Notizen_Forensiche_Analyse_S3.md

352 lines
12 KiB
Markdown
Raw Normal View History

2023-11-11 12:16:26 +00:00
# Analyse-Methoden für forensische Daten
## Anmerkungen Tutorium
* WAL , wear leveling
2023-11-11 12:52:44 +00:00
* bei Flash Speicher werden iNodes durch-rotiert
2023-11-11 12:16:26 +00:00
* es kann also X-tausend SQlite DBs bei etwa 50 Apps
* Smartphones haben 30-40 Partitionen
* Autopsy für Smartphone ist erlaubt
2023-11-11 12:52:44 +00:00
* Sleuthkit für Win Image: da Nintendo nicht ok
2023-11-11 12:16:26 +00:00
## 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"
2023-11-11 12:52:44 +00:00
* HW Wallet (?)
2023-11-11 12:16:26 +00:00
* 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.
```
2023-11-11 12:52:44 +00:00
### 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.
2023-11-11 13:20:07 +00:00
# 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
2023-11-11 12:52:44 +00:00
```
2023-11-11 13:43:44 +00:00
## Bitlocker Entschlüsselung
2023-11-11 12:52:44 +00:00
2023-11-11 14:24:22 +00:00
#### Funktionsweise von TPM Sniffing
2023-11-11 13:43:44 +00:00
* 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
2023-11-11 14:24:22 +00:00
* Ent VMK1 - muss entsiegelt werden (Binär-Datei, unter 100k), wird FVEK
#### APL Vorgehensweise
2023-11-11 13:43:44 +00:00
2023-11-11 14:01:09 +00:00
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.
2023-11-11 13:43:44 +00:00
2023-11-11 14:24:22 +00:00
*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
2023-11-11 14:01:09 +00:00
2023-11-11 14:24:22 +00:00
```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
2023-11-11 14:01:09 +00:00
```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.
2023-11-11 12:52:44 +00:00
2023-11-11 14:24:22 +00:00
```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.
2023-11-11 14:28:29 +00:00
#### Zugang ohne PW
2023-11-11 14:24:22 +00:00
2023-11-11 15:30:49 +00:00
* system32: utilmgr.exe <- cmd.exe - Ersetzen. Vorher ein Backup machen.
## APL Infos
2 Crypto Spuren `scraper` testen...
1. `mmls bitlocker_image.E01`, Partition mit den meisten Sektoren ist wichtig
2. `xmount --in ewf botlocker_image.E01 --cache /tmp/bl.ovl --out raw /ewf` -> Bitlocker Image 128 GB oder so
2023-11-11 15:45:02 +00:00
3. Physisch & Logisch, also gleich Loop Devices machen mit `losetup --partscan --part --show /ewf/bitlocker_image.dd`
2023-11-11 15:30:49 +00:00
4. `ll /dev/loop7*`, in den 3er rein
5. `fsstat /dev/lopp7p3` -> "Encryption detected". Also
6. `head /tmp/digital.csv` - SCLOCK, MOSI, MISO etc. also SPF
1. `ARNE -i /tmp/digital.csv -k "1=SCLK,2=CS,3=MOSI,4=MISO" -o hh.vmk`
2. Start SPI Decoder -> Läuft :)
3. TPM Frames bei umdie 80%
4. LPC in der APL wird dauern
7. `hh.vmk` sollte in `/tmp` liegen, wenn erfolgreich extrahiert
8. `dislocker` wird gebraucht
1. Copy & paste auf der Platform `mkdir /tmp/bitlocker` (Physisch), das andere logisch.
2. diese `$()` Shell Mathe wird gebraucht, wenn loop Devices manuell erzeugt werden.
3. `dislocker -K /tmp/hh.vmk -V /dev/loop7p3 /tmp/bitlocker` - 127 GB oder so.
9. `fsstat /tmp/bitlocker/dislocker-file | less` - XP heißt nicht Windows XP, sondern NTFS Version
10. `fls /tmp/botlocker/dislocker-file`
11. `utilmgr.exe` mit Sleuth backuppen, kopiere dann `cmd.exe` drüber.
12. loopdevice auf dislocker file
13. dmsetup.txt erzeugen gemäß Tabelle
14. Neues loop Devices gem. NTFS Partition, und dann noch was hinten dran kommt. cat Befehl aus dem 4n6
1. Basic Data Partition nicht mehr Bitlocker, sondern NTFS
15. `xmount --in raw /dev/mapper/merged --cache /tmp/blohne.ovl --out vdi /ewf2` (virtuelles Device, kann also durch Reboot verschwinden). EWF wird 12 GB oder so. RAW 128 GB.
1. `ewf2` muss vorher angelegt werden
16. ...
17. VDI für VBox für die 100% Lösung, also Gast OS bauen
2023-11-11 15:45:02 +00:00
## APL Q&A
* `web_yellow`: .onion URLs könnten drin sein. Hidden Services werden nicht per Default installiert.
2023-11-11 15:51:31 +00:00
* Raspberry Pi
2023-11-11 15:45:02 +00:00
* Apache2 oder so `/var/www/html`
* Statische Seite zeigen
* Ist der Web Auftritt im Darknet on? -> TOR Browser installieren, aufmachen, Screenshot
* `/etc/torrc` macht Hidden Services verfügbar
* `/var/lib/tor/hidden_service`
* `cat hostname` - .onion URL
* `python3 -m http.server 80` aufmachen aus `/tmp/index.html` um den internen HTTPd an den Hidden Service zu knüpfen
2023-11-11 15:51:31 +00:00
* Session0.sal
* md5 Hashes sollen identisch sein, `-c` ist zu nehmen um es zu zeigen. Für alle Files
* Frage 4: HW Wallet, könnte. .onion URL. Keine Fall-Interpretation oder Investigativ-Beschreibung.
2023-11-11 14:24:22 +00:00
# foo
2023-11-11 12:16:26 +00:00
2023-11-11 14:28:29 +00:00
Angaben können inkorrekt sein.