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