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
b8ee316e73
commit
fcbf83e8cb
@ -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)
|
||||
|
@ -2,78 +2,171 @@
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## Skep en Monteer 'n Beeld
|
||||
## Skep en Aankoppel van 'n Image
|
||||
|
||||
|
||||
{{#ref}}
|
||||
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
|
||||
{{#endref}}
|
||||
|
||||
## Malware Analise
|
||||
## Malware Analysis
|
||||
|
||||
Dit **is nie noodwendig die eerste stap wat jy moet uitvoer sodra jy die image het nie**. Maar jy kan hierdie malware analysis tegnieke onafhanklik gebruik as jy 'n lêer, 'n file-system image, memory image, pcap ... het — dit is dus goed om **hierdie aksies in gedagte te hou**:
|
||||
|
||||
Dit **is nie noodsaaklik die eerste stap om uit te voer sodra jy die beeld het nie**. Maar jy kan hierdie malware analise tegnieke onafhanklik gebruik as jy 'n lêer, 'n lêer-stelsel beeld, geheue beeld, pcap... het, so dit is goed om **hierdie aksies in gedagte te hou**:
|
||||
|
||||
{{#ref}}
|
||||
malware-analysis.md
|
||||
{{#endref}}
|
||||
|
||||
## Inspekteer 'n Beeld
|
||||
## Inspeksie van 'n Image
|
||||
|
||||
As jy 'n **forensic image** van 'n toestel ontvang, kan jy begin om die **partitions, file-system** wat gebruik is te **ontleed** en moontlik **interessante lêers** te **hersteld** (selfs verwyderde). Leer hoe in:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
partitions-file-systems-carving/
|
||||
{{#endref}}# Basiese Forensiese Metodologie
|
||||
|
||||
|
||||
|
||||
## Skep en Aankoppel van 'n Image
|
||||
|
||||
|
||||
{{#ref}}
|
||||
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
|
||||
{{#endref}}
|
||||
|
||||
## Malware Analysis
|
||||
|
||||
Dit **is nie noodwendig die eerste stap wat jy moet uitvoer sodra jy die image het nie**. Maar jy kan hierdie malware analysis tegnieke onafhanklik gebruik as jy 'n lêer, 'n file-system image, memory image, pcap ... het — dit is dus goed om **hierdie aksies in gedagte te hou**:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
malware-analysis.md
|
||||
{{#endref}}
|
||||
|
||||
## Inspeksie van 'n Image
|
||||
|
||||
As jy 'n **forensic image** van 'n toestel ontvang, kan jy begin om die **partitions, file-system** wat gebruik is te **ontleed** en moontlik **interessante lêers** te **hersteld** (selfs verwyderde). Leer hoe in:
|
||||
|
||||
As jy 'n **forensiese beeld** van 'n toestel ontvang, kan jy begin **analiseer die partisie, lêer-stelsel** wat gebruik word en **herstel** potensieel **interessante lêers** (selfs verwyderde). Leer hoe in:
|
||||
|
||||
{{#ref}}
|
||||
partitions-file-systems-carving/
|
||||
{{#endref}}
|
||||
|
||||
Afhangende van die gebruikte OS's en selfs platform, moet verskillende interessante artefakte gesoek word:
|
||||
Afhangende van die gebruikte OSs en selfs platform, moet verskillende interessante artifacts gesoek word:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
windows-forensics/
|
||||
{{#endref}}
|
||||
|
||||
|
||||
{{#ref}}
|
||||
linux-forensics.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
{{#ref}}
|
||||
docker-forensics.md
|
||||
{{#endref}}
|
||||
|
||||
## Diep inspeksie van spesifieke lêer-tipes en Sagteware
|
||||
|
||||
As jy 'n baie **verdagte** **lêer** het, dan **afhangende van die lêer-tipe en sagteware** wat dit geskep het, kan verskeie **tricks** nuttig wees.\
|
||||
{{#ref}}
|
||||
ios-backup-forensics.md
|
||||
{{#endref}}
|
||||
|
||||
## Diepe inspeksie van spesifieke lêertipes en sagteware
|
||||
|
||||
As jy 'n baie **suspekte** **lêer** het, kan, **afhangend van die file-type en software** wat dit geskep het, verskeie **truuks** nuttig wees.\
|
||||
Lees die volgende bladsy om 'n paar interessante truuks te leer:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/
|
||||
{{#endref}}
|
||||
|
||||
Ek wil 'n spesiale vermelding maak van die bladsy:
|
||||
Ek wil 'n spesiale opmerking maak oor die bladsy:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/browser-artifacts.md
|
||||
{{#endref}}
|
||||
|
||||
## Geheue Dump Inspeksie
|
||||
## Memory Dump Inspection
|
||||
|
||||
|
||||
{{#ref}}
|
||||
memory-dump-analysis/
|
||||
{{#endref}}
|
||||
|
||||
## Pcap Inspeksie
|
||||
## Pcap Inspection
|
||||
|
||||
|
||||
{{#ref}}
|
||||
pcap-inspection/
|
||||
{{#endref}}
|
||||
|
||||
## **Anti-Forensiese Tegnieke**
|
||||
## **Anti-Forensic Techniques**
|
||||
|
||||
Hou die moontlike gebruik van Anti-Forensic Techniques in gedagte:
|
||||
|
||||
Hou in gedagte die moontlike gebruik van anti-forensiese tegnieke:
|
||||
|
||||
{{#ref}}
|
||||
anti-forensic-techniques.md
|
||||
{{#endref}}
|
||||
|
||||
## Bedreiging Jag
|
||||
## Threat Hunting
|
||||
|
||||
|
||||
{{#ref}}
|
||||
file-integrity-monitoring.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
|
||||
## Diepe inspeksie van spesifieke lêertipes en sagteware
|
||||
|
||||
As jy 'n baie **suspekte** **lêer** het, kan, **afhangend van die file-type en software** wat dit geskep het, verskeie **truuks** nuttig wees.\
|
||||
Lees die volgende bladsy om 'n paar interessante truuks te leer:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/
|
||||
{{#endref}}
|
||||
|
||||
Ek wil 'n spesiale opmerking maak oor die bladsy:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/browser-artifacts.md
|
||||
{{#endref}}
|
||||
|
||||
## Memory Dump Inspection
|
||||
|
||||
|
||||
{{#ref}}
|
||||
memory-dump-analysis/
|
||||
{{#endref}}
|
||||
|
||||
## Pcap Inspection
|
||||
|
||||
|
||||
{{#ref}}
|
||||
pcap-inspection/
|
||||
{{#endref}}
|
||||
|
||||
## **Anti-Forensic Techniques**
|
||||
|
||||
Hou die moontlike gebruik van Anti-Forensic Techniques in gedagte:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
anti-forensic-techniques.md
|
||||
{{#endref}}
|
||||
|
||||
## Threat Hunting
|
||||
|
||||
|
||||
{{#ref}}
|
||||
file-integrity-monitoring.md
|
||||
|
@ -0,0 +1,124 @@
|
||||
# iOS Backup Forensics (Messaging‑centric triage)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Hierdie bladsy beskryf praktiese stappe om iOS‑rugsteune te herbou en te ontleed vir tekens van 0‑click exploit‑aflewering via boodskap‑app‑aanhangsels. Dit fokus op die omskakeling van Apple se gehashede rugsteunstruktuur na mensleesbare paadjies, en daarna die opsomming en skandering van aanhangsels oor algemene apps.
|
||||
|
||||
Doelwitte:
|
||||
- Herbou mensleesbare paaie vanaf Manifest.db
|
||||
- Lys boodskapdatabasisse (iMessage, WhatsApp, Signal, Telegram, Viber)
|
||||
- Los aanhangselpaaie op, ekstraheer ingeslote voorwerpe (PDF/Images/Fonts), en voer dit aan strukturele detektors
|
||||
|
||||
|
||||
## Herbou van 'n iOS‑rugsteun
|
||||
|
||||
Rugsteune wat onder MobileSync gestoor word, gebruik gehashede lêernaamme wat nie mensleesbaar is nie. Die Manifest.db SQLite‑databasis koppel elke gestoorde objek aan sy logiese pad.
|
||||
|
||||
Hoëvlak prosedure:
|
||||
1) Maak Manifest.db oop en lees die lêerrekords (domain, relativePath, flags, fileID/hash)
|
||||
2) Herskep die oorspronklike vouerhiërargie gebaseer op domain + relativePath
|
||||
3) Kopieer of hardlink elke gestoorde objek na sy herboude pad
|
||||
|
||||
Voorbeeldwerkvloei met 'n gereedskap wat dit end‑to‑end implementeer (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!
|
||||
```
|
||||
Aantekeninge:
|
||||
- Hanteer encrypted backups deur die backup password aan jou extractor te verskaf
|
||||
- Behou oorspronklike timestamps/ACLs waar moontlik vir bewysewaarde
|
||||
|
||||
|
||||
## Boodskap-app aanhegselopsomming
|
||||
|
||||
Na rekonstruksie, lys aanhegsels vir gewilde apps. Die presiese schema verskil per app/weergawe, maar die benadering is soortgelyk: voer navrae op die messaging-databasis uit, koppel boodskappe aan aanhegsels, en los paaie op die skyf op.
|
||||
|
||||
### iMessage (sms.db)
|
||||
Belangrike tabelle: message, attachment, message_attachment_join (MAJ), chat, chat_message_join (CMJ)
|
||||
|
||||
Voorbeeld navrae:
|
||||
```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;
|
||||
```
|
||||
Aanhegselpaaie kan absoluut wees of relatief tot die herkonstrueerde boom onder Library/SMS/Attachments/.
|
||||
|
||||
### WhatsApp (ChatStorage.sqlite)
|
||||
Algemene koppeling: message table ↔ media/attachment table (benaming verskil per weergawe). Voer navrae op media-rye uit om die paaie op die skyf te verkry.
|
||||
|
||||
Example (generic):
|
||||
```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-weergawe (ZWAMESSAGE/ZWAMEDIAITEM is algemeen in iOS-builds).
|
||||
|
||||
### Signal / Telegram / Viber
|
||||
- Signal: die boodskap-DB is geïnkripteer; attachments wat op skyf gecache is (en miniatuurprente) is gewoonlik deursoekbaar
|
||||
- Telegram: ondersoek cache-gidse (foto-/video-/dokument-cache) en koppel dit aan gesprekke waar moontlik
|
||||
- Viber: Viber.sqlite bevat boodskap-/aanhangsel-tabelle met verwysings op skyf
|
||||
|
||||
Tip: selfs wanneer metadata geïnkripteer is, openbaar die deursoeking van media-/cache-gidse steeds kwaadwillige voorwerpe.
|
||||
|
||||
|
||||
## Scanning attachments for structural exploits
|
||||
|
||||
Sodra jy aanhangselpade het, voer hulle in strukturele detectors wat file‑format invariants valideer in plaas van signatures. Voorbeeld met 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)
|
||||
```
|
||||
Detections covered by structural rules include:
|
||||
- PDF/JBIG2 FORCEDENTRY (CVE‑2021‑30860): onmoontlike JBIG2-woordeboektoestande
|
||||
- WebP/VP8L BLASTPASS (CVE‑2023‑4863): oorgrootte Huffman-tabelkonstruksies
|
||||
- TrueType TRIANGULATION (CVE‑2023‑41990): ongedokumenteerde bytecode-opkodes
|
||||
- DNG/TIFF CVE‑2025‑43300: onversoenbaarhede tussen metadata en stroomkomponente
|
||||
|
||||
|
||||
## Validering, voorbehoude en vals positiewe
|
||||
|
||||
- Tydomsettings: iMessage stoor datums in Apple-epoche/enhede in sommige weergawes; skakel dit toepaslik om tydens verslaggewing
|
||||
- Schema drift: app SQLite-skema's verander oor tyd; bevestig tabel- en kolomname per device build
|
||||
- Rekursiewe ekstraksie: PDFs kan JBIG2-strome en lettertipes inkapsel; ekstraheer en skandeer inwendige voorwerpe
|
||||
- Vals positiewe: strukturele heuristieke is konserwatief maar kan seldsame, verkeerd gevormde maar onskadelike media aandui
|
||||
|
||||
|
||||
## References
|
||||
|
||||
- [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}}
|
@ -1,4 +1,4 @@
|
||||
# Spesifieke Sagteware/Lêertipe Trukke
|
||||
# Spesifieke sagteware-/lêertipe-truuks
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@ -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 @@
|
||||
# Strukturele Lêer‑formaat Eksploit Opsporing (0‑Click Chains)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Hierdie bladsy som praktiese tegnieke op om 0‑click mobiele exploit lêers te ontdek deur die strukturele invarianties van hul formate te valideer in plaas daarvan om op byte‑handtekeninge te vertrou. Die benadering generaliseer oor monsters, polymorphic variants, en toekomstige exploits wat dieselfde parser logic misbruik.
|
||||
|
||||
Belangrikste idee: enkodeer strukturele onmoontlikhede en kruis‑veld inkonsekwenthede wat slegs verskyn wanneer 'n kwesbare decoder/parser‑toestand bereik word.
|
||||
|
||||
See also:
|
||||
|
||||
{{#ref}}
|
||||
pdf-file-analysis.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
## Waarom struktuur, nie handtekeninge nie
|
||||
|
||||
Wanneer weaponized samples onbeskikbaar is en payload bytes muteer, faal tradisionele IOC/YARA patrone. Strukturele opsporing inspekteer die houer se verklaarde uitleg teenoor wat wiskundig of semanties moontlik is vir die formaat‑implementering.
|
||||
|
||||
Tipiese kontroles:
|
||||
- Valideer tabelgroottes en grense wat afgelei is uit die spesifikasie en veilige implementerings
|
||||
- Merk onwettige/ondokumenteerde opcodes of toestandsoorgange in ingesluit bytecode
|
||||
- Kruis‑kontroleer metadata VS werklike gekodeerde stroomkomponente
|
||||
- Detecteer teenstrydige velde wat parser‑verwarring of integer overflow‑opstellings aandui
|
||||
|
||||
Hieronder is konkrete, veld‑getoetste patrone vir verskeie hoë‑impak chains.
|
||||
|
||||
---
|
||||
|
||||
## PDF/JBIG2 – FORCEDENTRY (CVE‑2021‑30860)
|
||||
|
||||
Target: JBIG2 symbol dictionaries ingebed binne PDFs (dikwels gebruik in mobiele MMS parsing).
|
||||
|
||||
Strukturele seine:
|
||||
- Teenstrydige dictionary‑toestand wat nie in goedaardige inhoud kan voorkom nie maar vereis word om die overflow in arithmetic decoding te trigger.
|
||||
- Verdagte gebruik van global segments gekombineer met abnormale symbol counts tydens refinement coding.
|
||||
|
||||
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")
|
||||
```
|
||||
Praktiese triage:
|
||||
- Identifiseer en ekstraheer JBIG2-strome uit die PDF
|
||||
- pdfid/pdf-parser/peepdf om strome te lokaliseer en te dump
|
||||
- Verifieer aritmetiese koderingvlae en simboolwoordeboek-parameters teen die JBIG2-spesifikasie
|
||||
|
||||
Aantekeninge:
|
||||
- Werk sonder ingesette payload-handtekeninge
|
||||
- Lae FP in praktyk omdat die geflagte toestand wiskundig inkonsistent is
|
||||
|
||||
---
|
||||
|
||||
## WebP/VP8L – BLASTPASS (CVE‑2023‑4863)
|
||||
|
||||
Doelwit: WebP lossless (VP8L) Huffman prefix‑code tables.
|
||||
|
||||
Strukturele seinale:
|
||||
- Totale grootte van die saamgestelde Huffman-tabelle oortref die veilige boonste grens wat deur die verwysings-/gepatchte implementasies verwag word, wat die oorloop-voorwaarde impliseer.
|
||||
|
||||
Pseudo‑logika:
|
||||
```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")
|
||||
```
|
||||
Praktiese triage:
|
||||
- Kontroleer WebP container chunks: VP8X + VP8L
|
||||
- Ontleed VP8L prefix codes en bereken werklike toegewezen tabelgroottes
|
||||
|
||||
Aantekeninge:
|
||||
- Robuust teen byte‑vlak polimorfisme van die payload
|
||||
- Grens is afgelei van upstream-limiete/patch-analise
|
||||
|
||||
---
|
||||
|
||||
## TrueType – TRIANGULATION (CVE‑2023‑41990)
|
||||
|
||||
Teiken: TrueType bytecode binne fpgm/prep/glyf programme.
|
||||
|
||||
Strukturele seine:
|
||||
- Aanwesigheid van ongedokumenteerde/verbode opcodes in Apple’s interpreter wat deur die exploit chain gebruik word.
|
||||
|
||||
Pseudo‑logika:
|
||||
```pseudo
|
||||
# Flag undocumented TrueType opcodes leveraged by TRIANGULATION
|
||||
switch opcode:
|
||||
case 0x8F, 0x90:
|
||||
mark_malicious("Undocumented TrueType bytecode")
|
||||
default:
|
||||
continue
|
||||
```
|
||||
Praktiese triage:
|
||||
- Eksporteer font‑tabelle (bv. met fontTools/ttx) en skandeer fpgm/prep/glyf‑programme
|
||||
- Geen behoefte om die tolk volledig te emuleer om waarde uit aanwesigheidskontroles te kry
|
||||
|
||||
Aantekeninge:
|
||||
- Kan seldsame FPs produseer as nie‑standaard fonte onbekende opkodes bevat; valideer met sekondêre gereedskap
|
||||
|
||||
---
|
||||
|
||||
## DNG/TIFF – CVE‑2025‑43300
|
||||
|
||||
Doelwit: DNG/TIFF beeldmetadata VS werklike komponenttelling in die gekodeerde stroom (bv. JPEG‑Lossless SOF3).
|
||||
|
||||
Strukturele seine:
|
||||
- Inkonsekwentheid tussen EXIF/IFD‑velde (SamplesPerPixel, PhotometricInterpretation) en die komponenttelling wat gepars word uit die beeldstroom‑header wat deur die pipeline gebruik word.
|
||||
|
||||
Pseudo‑logika:
|
||||
```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")
|
||||
```
|
||||
Praktiese triage:
|
||||
- Ontleed primêre IFD- en EXIF-tags
|
||||
- Vind en ontleed die ingeslote JPEG‑Lossless-kop (SOF3) en vergelyk komponenttelle
|
||||
|
||||
Aantekeninge:
|
||||
- In die veld gerapporteer as uitgebuit; uitstekende kandidaat vir strukturele konsekwentheidskontroles
|
||||
|
||||
---
|
||||
|
||||
## Implementasiepatrone en prestasie
|
||||
|
||||
'n Praktiese skandeerder moet:
|
||||
- Outomaties lêertipe herken en slegs toepaslike ontleders aanroep (PDF/JBIG2, WebP/VP8L, TTF, DNG/TIFF)
|
||||
- Stroom-/gedeeltelike ontleding om toewysings te minimaliseer en vroeë beëindiging moontlik te maak
|
||||
- Voer ontledings parallel uit (thread‑pool) vir massa‑triage
|
||||
|
||||
Voorbeeld‑werkstroom met ElegantBouncer (open‑source Rust‑implementering van hierdie kontroles):
|
||||
```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 wenke en randgevalle
|
||||
|
||||
- Ingebedde objekte: PDFs kan beelde (JBIG2) en lettertipes (TrueType) inbed; onttrek en rekursief skandeer
|
||||
- Decompressiebeveiliging: gebruik biblioteke wat tabelle/buffers streng beperk voordat hulle geallokeer word
|
||||
- Valse positiewe: hou reëls konservatief, gee voorkeur aan teenstrydighede wat onmoontlik is volgens die spesifikasie
|
||||
- Weergawe‑drift: stel die grondlyn vir grenswaardes weer (bv. VP8L-tabelgroottes) wanneer upstream parsers hul grense verander
|
||||
|
||||
---
|
||||
|
||||
## Verwante gereedskap
|
||||
|
||||
- ElegantBouncer – strukturele skandeerder vir bogenoemde deteksies
|
||||
- pdfid/pdf-parser/peepdf – PDF-objek-uittrekking en statiese ontleding
|
||||
- pdfcpu – PDF-linter/saniteerder
|
||||
- fontTools/ttx – lees TrueType-tabelle en bytekode uit
|
||||
- exiftool – lees TIFF/DNG/EXIF-metadata
|
||||
- dwebp/webpmux – ontleed WebP-metadata en chunks
|
||||
|
||||
---
|
||||
|
||||
## References
|
||||
|
||||
- [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 CVE‑2023‑41990 with single‑byte signatures](https://www.msuiche.com/posts/researching-triangulation-detecting-cve-2023-41990-with-single-byte-signatures/)
|
||||
- [CVE‑2025‑43300: Critical vulnerability found in Apple’s DNG image processing](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