PDF Araçları 1 – Pdfcrack Nasıl Kullanılır?

06.05.2016
3845 Okunma

pdfcrackEsen,
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

Henüz yorum bulunmuyor!