Khái quát về Hashcat-Utils
Giới thiệu về hashcat
Hashcat là một công cụ khôi phục mật khẩu mạnh mẽ, ban đầu có mã độc quyền cho đến năm 2015, sau đó được phát hành dưới dạng phần mềm mã nguồn mở Công cụ này hỗ trợ nhiều hệ điều hành như Linux, OS X và Windows, và có khả năng làm việc với nhiều thuật toán băm khác nhau, bao gồm LM, MD4, MD5, các định dạng thuộc gia đình SHA, Unix Crypt, cũng như các thuật toán được sử dụng trong MySQL và Cisco PIX.
Hashcat đã thu hút sự chú ý của công chúng nhờ vào những tối ưu hóa đáng kể, phần lớn dựa trên các lỗ hổng trong phần mềm khác mà người sáng lập Hashcat đã phát hiện Một ví dụ điển hình là lỗ hổng trong lược đồ băm của trình quản lý mật khẩu 1Password Ngoài ra, Hashcat cũng đã được so sánh với các phần mềm tương tự trong một ấn phẩm của Usenix và được mô tả trên Arsosystemca.
Tổng quan về hashcat-utils
Hashcat-Utils được biết đến như là một tập hợp các tiện ích nhỏ hữu ích trong việc bẻ khóa mật khẩu nâng cao
Trong Hashcat-Utils, các tệp nhị phân độc lập được đóng gói để thực hiện các chức năng cụ thể, giúp người dùng dễ dàng sử dụng từng công cụ một cách hiệu quả.
Hashcat Utils được phát hành dưới dạng phần mềm mã nguồn mở theo giấy phép MIT.
Danh sách các tiện ích trong Hashcat Utils
Cap2hccapx
Công cụ tạo tệp hccapx từ tệp chụp mạng (.cap hoặc pcap) giúp bẻ khóa xác thực WPA/WPA2 Các tệp hccapx này được sử dụng làm đầu vào cho loại băm -m 2500, tương ứng với WPA/WPA2.
$ /cap2hccapx.bin input.pcap output.hccapx [filter by essid] [mạng bổ sung essid: bssid]
Cleanup-rules
a Định nghĩa là loại bỏ các quy tắc khỏi STDIN không tương thích với một nền tảng được chỉ định b Cách sử dụng chế độ /cleanup-rules.bin
(Trong đó: chế độ là 1 = CPU, 2 = GPU)
Combinator
Chương trình này là một triển khai độc lập của Combinator Attrack
Mỗi từ trong file2 được nối với mỗi từ trong file1 và sau đó in ra STDOUT
Vì chương trình được yêu cầu tua lại các tệp nhiều lần nên chương trình sẽ không thẻ hoạt động với STDIN và yêu cầu các tệp thực
Một lựa chọn khác là lưu trữ toàn bộ nội dung từ cả hai tệp trong bộ nhớ Tuy nhiên, trong quá trình hash-crack, kích thước của từng tệp đóng vai trò rất quan trọng.
$ /combinator.bin : /combinator.bin file1 file2
Combinator3
Giống như combinator nhưng sẽ được thực hiện nối với 3 tệp file1,file2,file3 b Cách sử dụng
$ /combinator.bin : /combinator.bin file1 file2 file3
Combipow
a Định nghĩa và cách thức hoạt động Được thực hiện để tạo ra tất cả các từ trong một danh sách đầu vào b Cách sử dụng
$ combipow wordlist a b ab c ac bc abc
XYZ aXYZ bXYZ abXYZ cXYZ acXYZ bcXYZ abcXYZ
XYZ123 aXYZ123 bXYZ123 abXYZ123 cXYZ123 acXYZ123 bcXYZ123 abcXYZ123
Ct3_to_ntlm
NETNTLM_bs_fmt_plug.c: {"$ NETNTLM $ 1122334455667788 $
B2B2220790F40C88BCFF347C652F67A7C4A70D3BEBD70233", "cory21"}, Hoặc có thể sử dụng như này
./ct3_to_ntlm.bin C4A70D3BEBD70233 1122334455667788
./ct3_to_ntlm.bin 7D01513435B36DCA 1122334455667788
Cutb
Chương trình mới trong hashcat-utils-0.6 cho phép cắt một danh sách từ từ STDIN để phục vụ cho cuộc tấn công Combinator.
Chương trình này cắt bỏ độ dài tiền tố hoặc hậu tố cụ thể khỏi các từ trong danh sách, nhằm xử lý mật khẩu có độ dài đệm chung ở đầu hoặc cuối văn bản rõ Kết quả sẽ được chuyển đến STDOUT.
./cutb.bin offset [length] < infile > outfile
$ cat wordlist apple1234 theman fastcars
Sau khi lấy ra các từ bắt đầu từ vị trí 0 và kết thúc vị trí 4
$ /cutb.bin 0 4 < wordlist appl them fast
Sau khi lấy ra các từ từ vị trí 4
$ /cutb.bin 4 < wordlist e1234 an cars
Sau khi lấy ra 4 kí tự cuối của các từ
$ /cutb.bin -5 3 < wordlist e12 hem tca Đề suất sử dụng
Deskey_to_ntlm
./deskey_to_ntlm.pl 8-byte-key-in-hex
Expander
Mỗi từ nhập vào STDIN sẽ được phân tích cú pháp, tách thành các ký tự đơn lẻ, sau đó được biến đổi và tái tạo, cuối cùng được gửi đến STDOUT.
• Có một số cấu trúc tạo lại tất cả các mẫu có thể có của từ đầu vào bằng cách áp dụng các lần lặp sau:
Tất cả các mẫu có thể có độ dài tối đa là 4, được quy định trong macro LEN_MAX Bạn có thể điều chỉnh và tăng độ dài này trong mã nguồn nếu cần thiết.
▪ Tất cả các hiệu số có thể có của từ
▪ Chuyển từ sang phải cho đến khi đủ chu kỳ
▪ Chuyển từ sang trái cho đến khi đủ một chu kỳ
$ echo pass1 | /expander.bin | sort -u
1pas a as ass ass1 p pa pas pass s s1 s1p s1pa ss ss1 ss1p
Gate
Mỗi danh sách từ được nhập vào từ STDIN sẽ được phân tích cú pháp và chia thành các phần bằng nhau Sau đó, các phần này sẽ được chuyển đến STDOUT theo số lượng mà bạn chỉ định Việc chia tách này nhằm mục đích phân phối khối lượng công việc một cách hiệu quả.
$ /gate.bin usage: /gate.bin mod offset < infile > outfile
Trong đó hai tham số quan trọng là "mod" và "offset"
Mod: số lần bạn muốn tách từ điển của mình
Offset: là phần tách đang nhận được nguồn cấp dữ liệu đó
Ví dụ từ điển đầu vào
Sau khi tách từ điển trên thành 2 từ điển bằng nhau
Generate-rules
• Để tạo ra các chuỗi ngẫu nhiên b Cách sử dụng
• Tạo 10 quy tắc ngẫu nhiên với đầu vào là “42”
Hcstatgen
• Là một công cụ được sử dụng để tạo tệp hcstat để sử dụng với –markov- hcstat tham số của hashcat cũ hơn và với bộ xử lý statsprocessor
Lưu ý rằng đầu ra do hcstatgen tạo ra không còn được hỗ trợ bởi phiên bản hashcat hiện tại và không cho phép mật khẩu dài hơn 256 ký tự Để thay thế, hãy sử dụng hcstat2gen.
./hcstatgen.bin out.hcstat < infile Mỗi tệp outfile sẽ có kích thước chính xác là 32,1MB.
Hcstat2gen
• Một công cụ để tạo thống kê Markov tùy chỉnh, để sử dụng (sau khi nén LZMA) với tham số của hashcat markov-hcstat(sắp có markov-hcstat2)
Hcstat2gen là phiên bản nâng cấp của hcstatgen, được cập nhật đồng bộ với hashcat 4.0, cho phép hỗ trợ độ dài mật khẩu tối đa lên đến 256 ký tự và bổ sung thêm tiêu đề loại tệp.
./hcstat2gen.bin hcstat2_output_raw.bin output.hcstat2
• Mỗi tệp thô phải có kích thước khoảng 132MB (với kích thước thay đổi sau khi nén)
• Lưu ý rằng định dạng mới hơn này chưa được statsprocessor hỗ trợ
Keyspace
./keyspace.bin, tiện ích keyspace cho hashcat Cách sử dụng: /keyspace.bin [options] mask
-m, hash-type = NUM Hash-type
- -hex-charset Giả sử bộ ký tự được cung cấp dưới dạng hex
markov-hcstat = FILE Chỉ định tệp hcstat để sử dụng, mặc định là hashcat.hcstat -t, markov-ngưỡng = NUM Ngưỡng cho markov-chain
-1, custom- charset1 = CS Bộ mã do người dùng định nghĩa
-2, custom-charset2 = CS Ví dụ:
-3, custom-charset3 = CS custom-charset3 =? dabcdef: đặt bộ mã? 3 thành 0123456789abcdef
-4, custom -charset4 = CS custom-charset4 =? l? u: đặt bộ ký tự? 4 cho tất cả các chữ cái thường và chữ hoa
Len
Mỗi từ được nhập vào từ STDIN sẽ được phân tích theo độ dài của nó và chỉ những từ phù hợp với phạm vi độ dài đã chỉ định sẽ được chuyển tới STDOUT.
./len.bin min max outfile
Ví dụ: Từ điển đầu vào
Từ điển đầu ra với các từ có độ dài 2 4
Mli2
• Được sử dụng để hợp nhất 2 danh sách b Cách sử dụng
Morph
• Được sử dụng để chèn các chuỗi kí tự từ 1 vị trí xác định b Cách sử dụng
./morph.bin dictionary depth width pos_min pos_max Dictionary: Danh sách từ dùng để phân tích tần số
Depth: Xác định chuỗi “đầu tiên” mà bạn muốn
Width: Chiều dài tối đa của chuỗi
Pos_min: Vị trí đầu nơi quy tắc chèn được tạo
Pos_max: Vị trí cuối nơi quy tắc chèn được tạo
Permute
• Được sử dụng với mục đích trong Permutation Attack b Cách sử dụng
Ví dụ: Từ 1 chuỗi ABC ta có thể hoán vị ra để tạo ra nhiều chuỗi khác: ABC ACB BCA BAC CAB CBA
Permute_exist
./permute_exist.bin word < infile > outfile
Prepare
• Được tạo ra để tối ưu hóa cho Permutation Attack b Cách sử dụng
• Do bản chất của chính thuật toán hoán vị, các từ đầu vào “BCA” và “CAB” sẽ tạo ra các ứng cử viên mật khẩu giống hệt nhau
Cách hiệu quả nhất để khắc phục những "lỗi sai" này là tái cấu trúc lại đầu vào dựa trên giá trị ASCII của từng ký tự trong từ.
3 A ⇒ 0x41 Đầu ra: ABC Đầu vào:
Sử dụng hàm prepare để sắp xếp lại
$ /prepare.bin < rockyou.txt | sort -u > rockyou.txt.prep
Remaining
./remaining.pl wordlist_base.txt wordlist_search.txt
Rli
• Được tạo ra để so sánh 1 tệp này với 1 tệp khác để loại bỏ tất cả các thành phần trùng lặp b Cách sử dụng rli infile outfile removefiles
Ví dụ: Tệp w1.txt password
Sử dụng lệnh: rli w1.txt OUT_FiLE.txt w2.txt
OUT_FILE.txt password cards aceofspades veryfast
Rli2
• Không giống với rli thì rli2 không có giới hạn Nhưng rli2 yêu cầu các file đầu vào phải được sắp xếp theo thứ tự alphabet b Cách sử dụng
Ví dụ: Tệp w1.txt password
Sử dụng lệnh này để sắp xếp theo thứ tự alphabet sort w1.txt > w1su.txt sort w2.txt > w2su.txt
Sử dụng lệnh: rli2 w1su.txt w2su.txt ta sẽ nhận được kết quả aceofspades cards password veryfast
Splitlen
• Chương trình này được thiết kế để trở thành một trình tối ưu hóa từ điển cho oclHashcat hiện không được dung nữa
Lưu ý: hashcat hiện đại không cần tối ưu hóa này nữa
OclHashcat yêu cầu một phương pháp đặc biệt để tải từ điển, khác với CPU hashcat Để tối ưu hóa việc sử dụng từ điển với oclHashcat, bạn nên sắp xếp từng từ theo độ dài và lưu chúng vào các tệp riêng biệt trong một thư mục cụ thể Sau đó, bạn có thể chạy oclHashcat ở chế độ thư mục để đạt hiệu quả tốt nhất.
$ /splitlen.bin : /splitlen.bin goneir combined_wordlist.txt
Ta được file sau khi đã kết hợp từ 2 file cho trước
Hình 4.3: Combinator Attack 2 từ điển 4
Sử dụng cap2hccapx để chuyển đổi handshake mà thành hàm băm mà hashcat có thể crack
Sử dụng cap2hccapx để lấy thông tin ESSID và BSSSID 6
Lấy thông tin chi tiết về 1 card mạng có sẵn 7