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
8e5f0c66d9
commit
5345ea68f9
@ -1,10 +1,10 @@
|
||||
# PDF analiza
|
||||
# PDF File analysis
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
**Za više detalja proverite:** [**https://trailofbits.github.io/ctf/forensics/**](https://trailofbits.github.io/ctf/forensics/)
|
||||
**Za više detalja pogledajte:** [**https://trailofbits.github.io/ctf/forensics/**](https://trailofbits.github.io/ctf/forensics/)
|
||||
|
||||
PDF format je poznat po svojoj složenosti i potencijalu za prikrivanje podataka, što ga čini centralnom tačkom za CTF forenzičke izazove. Kombinuje elemente običnog teksta sa binarnim objektima, koji mogu biti kompresovani ili enkriptovani, i može uključivati skripte u jezicima kao što su JavaScript ili Flash. Da bi se razumeo PDF struktura, može se konsultovati Didier Stevensov [uvodni materijal](https://blog.didierstevens.com/2008/04/09/quickpost-about-the-physical-and-logical-structure-of-pdf-files/), ili koristiti alati poput tekstualnog editora ili PDF-specifičnog editora kao što je Origami.
|
||||
PDF format je poznat po svojoj složenosti i potencijalu za prikrivanje podataka, što ga čini centralnom tačkom za CTF forenzičke izazove. Kombinuje elemente običnog teksta sa binarnim objektima, koji mogu biti kompresovani ili enkriptovani, i može uključivati skripte u jezicima kao što su JavaScript ili Flash. Da bi se razumeo PDF struktura, može se konsultovati [uvodni materijal](https://blog.didierstevens.com/2008/04/09/quickpost-about-the-physical-and-logical-structure-of-pdf-files/) Didijea Stivensa, ili koristiti alate poput tekstualnog editora ili PDF-specifičnog editora kao što je Origami.
|
||||
|
||||
Za dubinsko istraživanje ili manipulaciju PDF-ova, dostupni su alati poput [qpdf](https://github.com/qpdf/qpdf) i [Origami](https://github.com/mobmewireless/origami-pdf). Sakriveni podaci unutar PDF-ova mogu biti prikriveni u:
|
||||
|
||||
@ -15,6 +15,89 @@ Za dubinsko istraživanje ili manipulaciju PDF-ova, dostupni su alati poput [qpd
|
||||
- Tekstu iza slika ili preklapajućih slika
|
||||
- Neprikazanim komentarima
|
||||
|
||||
Za prilagođenu analizu PDF-a, Python biblioteke poput [PeepDF](https://github.com/jesparza/peepdf) mogu se koristiti za izradu specijalizovanih skripti za parsiranje. Pored toga, potencijal PDF-a za skladištenje skrivenih podataka je toliko veliki da resursi poput NSA vodiča o rizicima i protivmera vezanim za PDF, iako više nisu dostupni na svojoj originalnoj lokaciji, i dalje nude dragocene uvide. [Kopija vodiča](http://www.itsecure.hu/library/file/Biztons%C3%A1gi%20%C3%BAtmutat%C3%B3k/Alkalmaz%C3%A1sok/Hidden%20Data%20and%20Metadata%20in%20Adobe%20PDF%20Files.pdf) i kolekcija [trikova za PDF format](https://github.com/corkami/docs/blob/master/PDF/PDF.md) od Ange Albertinija mogu pružiti dodatno čitanje na ovu temu.
|
||||
Za prilagođenu analizu PDF-a, mogu se koristiti Python biblioteke poput [PeepDF](https://github.com/jesparza/peepdf) za kreiranje prilagođenih skripti za parsiranje. Pored toga, potencijal PDF-a za skladištenje skrivenih podataka je toliko veliki da resursi poput NSA vodiča o rizicima i protivmera vezanih za PDF, iako više nisu dostupni na svojoj originalnoj lokaciji, i dalje nude dragocene uvide. [Kopija vodiča](http://www.itsecure.hu/library/file/Biztons%C3%A1gi%20%C3%BAtmutat%C3%B3k/Alkalmaz%C3%A1sok/Hidden%20Data%20and%20Metadata%20in%20Adobe%20PDF%20Files.pdf) i kolekcija [trikova za PDF format](https://github.com/corkami/docs/blob/master/PDF/PDF.md) od Anže Albertinija mogu pružiti dodatno čitanje na ovu temu.
|
||||
|
||||
## Common Malicious Constructs
|
||||
|
||||
Napadači često zloupotrebljavaju specifične PDF objekte i akcije koje se automatski izvršavaju kada se dokument otvori ili interaguje s njim. Ključne reči koje vredi tražiti:
|
||||
|
||||
* **/OpenAction, /AA** – automatske akcije izvršene prilikom otvaranja ili na specifičnim događajima.
|
||||
* **/JS, /JavaScript** – ugrađeni JavaScript (često obfuskovan ili podeljen između objekata).
|
||||
* **/Launch, /SubmitForm, /URI, /GoToE** – pokretači spoljnog procesa / URL-a.
|
||||
* **/RichMedia, /Flash, /3D** – multimedijalni objekti koji mogu sakriti payload-e.
|
||||
* **/EmbeddedFile /Filespec** – privitci fajlova (EXE, DLL, OLE, itd.).
|
||||
* **/ObjStm, /XFA, /AcroForm** – tokovi objekata ili forme koje se često zloupotrebljavaju za skrivanje shell-koda.
|
||||
* **Inkrementalne nadogradnje** – više %%EOF oznaka ili veoma veliki **/Prev** offset može ukazivati na podatke dodate nakon potpisivanja kako bi se zaobišao AV.
|
||||
|
||||
Kada se bilo koji od prethodnih tokena pojavi zajedno sa sumnjivim stringovima (powershell, cmd.exe, calc.exe, base64, itd.), PDF zaslužuje dublju analizu.
|
||||
|
||||
---
|
||||
|
||||
## Static analysis cheat-sheet
|
||||
```bash
|
||||
# Fast triage – keyword statistics
|
||||
pdfid.py suspicious.pdf
|
||||
|
||||
# Deep dive – decompress/inspect the object tree
|
||||
pdf-parser.py -f suspicious.pdf # interactive
|
||||
pdf-parser.py -a suspicious.pdf # automatic report
|
||||
|
||||
# Search for JavaScript and pretty-print it
|
||||
pdf-parser.py -search "/JS" -raw suspicious.pdf | js-beautify -
|
||||
|
||||
# Dump embedded files
|
||||
peepdf "open suspicious.pdf" "objects embeddedfile" "extract 15 16 17" -o dumps/
|
||||
|
||||
# Remove passwords / encryptions before processing with other tools
|
||||
qpdf --password='secret' --decrypt suspicious.pdf clean.pdf
|
||||
|
||||
# Lint the file with a Go verifier (checks structure violations)
|
||||
pdfcpu validate -mode strict clean.pdf
|
||||
```
|
||||
Dodatni korisni projekti (aktivno održavani 2023-2025):
|
||||
* **pdfcpu** – Go biblioteka/CLI koja može da *lintuje*, *dekriptuje*, *izvlači*, *kompresuje* i *sanitizuje* PDF-ove.
|
||||
* **pdf-inspector** – vizualizator zasnovan na pretraživaču koji prikazuje graf objekata i tokove.
|
||||
* **PyMuPDF (fitz)** – skriptabilni Python motor koji može sigurno da prikazuje stranice kao slike kako bi aktivirao ugrađeni JS u zaštićenoj sandučici.
|
||||
|
||||
---
|
||||
|
||||
## Nedavne tehnike napada (2023-2025)
|
||||
|
||||
* **MalDoc u PDF poliglotu (2023)** – JPCERT/CC je primetio pretnje koje dodaju MHT-bazirani Word dokument sa VBA makroima nakon konačnog **%%EOF**, proizvodeći datoteku koja je i validan PDF i validan DOC. AV motori koji analiziraju samo PDF sloj propuštaju makro. Statične PDF ključne reči su čiste, ali `file` i dalje ispisuje `%PDF`. Svaki PDF koji takođe sadrži string `<w:WordDocument>` tretirati kao veoma sumnjiv.
|
||||
* **Shadow-incremental ažuriranja (2024)** – protivnici zloupotrebljavaju funkciju inkrementalnog ažuriranja da umetnu drugi **/Catalog** sa zloćudnim `/OpenAction` dok zadržavaju benignu prvu reviziju potpisanu. Alati koji inspektuju samo prvu xref tabelu su zaobiđeni.
|
||||
* **Lanac UAF za parsiranje fontova – CVE-2024-30284 (Acrobat/Reader)** – ranjiva funkcija **CoolType.dll** može se dostići iz ugrađenih CIDType2 fontova, omogućavajući daljinsko izvršavanje koda sa privilegijama korisnika kada se otvori kreirani dokument. Zakrpljeno u APSB24-29, maj 2024.
|
||||
|
||||
---
|
||||
|
||||
## YARA brza pravila šablon
|
||||
```yara
|
||||
rule Suspicious_PDF_AutoExec {
|
||||
meta:
|
||||
description = "Generic detection of PDFs with auto-exec actions and JS"
|
||||
author = "HackTricks"
|
||||
last_update = "2025-07-20"
|
||||
strings:
|
||||
$pdf_magic = { 25 50 44 46 } // %PDF
|
||||
$aa = "/AA" ascii nocase
|
||||
$openact = "/OpenAction" ascii nocase
|
||||
$js = "/JS" ascii nocase
|
||||
condition:
|
||||
$pdf_magic at 0 and ( all of ($aa, $openact) or ($openact and $js) )
|
||||
}
|
||||
```
|
||||
---
|
||||
|
||||
## Saveti za odbranu
|
||||
|
||||
1. **Brzo zakrpite** – održavajte Acrobat/Reader na najnovijem kontinuiranom traku; većina RCE lanaca zabeleženih u prirodi koristi n-dnevne ranjivosti koje su ispravljene mesecima ranije.
|
||||
2. **Uklonite aktivni sadržaj na ulazu** – koristite `pdfcpu sanitize` ili `qpdf --qdf --remove-unreferenced` da biste uklonili JavaScript, ugrađene datoteke i akcije pokretanja iz dolaznih PDF-ova.
|
||||
3. **Deaktivacija sadržaja i rekonstrukcija (CDR)** – konvertujte PDF-ove u slike (ili PDF/A) na sandbox hostu kako biste sačuvali vizuelnu vernost dok odbacujete aktivne objekte.
|
||||
4. **Blokirajte retko korišćene funkcije** – preduzeća “Poboljšana sigurnost” podešavanja u Reader-u omogućavaju onemogućavanje JavaScript-a, multimedije i 3D renderovanja.
|
||||
5. **Obrazovanje korisnika** – socijalni inženjering (mamci sa fakturama i rezimeima) ostaje inicijalni vektor; podučite zaposlene da proslede sumnjive priloge IR-u.
|
||||
|
||||
## Reference
|
||||
|
||||
* JPCERT/CC – “MalDoc u PDF-u – Zaobilaženje detekcije ugrađivanjem zlonamerne Word datoteke u PDF datoteku” (avgust 2023)
|
||||
* Adobe – Bezbednosno ažuriranje za Acrobat i Reader (APSB24-29, maj 2024)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user