Esen,
PDF (Portable Document File) çok özel bir belge biçimi. Not defterinde ya da kelime işlecinde rahatlıkla değişiklik yaptığımız belgeler gibi değil. Ama bir resim gibi de değil. Bunlardan fazlası. PDF belge biçimini burada anlatmayacağım ama bu konuda da biraz bilgili olmak PDF üzerinde inceleme yapmak açısından çok yararlı. İnternette yapacağınız bir tarama ile bir çok şey bulabilirsiniz. Belki ben de ilerde bu konuyla ilgili bir belge hazırlarım.
Buradaki konumuz PDFCrack. Hem programı tanıtacağım hem de birkaç örnek uygulama ile PDFCrack’i nasıl kullanacağınızı ve sonuç alacağınızı anlatacağım.
Ben platform olarak OS X üzerinde çalışacağım ama PDFCrack Unix/Linux ortamında derlenip çalışabilen bir açık kaynak kodlu yazılım.
Program Kurulumu:
OS X:
brew install pdfcrack
PisiLinux 2.0:
sudo pisi it pdfcrack
Ubuntu/Debian:
sudo apt-get install pdfcrack
Yukarıdaki komutlar ile programı sisteminize kurabilirsiniz. Ya da kaynağından derleyebilirsiniz.(Kaynağından derlemek için pdfcrack dizinine girin ve komut satırında “make” komutunu çalıştırın.)
Windows kullanıcıları windows ortamlarına “cgywin” kurarak pdfcrack’i derleyebilirler.
Komut satırında iken “pdfcrack” komutunu verelim:
$ pdfcrack Usage: pdfcrack -f filename [OPTIONS] OPTIONS: -b, --bench perform benchmark and exit -c, --charset=STRING Use the characters in STRING as charset -w, --wordlist=FILE Use FILE as source of passwords to try -n, --minpw=INTEGER Skip trying passwords shorter than this -m, --maxpw=INTEGER Stop when reaching this passwordlength -l, --loadState=FILE Continue from the state saved in FILENAME -o, --owner Work with the ownerpassword -u, --user Work with the userpassword (default) -p, --password=STRING Give userpassword to speed up breaking ownerpassword (implies -o) -q, --quiet Run quietly -s, --permutate Try permutating the passwords (currently only supports switching first character to uppercase) -v, --version Print version and exit
Eğer Türkçeleştirmek gerekirse:
$ pdfcrack Kullanım: pdfcrack -f pdfdosyasi [OPTIONS] Kullanım Seçenekleri: -b, --bench değelendirme deneyi yap ve çık -c, --charset=STRING bir karakter seti olarak belirtilen karakterleri STRING olarak kullan -w, --wordlist=FILE FILE olarak belirtilen dosyayı denenecek sözük listesi olarak kullan -n, --minpw=INTEGER parola altı sınırı belirle -m, --maxpw=INTEGER parola üst sınırı belirle -l, --loadState=FILE FILENAME olarak belirtilen dosyadan taramaya devam et -o, --owner ownerpassword ile devam et -u, --user userpassword (varsayılan) ile çalış -p, --password=STRING kırma işlemini hızlandırmak için şifreyi kullan -q, --quiet sessiz çalış -s, --permutate şifreleri permütasyon yaparak dene (şimdilik sadece ilk karakteri bütük yapar) -v, --version progra sürümünü yaz ve çık
1. Elimizde hiçbir veri yok ise ve programın en temel kullanımı aşağıdaki şekildedir:
pdfcrack -f belge.pdf
Unutmayın ki bu işlem çok uzun sürecektir. PDFCrack kodlanması gereği sadece bir işlemci üzerinde %100 verimle çalışır. Bu işlemi uzattığı gibi işlemcinizin ısınmasına da neden olabilir. Şimdi bu işlemi kısaltmak için neler yapabiliriz bakalım.
2. -c parametresi kullanarak sadece belirlediğimiz karakterin permütasyonlarını denemesini sağlayabiliriz.
pdfcrack -f belge.pdf -c rslnkpa1234RSLNKP
Özellikle parolanın ne olacağına dair ufak ipuçları aklınızdaysa güzel bi seçenek -c parametresi.
3. Diyelimki birince maddede verilen komutla işleminize devam ediyorsunuz ve bilgisayarınızı kapatmanız gerekiyor veya işlemcinizin zarar görme olasılığı olduğunu öngörüyorsunuz o zaman “Ctrl+C” tuş kombinasyonu ile işlemi durdurabilirsiniz. Bu esnada PDFCrack yaptığı çalışmayı bir dosyaya daha sonra kaldığınız yerden devam edebilmeniz için kaydedecektir.
$ pdfcrack -f belge.pdf PDF version 1.6 Security Handler: Standard V: 2 R: 3 P: -1028 Length: 128 Encrypted Metadata: True FileID: 65426ee39cce4e75916d697956ed1153 U: f9fb133011e97f791cb09a8e1232e57a00000000000000000000000000000000 O: 1c4acd974dfed194eaa13a1cc50d7bb62933f70e31405849fffc0c2416dcf95a Average Speed: 48062.3 w/s. Current Word: '8cbd' . .#burayı kestim . Average Speed: 50485.2 w/s. Current Word: 'pKch' ^CCaught signal 2! Trying to save state... Successfully saved state to savedstate.sav!
Gördüğünüz gibi “savedstate.sav” dosyasına yaptığımız çalışmayı kaydetti.
4. Artık -l parametresi ile kaldığımız yerden devam edebiliriz:
$ pdfcrack -f belge.pdf -l savedstate.sav Loaded state for savedstate.sav #bu satırı görüyorsanız kaldığınız yerden devam ediyor demektir. PDF version 1.6 Security Handler: Standard V: 2 R: 3 P: -1028 Length: 128 Encrypted Metadata: True FileID: 65426ee39cce4e75916d697956ed1153 U: f9fb133011e97f791cb09a8e1232e57a00000000000000000000000000000000 O: 1c4acd974dfed194eaa13a1cc50d7bb62933f70e31405849fffc0c2416dcf95a Average Speed: 47309.4 w/s. Current Word: 'uskl' Average Speed: 44667.2 w/s. Current Word: 'gR4o' Average Speed: 45767.1 w/s. Current Word: 'QYUs' Average Speed: 46190.4 w/s. Current Word: 'ZiNw' Average Speed: 45772.2 w/s. Current Word: 'dsDA' Average Speed: 45906.0 w/s. Current Word: 'BiuE' . . .
5. -n ve -m adli iki parametre bize denenecek parolaların alt ve üst sınırını belirlememize yardımcı oluyor. Diyelim en az 5 karakter ve yukarısındaki parolaları denemek istiyoruz -n=5 parametresini kullanıyoruz:
pdfcrack -f belge.pdf -n=5
Sadece üst sınırda -m parametresi ile belirlenebilir. Mesela -m=8 ile sadece 8 haneye kadar olan parolaları deneyebiliriz:
pdfcrack -f belge.pdf -m=8
Bu iki parametreyi beraber de kullanabiliriz, 4 ve 10 hane arasında deneme yapması için,
pdfcrack -f belge.pdf -n=4 -m=10
yukardaki komut kullanılabilir. Parametreleri beraber kullanmakta çekinmemize gerek yok. Yukardaki örneğe birde sadece belirlediğimiz karakterler ile arama yapmasını söyleyebiliriz:
pdfcrack -f belge.pdf -n=4 -m=10 -c aAsSdDfFgG123456
6. -w parametresi ile de elimiz de eğer bir söz listesi (wordlist) varsa oradaki hazır parolaları pdfcrack programına denetebiliriz:
$ pdfcrack -f belge.pdf -w tbswordlist1.txt PDF version 1.6 Security Handler: Standard V: 2 R: 3 P: -1028 Length: 128 Encrypted Metadata: True FileID: 65426ee39cce4e75916d697956ed1153 U: f9fb133011e97f791cb09a8e1232e57a00000000000000000000000000000000 O: 1c4acd974dfed194eaa13a1cc50d7bb62933f70e31405849fffc0c2416dcf95a Average Speed: 46165.8 w/s. Current Word: 'petrolog' . .
7. Bir değerlendirme deneyi (benchmark test) yapabilirsiniz:
$ pdfcrack -f belge.pdf -b Benchmark: Average Speed (calls / second): SHA256 (fast): 2380515.9 SHA256 (slow): 1373205.6 MD5: 3060547.0 MD5_50 (fast): 145944.6 MD5_50 (slow): 126205.6 RC4 (40, static): 1154153.6 RC4 (40, no check): 1139891.3 RC4 (128, no check): 1421378.9 Benchmark: Average Speed (passwords / second): PDF (40, user): 817945.2 PDF (40, owner): 419588.3 PDF (40, owner, fast): 953425.2 PDF (128, user): 45652.8 PDF (128, owner): 22744.7 PDF (128, owner, fast): 47000.7
Çok İşlemci Kullanarak işleri Hızlandıralım
Diyelim ki 4 çekirdekli bir makinede çalışıyorsunuz. Bunun ikisini sadece şifre kırmak için kullnabilirsiniz. Küçük bir hile ile:
$ pdfcrack -f belge.pdf -n=6 & pdfcrack -f belge.pdf -c aAbB12 [1] 20689 PDF version 1.6 Security Handler: Standard V: 2 R: 3 P: -1028 Length: 128 Encrypted Metadata: True FileID: 65426ee39cce4e75916d697956ed1153 U: f9fb133011e97f791cb09a8e1232e57a00000000000000000000000000000000 O: 1c4acd974dfed194eaa13a1cc50d7bb62933f70e31405849fffc0c2416dcf95a PDF version 1.6 Security Handler: Standard V: 2 R: 3 P: -1028 Length: 128 Encrypted Metadata: True FileID: 65426ee39cce4e75916d697956ed1153 U: f9fb133011e97f791cb09a8e1232e57a00000000000000000000000000000000 O: 1c4acd974dfed194eaa13a1cc50d7bb62933f70e31405849fffc0c2416dcf95a Average Speed: 46734.8 w/s. Current Word: 'Si4c' Average Speed: 46710.6 w/s. Current Word: '1a2B21ab' Average Speed: 46349.2 w/s. Current Word: 'A1b2a1b2' Average Speed: 46315.1 w/s. Current Word: 'ehXg' found user-password: 'BaBa1212' Average Speed: 42945.1 w/s. Current Word: 'tIyk' Average Speed: 45653.1 w/s. Current Word: 'gfoo' Average Speed: 47523.9 w/s. Current Word: 'yvns' . . .
Burada iki işlemciyi birden kullanarak parola bulma süremizi ciddi oranda kısalttık. Ancak dikkat etmemiz gereken bir durum var. İşlemlerden biri parolayı bulunca, duruyor ve bulduğu parolayı ekrana yazıyor. Ancak diğer işlem henüz parolayı bulamadığı için aramaya devam ediyor. işlemler birbirlerinden bağımsız. Bu yüzden arada ekranı kontrol etmeyi unutmayın!
Ayrıca top/htop/atop gibi araçlar ile işlemlerinizi *nix sistemlerde denetleyerek çalıştırdığınız pdfcrack işlemlerinde birisiniz parolayı bulup bulmadığını da denetleyebilirsiniz.
Çok işlemli pdfcracki çalıştırdıktan sonra tüm pdfcrack uygulamaların *nix sistemelerde kapanmış olduğundan emin olmak için başka bir terminal ekranından aşağıdaki komutu çalıştırın:
killall pdfcrack
Sonuç:
PDFCrack, parolasını unuttuğunuz için açamadığınız pdf dosyalarını kurtarmak için birebir bir araçtır. Ancak düz bir şekilde kullanmak, parolayı bulmanız için günler heba etmeniz anlamına gelir. Bu nedenle ilgili parametreleri düzgün kullanmak işlerinizi hızlandıracaktır. PDFCrack pdf dosyanızdaki şifreyi kaldırmaz, sadece o şifreyi bulmanıza yardımcı olur. Bunun için değişik başka araçlar bulunmaktadır.
Bir yazının daha sonuna gelik görüşmek üzere.
Comments of this post