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
67e05f3fa9
commit
704c66c7f0
@ -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,172 @@
|
||||
# Osnovna Forenzička Metodologija
|
||||
# Osnovna forenzička metodologija
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## Kreiranje i Montiranje Slike
|
||||
## Kreiranje i montiranje image-a
|
||||
|
||||
|
||||
{{#ref}}
|
||||
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
|
||||
{{#endref}}
|
||||
|
||||
## Analiza Malvera
|
||||
## Malware analiza
|
||||
|
||||
Ovo **nije nužno prvi korak koji treba uraditi nakon što imate image**. Ali ove Malware analysis tehnike možete koristiti nezavisno ako imate file, file-system image, memory image, pcap... zato je dobro **imati ove radnje na umu**:
|
||||
|
||||
Ovo **nije nužno prvi korak koji treba preduzeti kada imate sliku**. Ali možete koristiti ove tehnike analize malvera nezavisno ako imate datoteku, sliku datotečnog sistema, sliku memorije, pcap... tako da je dobro **imati ove akcije na umu**:
|
||||
|
||||
{{#ref}}
|
||||
malware-analysis.md
|
||||
{{#endref}}
|
||||
|
||||
## Istraživanje Slike
|
||||
## Inspekcija image-a
|
||||
|
||||
Ako vam je dat **forensic image** uređaja, možete početi **analizu particija, file-system** koji je korišćen i **oporavak** potencijalno **interesantnih file-ova** (čak i obrisanih). Saznajte kako u:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
partitions-file-systems-carving/
|
||||
{{#endref}}# Osnovna forenzička metodologija
|
||||
|
||||
|
||||
|
||||
## Kreiranje i montiranje image-a
|
||||
|
||||
|
||||
{{#ref}}
|
||||
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
|
||||
{{#endref}}
|
||||
|
||||
## Malware analiza
|
||||
|
||||
Ovo **nije nužno prvi korak koji treba uraditi nakon što imate image**. Ali ove Malware analysis tehnike možete koristiti nezavisno ako imate file, file-system image, memory image, pcap... zato je dobro **imati ove radnje na umu**:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
malware-analysis.md
|
||||
{{#endref}}
|
||||
|
||||
## Inspekcija image-a
|
||||
|
||||
Ako vam je dat **forensic image** uređaja, možete početi **analizu particija, file-system** koji je korišćen i **oporavak** potencijalno **interesantnih file-ova** (čak i obrisanih). Saznajte kako u:
|
||||
|
||||
Ako dobijete **forenzičku sliku** uređaja, možete početi **analizirati particije, datotečni sistem** koji se koristi i **opraviti** potencijalno **zanimljive datoteke** (čak i obrisane). Saznajte kako u:
|
||||
|
||||
{{#ref}}
|
||||
partitions-file-systems-carving/
|
||||
{{#endref}}
|
||||
|
||||
U zavisnosti od korišćenih OS-ova i čak platformi, različiti zanimljivi artefakti treba da se pretražuju:
|
||||
U zavisnosti od korišćenih OSs pa čak i platforme, treba tražiti različite interesantne artefakte:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
windows-forensics/
|
||||
{{#endref}}
|
||||
|
||||
|
||||
{{#ref}}
|
||||
linux-forensics.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
{{#ref}}
|
||||
docker-forensics.md
|
||||
{{#endref}}
|
||||
|
||||
## Dubinska Inspekcija Specifičnih Tipova Datoteka i Softvera
|
||||
|
||||
Ako imate veoma **sumnjivu** **datoteku**, onda **u zavisnosti od tipa datoteke i softvera** koji je kreirao, nekoliko **trikova** može biti korisno.\
|
||||
Pročitajte sledeću stranicu da biste saznali neke zanimljive trikove:
|
||||
{{#ref}}
|
||||
ios-backup-forensics.md
|
||||
{{#endref}}
|
||||
|
||||
## Dubinska inspekcija specifičnih tipova file-ova i softvera
|
||||
|
||||
Ako imate veoma **sumnjiv** **file**, onda **u zavisnosti od file-type i softvera** koji ga je kreirao, nekoliko **trikova** može biti korisno.\
|
||||
Pročitajte sledeću stranicu da naučite neke interesantne trikove:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/
|
||||
{{#endref}}
|
||||
|
||||
Želim da posebno pomenem stranicu:
|
||||
Želim posebno pomenuti stranicu:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/browser-artifacts.md
|
||||
{{#endref}}
|
||||
|
||||
## Inspekcija Dump-a Memorije
|
||||
## Inspekcija Memory Dump-a
|
||||
|
||||
|
||||
{{#ref}}
|
||||
memory-dump-analysis/
|
||||
{{#endref}}
|
||||
|
||||
## Inspekcija Pcap-a
|
||||
## Inspekcija pcap-a
|
||||
|
||||
|
||||
{{#ref}}
|
||||
pcap-inspection/
|
||||
{{#endref}}
|
||||
|
||||
## **Anti-Forenzičke Tehnike**
|
||||
## **Anti-Forensic Techniques**
|
||||
|
||||
Imajte na umu mogućnost upotrebe anti-forensic tehnika:
|
||||
|
||||
Imajte na umu moguću upotrebu anti-forenzičkih tehnika:
|
||||
|
||||
{{#ref}}
|
||||
anti-forensic-techniques.md
|
||||
{{#endref}}
|
||||
|
||||
## Lov na Pretnje
|
||||
## Threat Hunting
|
||||
|
||||
|
||||
{{#ref}}
|
||||
file-integrity-monitoring.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
|
||||
## Dubinska inspekcija specifičnih tipova file-ova i softvera
|
||||
|
||||
Ako imate veoma **sumnjiv** **file**, onda **u zavisnosti od file-type i softvera** koji ga je kreirao, nekoliko **trikova** može biti korisno.\
|
||||
Pročitajte sledeću stranicu da naučite neke interesantne trikove:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/
|
||||
{{#endref}}
|
||||
|
||||
Želim posebno pomenuti stranicu:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/browser-artifacts.md
|
||||
{{#endref}}
|
||||
|
||||
## Inspekcija Memory Dump-a
|
||||
|
||||
|
||||
{{#ref}}
|
||||
memory-dump-analysis/
|
||||
{{#endref}}
|
||||
|
||||
## Inspekcija pcap-a
|
||||
|
||||
|
||||
{{#ref}}
|
||||
pcap-inspection/
|
||||
{{#endref}}
|
||||
|
||||
## **Anti-Forensic Techniques**
|
||||
|
||||
Imajte na umu mogućnost upotrebe anti-forensic tehnika:
|
||||
|
||||
|
||||
{{#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}}
|
||||
|
||||
Ova stranica opisuje praktične korake za rekonstrukciju i analizu iOS backup‑ova radi traganja za isporukom 0‑click exploit‑a putem priloga u messaging aplikacijama. Fokus je na pretvaranju Apple‑ovog haširanog layout‑a backup‑a u čitljive putanje, zatim na enumeraciju i skeniranje priloga u uobičajenim aplikacijama.
|
||||
|
||||
Ciljevi:
|
||||
- Rekonstruisati čitljive putanje iz Manifest.db
|
||||
- Enumerisati messaging baze podataka (iMessage, WhatsApp, Signal, Telegram, Viber)
|
||||
- Rešavati putanje priloga, izdvajati ugrađene objekte (PDF/Images/Fonts) i prosleđivati ih detektorima strukture
|
||||
|
||||
|
||||
## Rekonstrukcija iOS backup‑a
|
||||
|
||||
Backup‑ovi smešteni pod MobileSync koriste haširana imena fajlova koja nisu čitljiva čoveku. Manifest.db SQLite baza podataka preslikava svaki sačuvan objekat na njegovu logičku putanju.
|
||||
|
||||
Opšti postupak:
|
||||
1) Otvoriti Manifest.db i pročitati zapise o fajlovima (domain, relativePath, flags, fileID/hash)
|
||||
2) Ponovo kreirati originalnu hijerarhiju foldera na osnovu domain + relativePath
|
||||
3) Kopirati ili napraviti hardlink za svaki sačuvan objekat na rekonstruisanu putanju
|
||||
|
||||
Primer radnog toka sa alatom koji ovo implementira od početka do kraja (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!
|
||||
```
|
||||
Beleške:
|
||||
- Rukujte šifrovanim rezervnim kopijama tako što ćete svom alatu za ekstrakciju proslediti lozinku za backup
|
||||
- Sačuvajte originalne vremenske oznake i ACL-ove kad je moguće radi dokazne vrednosti
|
||||
|
||||
|
||||
## Enumeracija priloga u aplikacijama za razmenu poruka
|
||||
|
||||
Nakon rekonstrukcije, popišite priloge za popularne aplikacije. Tačan šematski raspored varira po aplikaciji/verziji, ali pristup je sličan: upitovanje baze podataka poruka, spajanje poruka sa prilozima i rešavanje putanja na disku.
|
||||
|
||||
### iMessage (sms.db)
|
||||
Ključne tabele: message, attachment, message_attachment_join (MAJ), chat, chat_message_join (CMJ)
|
||||
|
||||
Primer upita:
|
||||
```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;
|
||||
```
|
||||
Putanje priloga mogu biti apsolutne ili relativne u odnosu na rekonstruisano stablo pod Library/SMS/Attachments/.
|
||||
|
||||
### WhatsApp (ChatStorage.sqlite)
|
||||
Uobičajena veza: message table ↔ media/attachment table (nazivi se razlikuju po verziji). Izvršite upit nad redovima u media tabeli da biste dobili putanje na disku.
|
||||
|
||||
Primer (generički):
|
||||
```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;
|
||||
```
|
||||
Prilagodite nazive tabela/kolona vašoj verziji aplikacije (ZWAMESSAGE/ZWAMEDIAITEM are common in iOS builds).
|
||||
|
||||
### Signal / Telegram / Viber
|
||||
- Signal: message DB je šifrovana; međutim, prilozi keširani na disku (i sličice) se obično mogu skenirati
|
||||
- Telegram: pregledajte keš direktorijume (keševi fotografija/video/dokumenata) i mapirajte ih na razgovore kad je moguće
|
||||
- Viber: Viber.sqlite sadrži tabele poruka/priloga sa referencama na disku
|
||||
|
||||
Tip: čak i kada su metapodaci šifrovani, skeniranje direktorijuma medija/keša i dalje otkriva maliciozne objekte.
|
||||
|
||||
|
||||
## Scanning attachments for structural exploits
|
||||
|
||||
Kada imate putanje priloga, prosledite ih u strukturne detektore koji proveravaju invariantnost formata fajla umesto potpisa. Primer sa 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)
|
||||
```
|
||||
Detekcije obuhvaćene strukturnim pravilima uključuju:
|
||||
- PDF/JBIG2 FORCEDENTRY (CVE‑2021‑30860): impossible JBIG2 dictionary states
|
||||
- WebP/VP8L BLASTPASS (CVE‑2023‑4863): oversized Huffman table constructions
|
||||
- TrueType TRIANGULATION (CVE‑2023‑41990): undocumented bytecode opcodes
|
||||
- DNG/TIFF CVE‑2025‑43300: metadata vs. stream component mismatches
|
||||
|
||||
|
||||
## Validacija, ograničenja i lažno pozitivni
|
||||
|
||||
- Konverzije vremena: iMessage čuva datume u Apple epochs/units na nekim verzijama; konvertujte odgovarajuće pri izveštavanju
|
||||
- Schema drift: app SQLite šeme se menjaju tokom vremena; potvrdite imena tabela/kolona po build-u uređaja
|
||||
- Rekurzivno izdvajanje: PDF-ovi mogu ugrađivati JBIG2 streamove i fontove; izdvojite i skenirajte unutrašnje objekte
|
||||
- Lažno pozitivni: strukturne heuristike su konzervativne, ali mogu označiti retke, malformisane, ipak benignе medije
|
||||
|
||||
|
||||
## 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,8 +1,8 @@
|
||||
# Specifične trikovi za softver/tipove datoteka
|
||||
# Trikovi za specifičan softver/format fajla
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Ovde možete pronaći zanimljive trikove za specifične tipove datoteka i/ili softver:
|
||||
Ovde možete pronaći zanimljive trikove za specifične tipove fajlova i/ili softver:
|
||||
|
||||
|
||||
{{#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 @@
|
||||
# Detekcija eksploatacije strukturnog formata datoteke (0‑Click Chains)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Ova stranica sažima praktične tehnike za otkrivanje 0‑click mobilnih exploit datoteka proverom strukturnih invarijanata njihovih formata umesto oslanjanja na byte potpise. Pristup se generalizuje preko uzoraka, polimorfnih varijanti i budućih exploit‑a koji zloupotrebljavaju istu parser logiku.
|
||||
|
||||
Ključna ideja: enkodirati strukturne nemoguћnosti i međupoljske nekonzistentnosti koje se pojavljuju samo kada je dostignuto ranjivo stanje dekodera/parsera.
|
||||
|
||||
Vidi takođe:
|
||||
|
||||
{{#ref}}
|
||||
pdf-file-analysis.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
## Zašto struktura, a ne potpisi
|
||||
|
||||
Kada weaponized uzorci nisu dostupni i payload bajtovi mutiraju, tradicionalni IOC/YARA paterni ne uspevaju. Strukturna detekcija ispituje deklarisani raspored kontejnera u odnosu na ono što je matematički ili semantički moguće za implementaciju formata.
|
||||
|
||||
Tipične provere:
|
||||
- Validirati veličine tabela i granice izvedene iz specifikacije i sigurnih implementacija
|
||||
- Obeležiti ilegalne/neudokumentovane opkode ili tranzicije stanja u ugrađenom bytecode‑u
|
||||
- Cross‑check metadata VS actual encoded stream components
|
||||
- Otkrivanje kontradiktornih polja koja ukazuju na zbunjenost parsera ili postavke za integer overflow
|
||||
|
||||
Ispod su konkretni, u praksi testirani obrasci za više lanaca visokog uticaja.
|
||||
|
||||
---
|
||||
|
||||
## PDF/JBIG2 – FORCEDENTRY (CVE‑2021‑30860)
|
||||
|
||||
Cilj: JBIG2 symbol dictionaries ugrađene u PDF‑ove (često korišćeno pri parsiranju mobilnih MMS poruka).
|
||||
|
||||
Strukturni signali:
|
||||
- Kontradiktorno stanje rečnika koje ne može nastati u benignom sadržaju ali je potrebno da bi se pokrenuo overflow u aritmetičkom dekodiranju.
|
||||
- Sumnjiva upotreba global segments u kombinaciji sa abnormalnim brojem simbola tokom refinement kodiranja.
|
||||
|
||||
Pseudo‑logika:
|
||||
```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")
|
||||
```
|
||||
Praktična trijaža:
|
||||
- Identifikovati i izdvojiti JBIG2 streamove iz PDF-a
|
||||
- pdfid/pdf-parser/peepdf za lociranje i dumpovanje streamova
|
||||
- Proveriti arithmetic coding flags i symbol dictionary parametre prema JBIG2 specifikaciji
|
||||
|
||||
Napomene:
|
||||
- Radi bez ugrađenih payload potpisa
|
||||
- Nizak FP u praksi jer je označeno stanje matematički nekonzistentno
|
||||
|
||||
---
|
||||
|
||||
## WebP/VP8L – BLASTPASS (CVE‑2023‑4863)
|
||||
|
||||
Cilj: WebP lossless (VP8L) Huffman prefix‑code tables.
|
||||
|
||||
Strukturni signali:
|
||||
- Ukupna veličina konstruisanih Huffman tabela prelazi sigurnu gornju granicu koju očekuju referentne/patch‑ovane implementacije, što implicira preuslov za overflow.
|
||||
|
||||
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")
|
||||
```
|
||||
Praktična trijaža:
|
||||
- Proveri WebP container chunks: VP8X + VP8L
|
||||
- Parsuj VP8L prefix codes i izračunaj stvarne dodeljene veličine tabela
|
||||
|
||||
Notes:
|
||||
- Otporno na polimorfizam na nivou bajta u payload-u
|
||||
- Gornja granica je izvedena iz analize upstream ograničenja/patch-eva
|
||||
|
||||
---
|
||||
|
||||
## TrueType – TRIANGULATION (CVE‑2023‑41990)
|
||||
|
||||
Target: TrueType bytecode inside fpgm/prep/glyf programs.
|
||||
|
||||
Strukturni signali:
|
||||
- Prisutnost nedokumentovanih/zabranjenih opcodes u Apple-ovom interpreteru koji koristi exploit chain.
|
||||
|
||||
Pseudo‑logic:
|
||||
```pseudo
|
||||
# Flag undocumented TrueType opcodes leveraged by TRIANGULATION
|
||||
switch opcode:
|
||||
case 0x8F, 0x90:
|
||||
mark_malicious("Undocumented TrueType bytecode")
|
||||
default:
|
||||
continue
|
||||
```
|
||||
Praktična trijaža:
|
||||
- Izdvojiti font tabele (npr. koristeći fontTools/ttx) i skenirati fpgm/prep/glyf programe
|
||||
- Nije potrebno potpuno emulirati interpreter da bi provere prisustva bile korisne
|
||||
|
||||
Napomene:
|
||||
- Moguće retke lažno pozitivne detekcije ako nestandardni fontovi sadrže nepoznate opkode; validirati pomoću sekundarnih alata
|
||||
|
||||
---
|
||||
|
||||
## DNG/TIFF – CVE‑2025‑43300
|
||||
|
||||
Cilj: DNG/TIFF metadata slike naspram stvarnog broja komponenti u kodiranom toku (npr. JPEG‑Lossless SOF3).
|
||||
|
||||
Strukturni signali:
|
||||
- Nekompatibilnost između EXIF/IFD polja (SamplesPerPixel, PhotometricInterpretation) i broja komponenti parsiranog iz zaglavlja toka slike koje koristi pipeline.
|
||||
|
||||
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")
|
||||
```
|
||||
Praktična trijaža:
|
||||
- Parsirati primarne IFD i EXIF oznake
|
||||
- Pronaći i parsirati ugrađeno JPEG‑Lossless zaglavlje (SOF3) i uporediti broj komponenti
|
||||
|
||||
Napomene:
|
||||
- Prijavljeno iskorišćavanje u realnom okruženju; odličan kandidat za provere strukturne konzistentnosti
|
||||
|
||||
---
|
||||
|
||||
## Obrasci implementacije i performanse
|
||||
|
||||
Praktičan skener treba:
|
||||
- Automatski otkriti tip fajla i pokretati samo relevantne analizatore (PDF/JBIG2, WebP/VP8L, TTF, DNG/TIFF)
|
||||
- Koristiti stream/delimično parsiranje da se minimizuju alokacije i omogući ranije prekinjanje
|
||||
- Pokretati analize paralelno (thread‑pool) za masovnu trijažu
|
||||
|
||||
Primer toka rada sa ElegantBouncer (open‑source Rust implementacija ovih provera):
|
||||
```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 saveti i rubni slučajevi
|
||||
|
||||
- Ugrađeni objekti: PDF fajlovi mogu da ugrade slike (JBIG2) i fontove (TrueType); izdvojiti i rekurzivno skenirati
|
||||
- Sigurnost dekompresije: koristiti biblioteke koje striktno ograničavaju veličine tabela/bafera pre alokacije
|
||||
- Lažno pozitivni: držati pravila konzervativnim, davati prednost kontradikcijama koje su nemoguće prema specifikaciji
|
||||
- Version drift: ponovo postaviti granice (npr. veličine VP8L tabela) kada upstream parseri promene limite
|
||||
|
||||
---
|
||||
|
||||
## Related tools
|
||||
|
||||
- ElegantBouncer – strukturni skener za gore navedene detekcije
|
||||
- pdfid/pdf-parser/peepdf – izdvajanje PDF objekata i statička analiza
|
||||
- pdfcpu – PDF linter/sanitizator
|
||||
- fontTools/ttx – ispis TrueType tabela i bajtkoda
|
||||
- exiftool – čitanje TIFF/DNG/EXIF metapodataka
|
||||
- dwebp/webpmux – parsiranje WebP metapodataka i chunk-ova
|
||||
|
||||
---
|
||||
|
||||
## 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