Epostalar ile her gün çeşitli zararlı kodlar geliyor. Bunları açmadan (çift tıklayıp ilgili program ile görüntülenmesini sağlamadan) içeriğinde zararlı kodlar olup olmadığını anlayabilir miyim? Şu sayfadaki bilgiler hoşuma gitti, paylaşmak istedim.
PDF dosya yapısı şu şekilde tarif edilmiş:
Başlık
Gördüğüğüm kadarıyla tek satırlık, % işareti ile başlayıp dosya sürümünü gösteren bir veri.
%PDF-1.7
Gövde
Belgenin içinde yer alan bir dizi nesnenin listelendiği bölüm. Şu şekilde bir yapı:
1 0 obj ... 2 0 obj ... 3 0 obj ...
Çapraz Başvuru
Belge içinde farklı nesnelerin konumlarının yer aldığı bölüm. xref anahtar kelimesi ile başlayan şöyle bir yapı:
xref ...
Son bölüm
Belgenin kapanışının yapıldığı bölüm. trailer anahtar kelimesi ile başlıyor. Birden fazla trailer olabiliyor. En sonda da %%EOF gibi bir son bölüm oluyor.
trailer ... %%OEF
Tehlikeli olabilecek bölümler
/JavaScript or /JS: Belgede javascript kodu olduğunu gösterir. Bu kod belge açıldığında çalışabilir.
/Names: Dosyanın bir eki veya nesnesi olduğunu gösterir.
/OpenAction or /AA (Additional Action): Dosyanın otomatik bazı kodlar/nesneler çalıştırabileceğini gösterir.
/EmbeddedFile: Bu da dosyanın bir gömülü script/kod/dosya içerdiğini gösterir.
/URI or /SubmitForm: Dosyanın başka bir web adresine erişebileceğini veya harici HTML-form öğesine veri gönderebileceğini (post) gösterir
/Launch: PDF görüntüleyicinin başka bir program veya dosyayı çalıştırmasını ister. Dosyaya gömülü olmayan harici dosya veya programlar için.
Bunların herhangi biri net bir zararlı kod olduğunu tek başına göstermeyebilir. Ama bir /URI olması ve bunun dosya açıldığında tetiklenmesi, uzak bir komuta kontrol merkezindeki sunucudan zararlı bir kod indirdiğinin göstergesi olabilir.
İnceleme araçları
PDF dosyalarının meta verilerini incelemek için exiftool faydalı olabilir. Aracın geliştiricisi Phil Harvey. winget ile indirilebilecek kopya Oliver Betz'in paketlemesi gibi.
exiftool p.pdf
ExifTool Version Number : 13.59 File Name : p.pdf Directory : . File Size : 188 kB File Modification Date/Time : 2026:11:06 15:32:35+03:00 File Access Date/Time : 2026:11:06 17:50:34+03:00 File Creation Date/Time : 2026:11:06 15:32:36+03:00 File Permissions : -rw-rw-rw- File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.7 Linearized : No Page Count : 1 Language : en Tagged PDF : Yes XMP Toolkit : 3.1-701 Producer : Microsoft® Word 2024 Creator : Heritage Abajesude Creator Tool : Microsoft® Word 2024 Create Date : 2026:11:05 11:12:02+01:00 Modify Date : 2026:11:05 11:12:02+01:00 Document ID : uuid:FF8B01BC-ED4C-4316-842C-634C4A670C36 Instance ID : uuid:FF8B01BC-ED4C-4316-842C-634C4A670C36 Author : Heritage Abajesude
Sysinternals strings aracı da pdf dosyasının içindeki yapının çalıştırılmadan görüntülenmesini sağlayabilir.
strings64 .\p.pdf
Powershell ile komutun çıktısı içinde aramalar yapılabilir, sonuçlar filtrelenebilir:
strings64 .\p.pdf | sls "\d 0 obj"
Bir de strings'e satır numarası ekleyerek (dosyanın içindeki offset değerleri değil, sadece strings64 komutunun çıktısının içindeki satır numarası), bulunan ilgili satırın 5 öncesi ve 5 sonrasını da dahil ederek arama genişletilebilir.
$satir=0;strings64 .\p.pdf | % {"$satir $_";$satir++} | sls "/UR|/NAME|/JAVAS|/JS|/EMBED|/OpenAc|/AA|/Launch|eval|export" -context 5,5
Belgede dosyanın hash'inin hesaplanarak virustotal.com gibi bir sitede aratılması da önerilmiş.
Get-FileHash -path .pdf -Algorithm SHA256
Sıkça kullanılan pdfid.py ve pdfparser.py gibi araçlardan faydalanılabileceği de anlatılmış. Bu araçlar
pip install pdfid
gibi araçlarla edinilebileceği gibi
git clone https://github.com/DidierStevens/DidierStevensSuite.git
şeklinde Didier Stevens'ın Github'dan reposundan da indirilebilir
Riskli bölümler hakkında bir özet almak için pdfid.py kullanılabilir
pdfid.py supheli.pdf
PDF Header: %PDF-1.4 obj 23 endobj 23 stream 5 endstream 5 xref 1 trailer 1 startxref 1 /Page 1 /URI 2Ama bunların hiçbiri, dosyanın aslında içinde kullanıcıyı yanlış yönlendirmek için ne gibi bir kurmaca hazırladığını göstermez. Açmadan dosyanın için görmek için pdf'i bir resim dosyasına dönüştürecek araçlar kullanılabilir. Windows tarafında:
winget install --id oschwartz10612.Poppler -e
Veya linux tarafında:
sudo apt install poppler-utils
sudo apt install mupdf-tools
Örneğin aşağıdaki komutlar, supheli.pdf dosyasından supheli-1.png, supheli-2.png gibi resim dosyaları üretir:
pdftoppm -png -r 100 -f 1 -l 1 supheli.pdf sayfa
mutool draw -o sayfa-%d.png -r 100 supheli.pdf 1
Ama bu işlemlerin hepsinin bir sanal makinede yapılması önemle tavsiye edilir. PDF'i resme dönüştürecek araç bile istenmeden, sinsice tasarlanmış bir tuzak ile bazı mekanizmaları tetikleyebilir, zararlı yazılımı aktive edebilir.
---
[1] https://zeltser.com/analyzing-malicious-documents
[2] https://sansorg.egnyte.com/dl/YrwOdFIm1I
[3] https://amr-git-dot.github.io/malware%20analysis/Mal-Docs/
[3] https://medium.com/@alaamansouraliahmed/is-that-pdf-safe-how-to-spot-malicious-documents-before-you-open-them-de890ca10eac
Hiç yorum yok:
Yorum Gönder