Translated ['src/generic-methodologies-and-resources/basic-forensic-meth

This commit is contained in:
Translator 2025-08-26 20:10:23 +00:00
parent 66b829ba7a
commit 4c79e5ff34
5 changed files with 408 additions and 14 deletions

View File

@ -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)

View File

@ -1,8 +1,8 @@
# Méthodologie Forensique de Base
# Méthodologie forensique de base
{{#include ../../banners/hacktricks-training.md}}
## Création et Montage d'une Image
## Création et montage d'une image
{{#ref}}
@ -11,23 +11,50 @@
## Analyse de Malware
Ce **n'est pas nécessairement la première étape à réaliser une fois que vous avez l'image**. Mais vous pouvez utiliser ces techniques d'analyse de malware indépendamment si vous avez un fichier, une image de système de fichiers, une image mémoire, pcap... donc il est bon de **garder ces actions à l'esprit** :
Ce **n'est pas nécessairement la première étape à effectuer une fois que vous avez l'image**. Mais vous pouvez utiliser ces techniques d'analyse de malware de manière indépendante si vous disposez d'un fichier, d'une image du système de fichiers, d'une image mémoire, d'un pcap... il est donc bon de **garder ces actions à l'esprit** :
{{#ref}}
malware-analysis.md
{{#endref}}
## Inspection d'une Image
## Inspection d'une image
Si vous recevez une **image forensique** d'un appareil, vous pouvez commencer **à analyser les partitions, le système de fichiers** utilisé et **à récupérer** potentiellement des **fichiers intéressants** (même ceux supprimés). Apprenez comment dans :
Si l'on vous remet une **image forensique** d'un appareil, vous pouvez commencer à **analyser les partitions, le système de fichiers** utilisé et **récupérer** potentiellement des **fichiers intéressants** (même supprimés). Apprenez comment dans :
{{#ref}}
partitions-file-systems-carving/
{{#endref}}# Méthodologie forensique de base
## Création et montage d'une image
{{#ref}}
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
{{#endref}}
## Analyse de Malware
Ce **n'est pas nécessairement la première étape à effectuer une fois que vous avez l'image**. Mais vous pouvez utiliser ces techniques d'analyse de malware de manière indépendante si vous disposez d'un fichier, d'une image du système de fichiers, d'une image mémoire, d'un pcap... il est donc bon de **garder ces actions à l'esprit** :
{{#ref}}
malware-analysis.md
{{#endref}}
## Inspection d'une image
Si l'on vous remet une **image forensique** d'un appareil, vous pouvez commencer à **analyser les partitions, le système de fichiers** utilisé et **récupérer** potentiellement des **fichiers intéressants** (même supprimés). Apprenez comment dans :
{{#ref}}
partitions-file-systems-carving/
{{#endref}}
Selon les OS utilisés et même la plateforme, différents artefacts intéressants devraient être recherchés :
Selon les OS utilisés et même la plateforme, différents artefacts intéressants doivent être recherchés :
{{#ref}}
@ -44,9 +71,14 @@ linux-forensics.md
docker-forensics.md
{{#endref}}
## Inspection approfondie de types de fichiers spécifiques et de logiciels
Si vous avez un **fichier** très **suspect**, alors **selon le type de fichier et le logiciel** qui l'a créé, plusieurs **astuces** peuvent être utiles.\
{{#ref}}
ios-backup-forensics.md
{{#endref}}
## Inspection approfondie de types de fichiers et de logiciels spécifiques
Si vous avez un fichier très **suspect**, alors **selon le type de fichier et le logiciel** qui l'a créé, plusieurs **astuces** peuvent être utiles.\
Lisez la page suivante pour apprendre quelques astuces intéressantes :
@ -54,28 +86,28 @@ Lisez la page suivante pour apprendre quelques astuces intéressantes :
specific-software-file-type-tricks/
{{#endref}}
Je tiens à faire une mention spéciale à la page :
Je tiens à mentionner tout particulièrement la page :
{{#ref}}
specific-software-file-type-tricks/browser-artifacts.md
{{#endref}}
## Inspection de Dump Mémoire
## Inspection du dump mémoire
{{#ref}}
memory-dump-analysis/
{{#endref}}
## Inspection Pcap
## Inspection de pcap
{{#ref}}
pcap-inspection/
{{#endref}}
## **Techniques Anti-Forensiques**
## **Techniques anti-forensiques**
Gardez à l'esprit l'utilisation possible de techniques anti-forensiques :
@ -84,7 +116,56 @@ Gardez à l'esprit l'utilisation possible de techniques anti-forensiques :
anti-forensic-techniques.md
{{#endref}}
## Chasse aux Menaces
## Threat Hunting
{{#ref}}
file-integrity-monitoring.md
{{#endref}}
## Inspection approfondie de types de fichiers et de logiciels spécifiques
Si vous avez un fichier très **suspect**, alors **selon le type de fichier et le logiciel** qui l'a créé, plusieurs **astuces** peuvent être utiles.\
Lisez la page suivante pour apprendre quelques astuces intéressantes :
{{#ref}}
specific-software-file-type-tricks/
{{#endref}}
Je tiens à mentionner tout particulièrement la page :
{{#ref}}
specific-software-file-type-tricks/browser-artifacts.md
{{#endref}}
## Inspection du dump mémoire
{{#ref}}
memory-dump-analysis/
{{#endref}}
## Inspection de pcap
{{#ref}}
pcap-inspection/
{{#endref}}
## **Techniques anti-forensiques**
Gardez à l'esprit l'utilisation possible de techniques anti-forensiques :
{{#ref}}
anti-forensic-techniques.md
{{#endref}}
## Threat Hunting
{{#ref}}

View File

@ -0,0 +1,124 @@
# Analyse forensique de sauvegardes iOS (triage centré sur la messagerie)
{{#include ../../banners/hacktricks-training.md}}
Cette page décrit des étapes pratiques pour reconstruire et analyser des sauvegardes iOS à la recherche d'indices de 0click exploit delivery via des pièces jointes d'applications de messagerie. Elle se concentre sur la conversion de la structure de sauvegarde hachée d'Apple en chemins lisibles par l'humain, puis sur l'énumération et l'analyse des pièces jointes des applications courantes.
Goals:
- Reconstruire des chemins lisibles à partir de Manifest.db
- Énumérer les bases de données de messagerie (iMessage, WhatsApp, Signal, Telegram, Viber)
- Résoudre les chemins des pièces jointes, extraire les objets incorporés (PDF/Images/Fonts) et les soumettre à des détecteurs structurels
## Reconstruction d'une sauvegarde iOS
Les sauvegardes stockées sous MobileSync utilisent des noms de fichiers hachés non lisibles. La base de données SQLite Manifest.db associe chaque objet stocké à son chemin logique.
Procédure générale :
1) Ouvrir Manifest.db et lire les enregistrements de fichiers (domain, relativePath, flags, fileID/hash)
2) Recréer la hiérarchie de dossiers originale basée sur domain + relativePath
3) Copier ou créer un hardlink pour chaque objet stocké vers son chemin reconstruit
Exemple de workflow avec un outil qui implémente cela de bout en bout (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!
```
Notes:
- Traitez les sauvegardes chiffrées en fournissant le mot de passe de la sauvegarde à votre extracteur
- Conservez les horodatages/ACL d'origine lorsque possible pour leur valeur probante
## Énumération des pièces jointes des applications de messagerie
Après reconstruction, énumérez les pièces jointes des applications populaires. Le schéma exact varie selon l'application/la version, mais l'approche est similaire : interroger la base de données de messagerie, joindre les messages aux pièces jointes, et résoudre les chemins sur le disque.
### iMessage (sms.db)
Tables clés: message, attachment, message_attachment_join (MAJ), chat, chat_message_join (CMJ)
Exemples de requêtes:
```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;
```
Les chemins des pièces jointes peuvent être absolus ou relatifs à l'arborescence reconstruite sous Library/SMS/Attachments/.
### WhatsApp (ChatStorage.sqlite)
Association courante : message table ↔ media/attachment table (les noms varient selon la version). Interroger les lignes media pour obtenir les chemins sur disque.
Exemple (générique):
```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;
```
Adjust table/column names to your app version (ZWAMESSAGE/ZWAMEDIAITEM are common in iOS builds).
### Signal / Telegram / Viber
- Signal : la base de données de messages (DB) est chiffrée ; cependant, les pièces jointes mises en cache sur le disque (et les miniatures) sont généralement analysables
- Telegram : inspecter les répertoires de cache (caches photo/vidéo/document) et les associer aux conversations quand c'est possible
- Viber : Viber.sqlite contient des tables message/attachment avec des références sur disque
Tip: même lorsque les métadonnées sont chiffrées, scanner les répertoires media/cache met toujours au jour des objets malveillants.
## Scanning attachments for structural exploits
Une fois que vous avez les chemins des pièces jointes, passez-les dans des détecteurs structurels qui valident les invariants du format de fichier plutôt que les signatures. Exemple avec 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)
```
Les détections couvertes par des règles structurelles incluent :
- PDF/JBIG2 FORCEDENTRY (CVE202130860): états de dictionnaire JBIG2 impossibles
- WebP/VP8L BLASTPASS (CVE20234863): constructions de tables de Huffman surdimensionnées
- TrueType TRIANGULATION (CVE202341990): opcodes de bytecode non documentés
- DNG/TIFF CVE202543300: incompatibilités entre métadonnées et composants de flux
## Validation, mises en garde et faux positifs
- Conversions temporelles : iMessage stocke les dates en époques/unités Apple sur certaines versions ; convertir correctement lors de la rédaction du rapport
- Dérive de schéma : les schémas SQLite des apps changent au fil du temps ; confirmer les noms de tables/colonnes selon la build de l'appareil
- Extraction récursive : les PDF peuvent embarquer des flux JBIG2 et des polices ; extraire et analyser les objets internes
- Faux positifs : les heuristiques structurelles sont conservatrices mais peuvent signaler des médias rares, malformés mais bénins
## Références
- [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)
{{#include ../../banners/hacktricks-training.md}}

View File

@ -2,40 +2,54 @@
{{#include ../../../banners/hacktricks-training.md}}
Ici, vous pouvez trouver des astuces intéressantes pour des types de fichiers et/ou des logiciels spécifiques :
Vous trouverez ici des astuces intéressantes pour des types de fichiers et/ou des logiciels spécifiques :
{{#ref}}
.pyc.md
{{#endref}}
{{#ref}}
browser-artifacts.md
{{#endref}}
{{#ref}}
desofuscation-vbs-cscript.exe.md
{{#endref}}
{{#ref}}
local-cloud-storage.md
{{#endref}}
{{#ref}}
office-file-analysis.md
{{#endref}}
{{#ref}}
pdf-file-analysis.md
{{#endref}}
{{#ref}}
structural-file-format-exploit-detection.md
{{#endref}}
{{#ref}}
png-tricks.md
{{#endref}}
{{#ref}}
video-and-audio-file-analysis.md
{{#endref}}
{{#ref}}
zips-tricks.md
{{#endref}}

View File

@ -0,0 +1,173 @@
# Détection d'exploits de formats de fichiers structurés (0Click Chains)
{{#include ../../../banners/hacktricks-training.md}}
Cette page résume des techniques pratiques pour détecter des fichiers d'exploit mobiles 0click en validant les invariants structurels de leurs formats au lieu de s'appuyer sur des signatures d'octets. L'approche se généralise aux échantillons, variantes polymorphes et futurs exploits qui abusent de la même logique de parser.
Key idea: encode structural impossibilities and crossfield inconsistencies that only appear when a vulnerable decoder/parser state is reached.
See also:
{{#ref}}
pdf-file-analysis.md
{{#endref}}
## Why structure, not signatures
When weaponized samples are unavailable and payload bytes mutate, traditional IOC/YARA patterns fail. Structural detection inspects the containers declared layout versus what is mathematically or semantically possible for the format implementation.
Typical checks:
- Valider les tailles de tables et les bornes dérivées de la spécification et des implémentations sûres
- Signaler les opcodes illégaux/non documentés ou les transitions d'état dans le bytecode embarqué
- Vérifier la cohérence des métadonnées par rapport aux composants réels du flux encodé
- Détecter des champs contradictoires qui indiquent une confusion du parser ou des configurations provoquant un integer overflow
Below are concrete, fieldtested patterns for multiple highimpact chains.
---
## PDF/JBIG2 FORCEDENTRY (CVE202130860)
Target: JBIG2 symbol dictionaries embedded inside PDFs (often used in mobile MMS parsing).
Structural signals:
- État contradictoire du dictionnaire qui ne peut pas se produire dans un contenu bénin mais qui est nécessaire pour déclencher le débordement dans le décodage arithmétique.
- Utilisation suspecte de segments globaux combinée à des décomptes de symboles anormaux lors du codage par raffinage.
Pseudologic:
```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")
```
Triage pratique :
- Identifier et extraire les JBIG2 streams du PDF
- pdfid/pdf-parser/peepdf pour localiser et dumper les streams
- Vérifier les flags de codage arithmétique et les paramètres du symbol dictionary par rapport à la spec JBIG2
Notes :
- Fonctionne sans signatures de payload intégrées
- Faible taux de faux positifs (FP) en pratique car l'état signalé est mathématiquement incohérent
---
## WebP/VP8L BLASTPASS (CVE20234863)
Target: WebP lossless (VP8L) Huffman prefixcode tables.
Signaux structurels :
- La taille totale des tables Huffman construites dépasse la borne supérieure sûre attendue par les implémentations de référence/corrigées, impliquant la précondition de débordement.
Pseudologic :
```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")
```
Triage pratique :
- Vérifier les chunks du conteneur WebP : VP8X + VP8L
- Parser les prefix codes VP8L et calculer les tailles réelles des tables allouées
Notes :
- Robuste face au polymorphisme au niveau des octets du payload
- La borne est dérivée des limites en amont et de l'analyse des patchs
---
## TrueType TRIANGULATION (CVE202341990)
Cible : bytecode TrueType à l'intérieur des programmes fpgm/prep/glyf.
Signaux structurels :
- Présence d'opcodes non documentés/interdits dans l'interpréteur d'Apple utilisé par l'exploit chain.
Pseudologique :
```pseudo
# Flag undocumented TrueType opcodes leveraged by TRIANGULATION
switch opcode:
case 0x8F, 0x90:
mark_malicious("Undocumented TrueType bytecode")
default:
continue
```
Triage pratique :
- Extraire les tables de polices (par ex., en utilisant fontTools/ttx) et scanner les programmes fpgm/prep/glyf
- Pas besoin d'émuler complètement l'interpréteur pour tirer parti des vérifications de présence
Notes :
- Peut produire de rares FPs si des polices non standard incluent des opcodes inconnus ; valider avec des outils secondaires
---
## DNG/TIFF CVE202543300
Cible : métadonnées image DNG/TIFF par rapport au nombre réel de composants dans le flux encodé (par ex., JPEGLossless SOF3).
Signaux structurels:
- Incohérence entre les champs EXIF/IFD (SamplesPerPixel, PhotometricInterpretation) et le nombre de composants analysé depuis l'en-tête du flux image utilisé par le pipeline.
Pseudologique:
```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")
```
Practical triage:
- Parser les balises IFD primaires et EXIF
- Localiser et parser l'entête JPEGLossless embarqué (SOF3) et comparer le nombre de composants
Notes:
- Signalé comme exploité dans la nature ; excellent candidat pour des vérifications de cohérence structurelle
---
## Implementation patterns and performance
A practical scanner should:
- Détecter automatiquement le type de fichier et lancer uniquement les analyseurs pertinents (PDF/JBIG2, WebP/VP8L, TTF, DNG/TIFF)
- Traiter en flux / analyser partiellement pour minimiser les allocations et permettre un arrêt anticipé
- Exécuter les analyses en parallèle (threadpool) pour le tri en masse
Exemple de workflow avec ElegantBouncer (implémentation Rust opensource de ces vérifications):
```bash
# Scan a path recursively with structural detectors
$ elegant-bouncer --scan /path/to/directory
# Optional TUI for parallel scanning and realtime alerts
$ elegant-bouncer --tui --scan /path/to/samples
```
---
## DFIR conseils et cas limites
- Objets intégrés: Les PDFs peuvent intégrer des images (JBIG2) et des polices (TrueType) ; extraire et analyser récursivement
- Sécurité lors de la décompression: utiliser des bibliothèques qui limitent strictement les tables/tampons avant allocation
- Faux positifs: garder des règles conservatrices, privilégier les contradictions impossibles selon la spécification
- Dérive des versions: réétalonner les bornes (e.g., VP8L table sizes) lorsque les parseurs en amont changent leurs limites
---
## Outils associés
- ElegantBouncer scanner structurel pour les détections cidessus
- pdfid/pdf-parser/peepdf extraction d'objets PDF et analyse statique
- pdfcpu linter/sanitiseur PDF
- fontTools/ttx exporter les tables TrueType et le bytecode
- exiftool lire les métadonnées TIFF/DNG/EXIF
- dwebp/webpmux analyser les métadonnées et chunks WebP
---
## Références
- [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)
- [Researching FORCEDENTRY: Detecting the exploit with no samples](https://www.msuiche.com/posts/researching-forcedentry-detecting-the-exploit-with-no-samples/)
- [Researching BLASTPASS Detecting the exploit inside a WebP file (Part 1)](https://www.msuiche.com/posts/researching-blastpass-detecting-the-exploit-inside-a-webp-file-part-1/)
- [Researching BLASTPASS Analysing the Apple & Google WebP PoC file (Part 2)](https://www.msuiche.com/posts/researching-blastpass-analysing-the-apple-google-webp-poc-file-part-2/)
- [Researching TRIANGULATION Detecting CVE202341990 with singlebyte signatures](https://www.msuiche.com/posts/researching-triangulation-detecting-cve-2023-41990-with-single-byte-signatures/)
- [CVE202543300: Critical vulnerability found in Apples DNG image processing](https://www.msuiche.com/posts/cve-2025-43300-critical-vulnerability-found-in-apples-dng-image-processing/)
{{#include ../../../banners/hacktricks-training.md}}