mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/generic-methodologies-and-resources/basic-forensic-meth
This commit is contained in:
parent
83e880a3b3
commit
1cf89f61e0
@ -41,6 +41,7 @@
|
||||
- [Anti-Forensic Techniques](generic-methodologies-and-resources/basic-forensic-methodology/anti-forensic-techniques.md)
|
||||
- [Docker Forensics](generic-methodologies-and-resources/basic-forensic-methodology/docker-forensics.md)
|
||||
- [Image Acquisition & Mount](generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md)
|
||||
- [Ios Backup Forensics](generic-methodologies-and-resources/basic-forensic-methodology/ios-backup-forensics.md)
|
||||
- [Linux Forensics](generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md)
|
||||
- [Malware Analysis](generic-methodologies-and-resources/basic-forensic-methodology/malware-analysis.md)
|
||||
- [Memory dump analysis](generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/README.md)
|
||||
@ -61,6 +62,7 @@
|
||||
- [Office file analysis](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md)
|
||||
- [PDF File analysis](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md)
|
||||
- [PNG tricks](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/png-tricks.md)
|
||||
- [Structural File Format Exploit Detection](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/structural-file-format-exploit-detection.md)
|
||||
- [Video and Audio file analysis](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/video-and-audio-file-analysis.md)
|
||||
- [ZIPs tricks](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/zips-tricks.md)
|
||||
- [Windows Artifacts](generic-methodologies-and-resources/basic-forensic-methodology/windows-forensics/README.md)
|
||||
|
@ -1,79 +1,173 @@
|
||||
# Grundlegende forensische Methodik
|
||||
# Grundlegende Forensik-Methodik
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## Erstellen und Einbinden eines Images
|
||||
|
||||
|
||||
{{#ref}}
|
||||
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
|
||||
{{#endref}}
|
||||
|
||||
## Malware-Analyse
|
||||
|
||||
Dies **ist nicht unbedingt der erste Schritt, den Sie ausführen sollten, sobald Sie das Image haben**. Aber Sie können diese Malware-Analyse-Techniken unabhängig verwenden, wenn Sie eine Datei, ein Dateisystem-Image, ein Speicher-Image, pcap... haben, also ist es gut, **diese Aktionen im Hinterkopf zu behalten**:
|
||||
Dies **muss nicht unbedingt der erste Schritt sein, nachdem du das Image erhalten hast**. Aber du kannst diese Malware-Analyse-Techniken unabhängig verwenden, wenn du eine Datei, ein Dateisystem-Image, Memory-Image, pcap ... hast, daher ist es gut, diese Aktionen **im Hinterkopf zu behalten**:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
malware-analysis.md
|
||||
{{#endref}}
|
||||
|
||||
## Überprüfung eines Images
|
||||
## Untersuchung eines Images
|
||||
|
||||
Wenn dir ein **forensisches Image** eines Geräts gegeben wird, kannst du mit dem **Analysieren der Partitionen und des Dateisystems** beginnen und potenziell **interessante Dateien** (auch gelöschte) **wiederherstellen**. Erfahre wie in:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
partitions-file-systems-carving/
|
||||
{{#endref}}# Grundlegende Forensik-Methodik
|
||||
|
||||
|
||||
|
||||
## Erstellen und Einbinden eines Images
|
||||
|
||||
|
||||
{{#ref}}
|
||||
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
|
||||
{{#endref}}
|
||||
|
||||
## Malware-Analyse
|
||||
|
||||
Dies **muss nicht unbedingt der erste Schritt sein, nachdem du das Image erhalten hast**. Aber du kannst diese Malware-Analyse-Techniken unabhängig verwenden, wenn du eine Datei, ein Dateisystem-Image, Memory-Image, pcap ... hast, daher ist es gut, diese Aktionen **im Hinterkopf zu behalten**:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
malware-analysis.md
|
||||
{{#endref}}
|
||||
|
||||
## Untersuchung eines Images
|
||||
|
||||
Wenn dir ein **forensisches Image** eines Geräts gegeben wird, kannst du mit dem **Analysieren der Partitionen und des Dateisystems** beginnen und potenziell **interessante Dateien** (auch gelöschte) **wiederherstellen**. Erfahre wie in:
|
||||
|
||||
Wenn Ihnen ein **forensisches Image** eines Geräts gegeben wird, können Sie beginnen, **die Partitionen, das verwendete Dateisystem** zu **analysieren** und potenziell **interessante Dateien** (sogar gelöschte) **wiederherzustellen**. Erfahren Sie, wie in:
|
||||
|
||||
{{#ref}}
|
||||
partitions-file-systems-carving/
|
||||
{{#endref}}
|
||||
|
||||
Je nach den verwendeten Betriebssystemen und sogar Plattformen sollten verschiedene interessante Artefakte gesucht werden:
|
||||
Je nach verwendetem Betriebssystem und sogar Plattform sollten unterschiedliche interessante Artefakte gesucht werden:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
windows-forensics/
|
||||
{{#endref}}
|
||||
|
||||
|
||||
{{#ref}}
|
||||
linux-forensics.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
{{#ref}}
|
||||
docker-forensics.md
|
||||
{{#endref}}
|
||||
|
||||
## Tiefeninspektion spezifischer Dateitypen und Software
|
||||
|
||||
Wenn Sie eine sehr **verdächtige** **Datei** haben, dann können **je nach Dateityp und Software**, die sie erstellt hat, mehrere **Tricks** nützlich sein.\
|
||||
Lesen Sie die folgende Seite, um einige interessante Tricks zu lernen:
|
||||
{{#ref}}
|
||||
ios-backup-forensics.md
|
||||
{{#endref}}
|
||||
|
||||
## Tiefergehende Untersuchung bestimmter Dateitypen und Software
|
||||
|
||||
Wenn du eine sehr **verdächtige** **Datei** hast, können je nach **Dateityp und der Software**, die sie erstellt hat, verschiedene **Tricks** nützlich sein.\
|
||||
Lies die folgende Seite, um einige interessante Tricks zu lernen:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/
|
||||
{{#endref}}
|
||||
|
||||
Ich möchte die Seite besonders erwähnen:
|
||||
Ich möchte die folgende Seite besonders hervorheben:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/browser-artifacts.md
|
||||
{{#endref}}
|
||||
|
||||
## Überprüfung von Speicher-Dumps
|
||||
## Memory-Dump-Analyse
|
||||
|
||||
|
||||
{{#ref}}
|
||||
memory-dump-analysis/
|
||||
{{#endref}}
|
||||
|
||||
## Pcap-Überprüfung
|
||||
## Pcap-Analyse
|
||||
|
||||
|
||||
{{#ref}}
|
||||
pcap-inspection/
|
||||
{{#endref}}
|
||||
|
||||
## **Anti-Forensische Techniken**
|
||||
## **Anti-forensische Techniken**
|
||||
|
||||
Beachte die mögliche Verwendung von anti-forensischen Techniken:
|
||||
|
||||
Behalten Sie die mögliche Verwendung von anti-forensischen Techniken im Hinterkopf:
|
||||
|
||||
{{#ref}}
|
||||
anti-forensic-techniques.md
|
||||
{{#endref}}
|
||||
|
||||
## Bedrohungsjagd
|
||||
## Threat Hunting
|
||||
|
||||
|
||||
{{#ref}}
|
||||
file-integrity-monitoring.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
|
||||
|
||||
## Tiefergehende Untersuchung bestimmter Dateitypen und Software
|
||||
|
||||
Wenn du eine sehr **verdächtige** **Datei** hast, können je nach **Dateityp und der Software**, die sie erstellt hat, verschiedene **Tricks** nützlich sein.\
|
||||
Lies die folgende Seite, um einige interessante Tricks zu lernen:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/
|
||||
{{#endref}}
|
||||
|
||||
Ich möchte die folgende Seite besonders hervorheben:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/browser-artifacts.md
|
||||
{{#endref}}
|
||||
|
||||
## Memory-Dump-Analyse
|
||||
|
||||
|
||||
{{#ref}}
|
||||
memory-dump-analysis/
|
||||
{{#endref}}
|
||||
|
||||
## Pcap-Analyse
|
||||
|
||||
|
||||
{{#ref}}
|
||||
pcap-inspection/
|
||||
{{#endref}}
|
||||
|
||||
## **Anti-forensische Techniken**
|
||||
|
||||
Beachte die mögliche Verwendung von anti-forensischen Techniken:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
anti-forensic-techniques.md
|
||||
{{#endref}}
|
||||
|
||||
## Threat Hunting
|
||||
|
||||
|
||||
{{#ref}}
|
||||
file-integrity-monitoring.md
|
||||
|
@ -0,0 +1,124 @@
|
||||
# iOS-Backup-Forensik (Messaging‑zentrierte Triage)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Diese Seite beschreibt praktische Schritte, um iOS-Backups zu rekonstruieren und zu analysieren, um Hinweise auf 0‑Click-Exploit‑Lieferungen über Messaging‑App‑Anhänge zu finden. Der Fokus liegt darauf, Apples gehashte Backup-Struktur in menschenlesbare Pfade zu überführen und anschließend Anhänge in gängigen Apps zu enumerieren und zu scannen.
|
||||
|
||||
Ziele:
|
||||
- Lesbare Pfade aus Manifest.db rekonstruieren
|
||||
- Messaging‑Datenbanken aufzählen (iMessage, WhatsApp, Signal, Telegram, Viber)
|
||||
- Anhangspfade auflösen, eingebettete Objekte extrahieren (PDF/Bilder/Schriftarten) und sie an strukturelle Detektoren weiterleiten
|
||||
|
||||
|
||||
## Rekonstruktion eines iOS-Backups
|
||||
|
||||
Backups, die unter MobileSync gespeichert sind, verwenden gehashte Dateinamen, die nicht menschenlesbar sind. Die Manifest.db SQLite‑Datenbank ordnet jedes gespeicherte Objekt seinem logischen Pfad zu.
|
||||
|
||||
Vorgehensweise im Überblick:
|
||||
1) Öffne Manifest.db und lese die Dateieinträge (domain, relativePath, flags, fileID/hash)
|
||||
2) Erstelle die ursprüngliche Ordnerhierarchie basierend auf domain + relativePath wieder
|
||||
3) Kopiere oder erstelle Hardlinks für jedes gespeicherte Objekt an seinem rekonstruierten Pfad
|
||||
|
||||
Beispiel-Workflow mit einem Tool, das dies End-to-End umsetzt (ElegantBouncer):
|
||||
```bash
|
||||
# Rebuild the backup into a readable folder tree
|
||||
$ elegant-bouncer --ios-extract /path/to/backup --output /tmp/reconstructed
|
||||
[+] Reading Manifest.db ...
|
||||
✓ iOS backup extraction completed successfully!
|
||||
```
|
||||
Notizen:
|
||||
- Verschlüsselte Backups behandeln, indem Sie das Backup-Passwort an Ihr Extractor übergeben
|
||||
- Bewahren Sie nach Möglichkeit ursprüngliche Zeitstempel/ACLs zur Beweissicherung
|
||||
|
||||
|
||||
## Aufzählung von Anhängen in Messaging-Apps
|
||||
|
||||
Nach der Rekonstruktion sollten Sie Anhänge beliebter Apps auflisten. Das genaue Schema variiert je nach App/Version, aber der Ansatz ist ähnlich: die Messaging-Datenbank abfragen, Nachrichten mit Anhängen verknüpfen und Pfade auf der Festplatte ermitteln.
|
||||
|
||||
### iMessage (sms.db)
|
||||
Wichtige Tabellen: message, attachment, message_attachment_join (MAJ), chat, chat_message_join (CMJ)
|
||||
|
||||
Beispielabfragen:
|
||||
```sql
|
||||
-- List attachments with basic message linkage
|
||||
SELECT
|
||||
m.ROWID AS message_rowid,
|
||||
a.ROWID AS attachment_rowid,
|
||||
a.filename AS attachment_path,
|
||||
m.handle_id,
|
||||
m.date,
|
||||
m.is_from_me
|
||||
FROM message m
|
||||
JOIN message_attachment_join maj ON maj.message_id = m.ROWID
|
||||
JOIN attachment a ON a.ROWID = maj.attachment_id
|
||||
ORDER BY m.date DESC;
|
||||
|
||||
-- Include chat names via chat_message_join
|
||||
SELECT
|
||||
c.display_name,
|
||||
a.filename AS attachment_path,
|
||||
m.date
|
||||
FROM chat c
|
||||
JOIN chat_message_join cmj ON cmj.chat_id = c.ROWID
|
||||
JOIN message m ON m.ROWID = cmj.message_id
|
||||
JOIN message_attachment_join maj ON maj.message_id = m.ROWID
|
||||
JOIN attachment a ON a.ROWID = maj.attachment_id
|
||||
ORDER BY m.date DESC;
|
||||
```
|
||||
Pfade zu Anhängen können absolut sein oder relativ zum rekonstruierten Verzeichnisbaum unter Library/SMS/Attachments/.
|
||||
|
||||
### WhatsApp (ChatStorage.sqlite)
|
||||
Häufige Verknüpfung: message table ↔ media/attachment table (Benennung variiert je nach Version). Abfragen der media‑Zeilen, um Pfade auf dem Datenträger zu erhalten.
|
||||
|
||||
Beispiel (generisch):
|
||||
```sql
|
||||
SELECT
|
||||
m.Z_PK AS message_pk,
|
||||
mi.ZMEDIALOCALPATH AS media_path,
|
||||
m.ZMESSAGEDATE AS message_date
|
||||
FROM ZWAMESSAGE m
|
||||
LEFT JOIN ZWAMEDIAITEM mi ON mi.ZMESSAGE = m.Z_PK
|
||||
WHERE mi.ZMEDIALOCALPATH IS NOT NULL
|
||||
ORDER BY m.ZMESSAGEDATE DESC;
|
||||
```
|
||||
Passen Sie Tabellen-/Spaltennamen an Ihre App-Version an (ZWAMESSAGE/ZWAMEDIAITEM sind in iOS-Builds häufig).
|
||||
|
||||
### Signal / Telegram / Viber
|
||||
- Signal: die message DB ist verschlüsselt; Anhänge, die auf der Festplatte zwischengespeichert sind (und Thumbnails), sind jedoch normalerweise durchsuchbar
|
||||
- Telegram: Cache‑Verzeichnisse (photo/video/document caches) untersuchen und, wenn möglich, den Chats zuordnen
|
||||
- Viber: Viber.sqlite enthält message/attachment-Tabellen mit Verweisen auf der Festplatte
|
||||
|
||||
Tipp: Selbst wenn Metadaten verschlüsselt sind, fördert das Scannen der media/cache-Verzeichnisse weiterhin bösartige Objekte zutage.
|
||||
|
||||
|
||||
## Scannen von Anhängen auf strukturelle Exploits
|
||||
|
||||
Sobald Sie Pfade zu Anhängen haben, geben Sie diese an strukturelle Detektoren, die Dateiformat‑Invarianten statt Signaturen validieren. Beispiel mit ElegantBouncer:
|
||||
```bash
|
||||
# Recursively scan only messaging attachments under the reconstructed tree
|
||||
$ elegant-bouncer --scan --messaging /tmp/reconstructed
|
||||
[+] Found N messaging app attachments to scan
|
||||
✗ THREAT in WhatsApp chat 'John Doe': suspicious_document.pdf → FORCEDENTRY (JBIG2)
|
||||
✗ THREAT in iMessage: photo.webp → BLASTPASS (VP8L)
|
||||
```
|
||||
Von strukturellen Regeln abgedeckte Erkennungen umfassen:
|
||||
- PDF/JBIG2 FORCEDENTRY (CVE‑2021‑30860): unmögliche JBIG2-Wörterbuchzustände
|
||||
- WebP/VP8L BLASTPASS (CVE‑2023‑4863): überdimensionierte Huffman-Tabellenaufbauten
|
||||
- TrueType TRIANGULATION (CVE‑2023‑41990): undokumentierte Bytecode-Opcodes
|
||||
- DNG/TIFF CVE‑2025‑43300: Unstimmigkeiten zwischen Metadaten und Stream-Komponenten
|
||||
|
||||
|
||||
## Validierung, Vorbehalte und false positives
|
||||
|
||||
- Zeitkonversionen: iMessage speichert Datumsangaben in Apple-Epochen/-Einheiten in einigen Versionen; bei der Berichterstattung entsprechend umrechnen
|
||||
- Schema-Drift: App SQLite-Schemata ändern sich im Laufe der Zeit; prüfen Sie die Tabellen-/Spaltennamen je nach Geräte-Build
|
||||
- Rekursive Extraktion: PDFs können JBIG2-Streams und Fonts einbetten; innere Objekte extrahieren und scannen
|
||||
- False positives: strukturelle Heuristiken sind konservativ, können aber seltene, fehlerhafte, aber harmlose Medien markieren
|
||||
|
||||
|
||||
## Referenzen
|
||||
|
||||
- [ELEGANTBOUNCER: Wenn Sie die Samples nicht bekommen können, aber die Bedrohung trotzdem nachweisen müssen](https://www.msuiche.com/posts/elegantbouncer-when-you-cant-get-the-samples-but-still-need-to-catch-the-threat/)
|
||||
- [ElegantBouncer-Projekt (GitHub)](https://github.com/msuiche/elegant-bouncer)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
@ -1,8 +1,8 @@
|
||||
# Spezifische Software-/Dateityp-Tricks
|
||||
# Spezielle Software-/Dateityp-Tricks
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Hier finden Sie interessante Tricks für spezifische Dateitypen und/oder Software:
|
||||
Hier findest du interessante Tricks für bestimmte Dateitypen und/oder Software:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
@ -35,6 +35,11 @@ pdf-file-analysis.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
{{#ref}}
|
||||
structural-file-format-exploit-detection.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
{{#ref}}
|
||||
png-tricks.md
|
||||
{{#endref}}
|
||||
|
@ -0,0 +1,173 @@
|
||||
# Erkennung von Exploits in strukturierten Dateiformaten (0‑Click Chains)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Diese Seite fasst praktische Techniken zusammen, um 0‑Click mobile Exploit‑Dateien zu erkennen, indem strukturelle Invarianten ihrer Formate validiert werden, anstatt sich auf Byte‑Signaturen zu verlassen. Der Ansatz generalisiert über Samples, polymorphe Varianten und zukünftige Exploits, die dieselbe Parser‑Logik missbrauchen.
|
||||
|
||||
Kernidee: kodieren struktureller Unmöglichkeiten und feldübergreifender Inkonsistenzen, die nur auftreten, wenn ein verwundbarer Decoder/Parser‑Zustand erreicht wird.
|
||||
|
||||
Siehe auch:
|
||||
|
||||
{{#ref}}
|
||||
pdf-file-analysis.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
## Warum Struktur, statt Signaturen
|
||||
|
||||
Wenn weaponisierte Samples nicht verfügbar sind und Payload‑Bytes mutieren, versagen traditionelle IOC/YARA‑Muster. Strukturelle Erkennung prüft das deklarierte Layout des Containers gegenüber dem, was für die Formatimplementierung mathematisch oder semantisch möglich ist.
|
||||
|
||||
Typische Prüfungen:
|
||||
- Validiere Tabellengrößen und Grenzen, abgeleitet aus der Spezifikation und sicheren Implementierungen
|
||||
- Markiere illegale/undokumentierte opcodes oder Zustandsübergänge in eingebettetem bytecode
|
||||
- Kreuzprüfe metadata gegen tatsächlich codierte Stream‑Komponenten
|
||||
- Erkenne widersprüchliche Felder, die auf Parserverwirrung oder Integer‑Overflow‑Setups hindeuten
|
||||
|
||||
Unten folgen konkrete, feldgetestete Muster für mehrere hochwirksame Chains.
|
||||
|
||||
---
|
||||
|
||||
## PDF/JBIG2 – FORCEDENTRY (CVE‑2021‑30860)
|
||||
|
||||
Target: In PDFs eingebettete JBIG2‑Symbolwörterbücher (oft beim mobilen MMS‑Parsing verwendet).
|
||||
|
||||
Strukturelle Signale:
|
||||
- Widersprüchlicher Wörterbuchzustand, der in harmlosen Inhalten nicht vorkommt, aber erforderlich ist, um den Overflow in der arithmetischen Dekodierung auszulösen.
|
||||
- Verdächtige Verwendung globaler Segmente kombiniert mit abnormalen Symbolzählungen während der Refinement‑Codierung.
|
||||
|
||||
Pseudo‑logic:
|
||||
```pseudo
|
||||
# Detecting impossible dictionary state used by FORCEDENTRY
|
||||
if input_symbols_count == 0 and (ex_syms > 0 and ex_syms < 4):
|
||||
mark_malicious("JBIG2 impossible symbol dictionary state")
|
||||
```
|
||||
Praktische Triage:
|
||||
- JBIG2-Ströme aus dem PDF identifizieren und extrahieren
|
||||
- pdfid/pdf-parser/peepdf verwenden, um Streams zu finden und zu dumpen
|
||||
- Arithmetische-Codierungs-Flags und Parameter des Symboldictionaries gegen die JBIG2 spec prüfen
|
||||
|
||||
Hinweise:
|
||||
- Funktioniert ohne eingebettete payload-Signaturen
|
||||
- Niedrige FP-Rate in der Praxis, da der markierte Zustand mathematisch inkonsistent ist
|
||||
|
||||
---
|
||||
|
||||
## WebP/VP8L – BLASTPASS (CVE‑2023‑4863)
|
||||
|
||||
Ziel: WebP lossless (VP8L) Huffman-Präfix-Code-Tabellen.
|
||||
|
||||
Strukturelle Signale:
|
||||
- Die Gesamtgröße der konstruierten Huffman-Tabellen überschreitet die sichere obere Grenze, die von den Referenz-/gepatchten Implementierungen erwartet wird, was die Überlauf-Voraussetzung impliziert.
|
||||
|
||||
Pseudo‑logic:
|
||||
```pseudo
|
||||
# Detect malformed Huffman table construction triggering overflow
|
||||
let total_size = sum(table_sizes)
|
||||
if total_size > 2954: # example bound: FIXED_TABLE_SIZE + MAX_TABLE_SIZE
|
||||
mark_malicious("VP8L oversized Huffman tables")
|
||||
```
|
||||
Praktische Triage:
|
||||
- Überprüfe WebP-Container-Chunks: VP8X + VP8L
|
||||
- Parst VP8L-Präfixcodes und berechnet tatsächlich alloziierte Tabellengrößen
|
||||
|
||||
Hinweise:
|
||||
- Robust gegenüber byte‑level-Polymorphismus der payload
|
||||
- Die Grenze wird aus upstream limits/patch analysis abgeleitet
|
||||
|
||||
---
|
||||
|
||||
## TrueType – TRIANGULATION (CVE‑2023‑41990)
|
||||
|
||||
Target: TrueType bytecode inside fpgm/prep/glyf programs.
|
||||
|
||||
Strukturelle Signale:
|
||||
- Vorhandensein von undokumentierten/verbotenen opcodes im Apple’s interpreter, die von der exploit chain verwendet werden.
|
||||
|
||||
Pseudo‑logic:
|
||||
```pseudo
|
||||
# Flag undocumented TrueType opcodes leveraged by TRIANGULATION
|
||||
switch opcode:
|
||||
case 0x8F, 0x90:
|
||||
mark_malicious("Undocumented TrueType bytecode")
|
||||
default:
|
||||
continue
|
||||
```
|
||||
Praktische Triage:
|
||||
- Font-Tabellen auslesen (z. B. mit fontTools/ttx) und fpgm/prep/glyf-Programme scannen
|
||||
- Es ist nicht erforderlich, den Interpreter vollständig zu emulieren; Prüfungen auf Vorhandensein liefern oft bereits Wert
|
||||
|
||||
Hinweise:
|
||||
- Kann selten False Positives erzeugen, wenn nichtstandardmäßige Fonts unbekannte Opcodes enthalten; mit sekundären Tools validieren
|
||||
|
||||
---
|
||||
|
||||
## DNG/TIFF – CVE‑2025‑43300
|
||||
|
||||
Ziel: DNG/TIFF-Bildmetadaten vs. tatsächliche Anzahl der Komponenten im kodierten Stream (z. B. JPEG‑Lossless SOF3).
|
||||
|
||||
Strukturelle Signale:
|
||||
- Inkonsistenz zwischen EXIF/IFD-Feldern (SamplesPerPixel, PhotometricInterpretation) und der Anzahl der Komponenten, die aus dem Image-Stream-Header geparst werden und von der Pipeline verwendet werden.
|
||||
|
||||
Pseudo‑Logic:
|
||||
```pseudo
|
||||
# Metadata claims 2 samples per pixel but stream header exposes only 1 component
|
||||
if samples_per_pixel == 2 and sof3_components == 1:
|
||||
mark_malicious("DNG/TIFF metadata vs. stream mismatch")
|
||||
```
|
||||
Praktische Triage:
|
||||
- Primäre IFD- und EXIF-Tags parsen
|
||||
- Eingebetteten JPEG-Lossless-Header (SOF3) finden und parsen; Komponentenanzahl vergleichen
|
||||
|
||||
Hinweise:
|
||||
- In der Praxis als ausgenutzt gemeldet; ausgezeichneter Kandidat für strukturelle Konsistenzprüfungen
|
||||
|
||||
---
|
||||
|
||||
## Implementierungsmuster und Leistung
|
||||
|
||||
Ein praktischer Scanner sollte:
|
||||
- Dateityp automatisch erkennen und nur relevante Analysatoren starten (PDF/JBIG2, WebP/VP8L, TTF, DNG/TIFF)
|
||||
- Streaming/Teilparsing verwenden, um Allokationen zu minimieren und frühes Abbrechen zu ermöglichen
|
||||
- Analysen parallel ausführen (Thread‑Pool) für Massen‑Triage
|
||||
|
||||
Beispielablauf mit ElegantBouncer (Open‑Source Rust-Implementierung dieser Prüfungen):
|
||||
```bash
|
||||
# Scan a path recursively with structural detectors
|
||||
$ elegant-bouncer --scan /path/to/directory
|
||||
|
||||
# Optional TUI for parallel scanning and real‑time alerts
|
||||
$ elegant-bouncer --tui --scan /path/to/samples
|
||||
```
|
||||
---
|
||||
|
||||
## DFIR-Tipps und Sonderfälle
|
||||
|
||||
- Eingebettete Objekte: PDFs können Bilder (JBIG2) und Fonts (TrueType) einbetten; extrahieren und rekursiv scannen
|
||||
- Decompression safety: verwende Bibliotheken, die Tabellen/Puffer vor der Allokation strikt begrenzen
|
||||
- Fehlalarme: halte Regeln konservativ, bevorzuge Widersprüche, die gemäß Spezifikation unmöglich sind
|
||||
- Versionsdrift: Grenzen neu bestimmen (z. B. VP8L-Tabellengrößen), wenn Upstream-Parser ihre Limits ändern
|
||||
|
||||
---
|
||||
|
||||
## Verwandte Tools
|
||||
|
||||
- ElegantBouncer – struktureller Scanner für die oben genannten Erkennungen
|
||||
- pdfid/pdf-parser/peepdf – PDF-Objekt-Extraktion und statische Analyse
|
||||
- pdfcpu – PDF-Linter/Sanitizer
|
||||
- fontTools/ttx – TrueType-Tabellen und Bytecode ausgeben
|
||||
- exiftool – TIFF/DNG/EXIF-Metadaten lesen
|
||||
- dwebp/webpmux – WebP-Metadaten und Chunks parsen
|
||||
|
||||
---
|
||||
|
||||
## Quellen
|
||||
|
||||
- [ELEGANTBOUNCER: When You Can't Get the Samples but Still Need to Catch the Threat](https://www.msuiche.com/posts/elegantbouncer-when-you-cant-get-the-samples-but-still-need-to-catch-the-threat/)
|
||||
- [ElegantBouncer project (GitHub)](https://github.com/msuiche/elegant-bouncer)
|
||||
- [Untersuchung von FORCEDENTRY: Den Exploit ohne Samples erkennen](https://www.msuiche.com/posts/researching-forcedentry-detecting-the-exploit-with-no-samples/)
|
||||
- [Untersuchung von BLASTPASS – Den Exploit in einer WebP-Datei erkennen (Teil 1)](https://www.msuiche.com/posts/researching-blastpass-detecting-the-exploit-inside-a-webp-file-part-1/)
|
||||
- [Untersuchung von BLASTPASS – Analyse der Apple & Google WebP PoC-Datei (Teil 2)](https://www.msuiche.com/posts/researching-blastpass-analysing-the-apple-google-webp-poc-file-part-2/)
|
||||
- [Untersuchung von TRIANGULATION – CVE‑2023‑41990 mit Ein-Byte-Signaturen erkennen](https://www.msuiche.com/posts/researching-triangulation-detecting-cve-2023-41990-with-single-byte-signatures/)
|
||||
- [CVE‑2025‑43300: Kritische Schwachstelle in Apples DNG-Bildverarbeitung entdeckt](https://www.msuiche.com/posts/cve-2025-43300-critical-vulnerability-found-in-apples-dng-image-processing/)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
Loading…
x
Reference in New Issue
Block a user