guesses: 1 time: 0:00:00:44 29% c/s: 86654 trying: bja$on - m4ry4nnr guesses: 1 time: 0:00:06:27 100% c/s: 33653 trying: aamy1961 - bamy1969 ( password.txt: file passwd cần crack) JTR vừa crack được 1 passwd "thomas" của username "mrice"(passwd luôn đứng trước username). JTR cũng đang đoán các passwd từ bja$on -> m4ry4nnr. 1961, 1969? "Rất có thể có năm sinh của user trong passwd", JTR nghĩ vậy đó;) 2. Crack bằng wordlist (+ rules) - JTR đã có sẵn file wordlist "password.lst"! Bạn không cần phải thêm vào những từ đại loại như "tEST", "Test", Chỉ cần một từ "test" trong file wordlist là đủ. Khi crack bằng wordlist có dùng thêm rules, JTR sẽ tự động dùng thêm "tEST", "Test", , "test123", để đ oán passwd! C:\john>john password.txt -w:password.lst -rules Loaded 584 passwords with 128 different salts (Standard DES [24/32 4K]) julianne (thutchcr) mizzou (slymer) hal9000 (csalzman) hammer (preardon) scoobydo (sfuemmel) mylord (gdessieu) scoobydo (jreynold) guesses: 7 time: 0:00:00:46 100% c/s: 100468 trying: owl - 0wl (-w:<file wordlist>) JTR vừa đoán được 8 passwd! * Cách đặt luật cho JTR: để đặt luật cho chế độ crack bằng wordlist, bạn hãy hiệu chỉnh phần "List.Rules:Wordlist" trong file cấu hình của JTR, "john.ini" # Wordlist mode rules [List.Rules:Wordlist] (tất cả các dòng bắt đầu bằng dấu # trong file john.ini được coi là các dòng chú thích) Xem các ví dụ sau sẽ rõ về cách đặt luật cho JTR! >4<7 chỉ chọn các từ có chiều dài >4 && <7 kí tự, tức là dài 5->6 kí tự >5<7lc chỉ kiểm tra các từ dài 6 kí tự, sau đó viết thường(lowercase) & viết hoa kí tự đầu tiên(capital), aBcDeF -> Abcdef l<9/ese3 lowercase và swap 'e' thành '3'; loại bỏ các từ không chứa 'e' hoặc dài hơn 8 kí tự, tesT -> t3st >2<4/isi1 lowercase và swap 'i' thành '1'; loại bỏ các từ không chứa 'i' hoặc không dài đúng 3 kí t ự l<8/isi1^[0-9] lowercase, swap 'i' thành '1' và thêm 0-9 vào đầu; loại bỏ các từ không chứa 'i' hoặc dài quá 7 kí tự, Vicki -> 0v1ck1, 1v1ck1, 2v1ck1, , 9v1ck1 '7/ese3/isi1$[0-9] xén bớt các kí tự bên phải của các từ dài hơn 8 kí tự, swap 'e' thành 3 và 'i' thành '1', sau đó thêm 0-9 vào cuối; loại bỏ các từ không chứa 'i' & 'e', zhaowei-ww -> zhaow310, zhaow311, , zhaow319 >4<6T1^[0-9]^[0-9] từ phải dài 5 kí tự, đổi kiểu chữ của kí tự thứ 2(ở vị trí 1), sau đó thêm 0-9, 0-9(hai số sau của năm sinh) vào đầu, vIcki -> 00vicki, 10vicki, , 99vicki '7T0$[aeiou0-9] xén bớt các kí tự bên phải của các từ dài hơn 8 kí t ự, đổi kiểu chữ của kí tự thứ 1(ở vị trí 0), sau đó thêm các nguyên âm hoặc 0-9 vào sau, zhaowei1976 -> Zhaoweia, Zhaoweie, Zhaowei0, , Zhaowei9 i0[v]i3[k] chèn 'v' vào vị trí 0 và 'k' vào vị trí 3, ici -> vicki o4[123] ghi đè lên kí tự thứ 5(ở vị trí 4) bằng '1', '2' hoặc '3', zhaowei -> zhao1ei, zhao2ei, zhao3ei =0?d$7 bỏ qua các từ không bắt đầu bằng 1 digit, thêm 7 vào sau, 7vicki -> 7vicki7 @?w xoá bỏ các kí tự trắng, zhao wei -> zhaowei %2i chỉ chọn các từ có 2 chữ 'i' trở lên, vicki -> vicki Bạn có thể tìm thấy nhiều ví dụ khác trong file john.ini và tài liệu đi kèm của JTR. Nếu bạn muốn xem output của các luật mà bạn đã đặt, hãy nhập vào: john -w:wordfile.dic -rules -stdout > output.file 3. Incremental crack - chế độ này cho phép bạn đoán tất cả các khả năng của passwd. Bạn dùng tùy chọn - i:<mode> như sau: john password.txt -i:all thử hết mọi khả năng john password.txt -i:alpha passwd chỉ gồm các kí tự alpha(a-z) john password.txt -i:digits passwd chỉ gồm các kí tự số(0-9) Để cấu hình cho chế độ "Incremental", bạn hãy hiệu chỉnh phần "Incremental" trong file john.ini [Incremental:All] File = ~/all.chr MinLen = 0 MaxLen = 8 CharCount = 95 [Incremental:Alpha] File = ~/alpha.chr MinLen = 1 MaxLen = 8 CharCount = 26 [Incremental:Digits] File = ~/digits.chr MinLen = 1 MaxLen = 8 CharCount = 10 * Ngoài các tập kí tự mặc định all.chr, alpha.chr, digits.chr, , bạn có thể xây dựng cho mình một tập kí tự riêng để dùng trong chế độ crack "Incremental". Ở đây, tôi làm thử một ví dụ cho bạn thấy! Đầu tiên, chúng ta cần backup file john.pot. File này chứa các passwd vừa bị crack! copy john.pot john.bak del john.pot Giờ thì bạn mở Notepad, tạo file john.pot mới với nội dung như sau: :betyouca :ng351 Lưu ý, mỗi dòng trong file john.pot ph ải bắt đầu bằng một dấu ":", tiếp theo là các kí tự. Chiều dài tối đa của các kí tự trên một dòng(trừ dấu ":") là 8, tương ứng với maxlength của unix plaintext passwd! Lưu file john.pot và chạy JTR: C:\john>john -make:betyou.chr Loaded 2 plaintexts Generating cracking order DONE Successfully written charset file: betyou.chr (13 characters) Chúng ta vừa tạo xong file tập kí tự có tên là betyour.chr. Bây giờ bạn hãy hiệu chỉnh file john.ini, đến phần "Incremental" và thêm vào các dòng sau: [Incremental:betyou] File = ~/betyou.chr MinLen = 3 MaxLen = 7 CharCount = 13 File=~/betyou.chr(file tập kí tự, ~/ == home dir) MinLen=3 & MaxLen=7 -> JTR chỉ đoán các passwd có chiều dài từ 3->7 kí tự CharCount=13 -> số kí tự có trong tập kí tự này, đây là số mà thấy khi tạo file betyou.chr ở trước. Nếu bạn gán CharCount=100, JTR sẽ báo lỗi "chỉ có thể load được x kí tự". Hãy thay thế 100 bằng x Đến đây, chúng ta có th ể sử dụng tập kí tự mới để crack passwd. Bạn hãy nhập vào: john password.txt -i:betyou 4. External crack JTR còn cho phép bạn lập trình để crack passwd. Cú pháp lệnh y chang như của C vậy. Bạn hãy xem ví dụ sau, nó có nhiệm vụ lọc các từ có chứa kí tự alpha(a-z). [List.External:Filter_Alpha] void filter() { int i, c; i = 0; while (c = word[i++]) if (c < 'a' || c > 'z') { word = 0; return; } } Chi tiết về chế độ crack này, bạn xem thêm trong tài liệu hướng dẫn đi kèm của JTR! Tôi muốn nói thêm với các bạn một số vấn đề khác có liên quan khi crack passwd bằng JTR! - nếu bạn chỉ muốn crack các user hoặc group cụ thể nào đó, hãy dùng tùy chọn -user hoặc -group(xem ví dụ sau) john password.txt -user:LWait chỉ crack passwd của user "LWait" john password.txt -group:123 -i:custom chỉ crack passwd của các user trong group có ID là 123 - crack passwd là một công việc tốn khá nhiề u thời gian, có khi phải lên đến mấy ngày trời mới crack được vài passwd. Để tạm dừng tiến trình crack hiện tại, bạn hãy ấn Ctrl-C. Khi nào rãnh, bạn có thể restore lại tiến trình bằng cách gõ vào: john -restore . password.txt -w:password.lst -rules Loaded 584 passwords with 128 different salts (Standard DES [24 /32 4K]) julianne (thutchcr) mizzou (slymer) hal9000 (csalzman) hammer (preardon) scoobydo (sfuemmel)