Hướng dẫn sử dụng Hashcat: Làm sao sử dụng chương trình để bẻ khoá mật khẩu.

Trong hướng dẫn này, tôi nhấn mạnh vào các bước cơ bản nhất của việc sử dụng Hashcat, và trình bày một cách chi tiết các chế độ hoạt động chính của chương trình. Hướng dẫn này được thiết kế cho người mới bắt đầu. Tôi hy vọng nó sẽ giúp giảm bớt số lượng câu hỏi "ngây thơ" của các bạn.

Làm sao để khởi chạy và sử dụng hashcat?


Hashcat là một chương trình để bẻ khoá mật khẩu, đây là một ứng dụng mạnh mẽ với rất nhiều tính năng.

Tuy nhiên, đây không phải là chương trình dễ sử dụng nhất, do đó bạn cần dành thời gian để học nó. Trong hướng dẫn này, các tình huống cơ bản nhất với hashcat sẽ được mô tả.

Chúng ta sẽ xem xét những câu hỏi rất "ngây ngô" như "làm sao để khởi chạy hashcat". Và phức tạp hơn như "thành phần chính xác của mặt nạ", "bộ ký tự tùy chỉnh", "các tùy chọn chương trình", cùng với các vấn đề cần giải quyết khác.

Điểm đặc biệt của hashcat là xử lý với tốc độ rất nhanh những mật khẩu theo kiểu "vét cạn" (brute-force). Điều đó đạt được thông qua việc sử dụng đồng thời tất cả các GPU, cũng như CPU trong hệ thống. Để hashcat thực sự làm việc hiệu quả, cần đảm bảo rằng hệ thống của bạn được lắp đặt card đồ hoạ (ví dụ: AMD, NVIDIA,...).

Khi tôi click vào hashcat64.exe, một cửa sổ màu đen hiện ra và lập tức biến mất sau đó. 


Hashcat là một tiện ích command-line. Vì vậy, nó không có giao diện đồ họa ở dạng cửa sổ quen thuộc. Do đó, người dùng Windows thường khó khăn khi tiếp cận với nó.

Giờ chúng ta sẽ bắt đầu học cách sử dụng nó. Trước tiên, hãy khởi chạy ứng dụng dòng lệnh (Command Prompt hoặc PowerShell). Để thực hiện việc này, nhấn Win + X và chọn Windows PowerShell (tương tự với Command Prompt):

Hướng dẫn sử dụng Hashcat: Làm sao sử dụng chương trình để bẻ khoá mật khẩu.

Sau đó, bạn có thể làm theo một trong hai cách:

- Tùy chọn đầu tiên: bạn chỉ việc kéo-thả tệp thực thi vào cửa sổ lệnh. Tệp thực thi là hashcat64.exe hoặc hashcat32.exe tùy thuộc vào hệ thống của bạn.

- Tùy chọn thứ hai: trên cửa sổ dòng lệnh, bạn có thể thay đổi thư mục làm việc hiện tại thành thư mục chứa các tệp thực thi.

Ví dụ: hashcat64.exe của tôi nằm trong thư mục hashcat-4.1.0 theo đường dẫn "C:\Users\Alex\Downloads\hashcat-4.1.0\". Tôi tiến hành sử dụng lệnh cd, theo sau đó là đường dẫn chỉ định tới thư mục mong muốn. Câu lệnh sẽ giống như sau:


cd C:\Users\Alex\Downloads\hashcat-4.1.0\

Hướng dẫn sử dụng Hashcat: Làm sao sử dụng chương trình để bẻ khoá mật khẩu.

Như ảnh trên, đường dẫn "C:\WINDOWS\system32" được đổi thành "C:\Users\Alex\Downloads\hashcat-4.1.0".

Giờ để bắt đầu, ta cần nhập tên tệp thực thi. Lưu ý: đằng trước nó ta cần thêm cặp kí tự ".\" (điều này nhằm biểu thị cho chương trình dòng lệnh hiểu tệp thực thi ta nhập nằm trong thư mục đã chỉ định).


.\hashcat64.exe

Hướng dẫn sử dụng Hashcat: Làm sao sử dụng chương trình để bẻ khoá mật khẩu.

Vì không nhập thêm bất kỳ tùy chọn nào, nên không có gì xảy ra, chỉ có một gợi ý ngắn gọn được hiển thị (Try --help for more help).

Xuyên suốt hướng dẫn này, tôi sẽ chạy file thực thi hashcat kèm với các tùy chọn (option). Tùy chọn đơn giản nhất là -h, khi viết nó kèm theo sau tệp thực thi, bạn sẽ nhận được một tài liệu tham khảo cho việc sử dụng hashcat:


.\hashcat64.exe -h

Hướng dẫn sử dụng Hashcat: Làm sao sử dụng chương trình để bẻ khoá mật khẩu.

Tải xuống hashcat


Tải xuống hashcat từ trang web chính thức theo liên kết: https://hashcat.net/hashcat/

Bạn sẽ thấy:

Hướng dẫn sử dụng Hashcat: Làm sao sử dụng chương trình để bẻ khoá mật khẩu.

Trang web có hashcat binarieshashcat sources. Đầu tiên là file binary (thực thi), thứ hai là mã nguồn. Chúng ta cần binaries, tức là hashcat binaries.

Cài đặt hashcat


Hashcat không yêu cầu cài đặt, vì nó là một chương trình portable. Tệp nén đã tải xuống cần được giải nén. Nếu bạn gặp vấn đề với việc giải nén định dạng .7z, thì hãy sử dụng chương trình 7-Zip, WinRAR hay các phần mềm tương tự.

Để chạy hashcat, cần phải cài đặt trình điều khiển mới nhất cho GPU.

Trình điều khiển cho hashcat


Các trình điều khiển sau được yêu cầu cho GPU:

  • GPU AMD trên Windows yêu cầu "AMD Radeon Software Crimson Edition" (15.12 trở lên).
  • CPU Intel yêu cầu "OpenCL Runtime cho Intel Core và Intel Xeon Processors" (16.1.1 trở lên).
  • GPU-onboard Intel trên Windows yêu cầu "OpenCL Driver cho Intel Iris và Intel HD Graphics".
  • GPU NVIDIA yêu cầu "Trình điều khiển NVIDIA" (367.x trở lên).

Nhiều khả năng, trình điều khiển cho card đồ họa AMD và NVIDIA trong Windows đã được cài đặt hoặc bạn đã biết cách cài đặt chúng.

Do đó, tôi sẽ chỉ nói về OpenCL Runtime và cài đặt trình điều khiển OpenCL.

OpenCL Runtime bao gồm trình điều khiển Windows, vì vậy bạn chỉ cần tải xuống một file với OpenCL Runtime cho Intel Core, Intel Xeon Processors Windows. Ví dụ: phiên bản mới nhất hiện nay: "OpenCL ™ Runtime 16.1.2 for Intel® Core ™ and Intel® Xeon® Processors for Windows (64-bit & 32-bit)".

*Tên phiên bản có thể thay đổi tuỳ thuộc vào nhà phát hành và thời gian bạn đọc được bài viết

Phiên bản mới nhất của gói này có thể được tìm thấy trên trang web chính thức của Intel: https://software.intel.com/en-us/articles/opencl-drivers#latest_CPU_runtime

Các tuỳ chọn trong hashcat (Hashcat options)


Làm việc với chương trình trong giao diện dòng lệnh rất khác so với trong giao diện đồ họa. Trong GUI (Graphical User Interface), chúng ta nhấn các nút khác nhau, di chuyển các lựa chọn,... điều này không đúng đối với giao diện dòng lệnh. Nhưng đồng thời, tiện ích dòng lệnh có khả năng, thậm chí còn lớn hơn một số chương trình tương tự có giao diện đồ hoạ. Để kiểm soát chức năng của trình điều khiển, các tùy chọn (option) được sử dụng.

Trong đầu ra của --help có lẽ bạn nhận thấy rất nhiều thông tin. Các thông tin này chủ yếu nói về các tuỳ chọn được dùng trong hashcat.

Các tuỳ chọn này sẽ viết sau tên tệp thực thi (các tuỳ chọn cách nhau bởi dấu cách). Một số tuỳ chọn yêu cầu một giá trị nhất định trước khi sử dụng. Một số được sử dụng mà không có giá trị (các tùy chọn như vậy được gọi là "flags").

Tùy chọn có thể được sử dụng một lần hoặc nhiều lần. Với sự trợ giúp của các tùy chọn, bạn có thể cấu hình chương trình để nó hoạt động theo ý muốn và đạt hiệu suất tối đa.

Với một tùy chọn chúng ta đã có, đó là tùy chọn -h, nó hiển thị những trợ giúp của hashcat. Tiếp theo, chúng ta sẽ đi tìm hiểu các tuỳ chọn khác, và nó mang nhiều chức năng hơn.

Chạy hashcat benchmark


Tùy chọn -b sẽ bắt đầu hashcat benchmark. Benchmark này đo tốc độ kiểm tra mật khẩu.

Chạy benchmark sẽ thành công chỉ khi các trình điều khiển được cài đặt chính xác và mọi thứ đều hoạt động ổn định. Do đó, benchmark cũng là một cách để kiểm tra hệ thống và hashcat.

Để chạy kiểm tra tốc độ brute-force trên các thuật toán phổ biến nhất ta gõ vào dòng lệnh sau:


.\hashcat64.exe -b

Hướng dẫn sử dụng Hashcat: Làm sao sử dụng chương trình để bẻ khoá mật khẩu.

Để kết thúc sớm, nhấn CTRL + C. Phím tắt này dừng tất cả các tiện ích command-line ngay lập tức. Hãy nhớ sự kết hợp này!

Tốc độ được hiển thị riêng cho từng thiết bị, cũng như cho tất cả các thiết bị được kết hợp (dòng Speed.Dev.#*).

Thí dụ:


Hashmode: 2500 - WPA/WPA2 (Iterations: 4096)
 
Speed.Dev.#1.....:     5591 H/s (46.19ms) @ Accel:512 Loops:256 Thr:1 Vec:4
Speed.Dev.#2.....:    22374 H/s (69.23ms) @ Accel:128 Loops:32 Thr:256 Vec:1
Speed.Dev.#3.....:      171 H/s (1205.03ms) @ Accel:1024 Loops:128 Thr:1 Vec:4
Speed.Dev.#*.....:    28136 H/s

Khi chương trình được khởi chạy, một chữ số sẽ được gán ở đầu cho thiết bị tương ứng, ví dụ:


OpenCL Platform #1: Intel(R) Corporation
========================================
* Device #1: Intel(R) Core(TM) i7-3630QM CPU @ 2.40GHz, 4085/16342 MB allocatable, 8MCU
 
OpenCL Platform #2: Advanced Micro Devices, Inc.
================================================
* Device #2: Capeverde, 1523/2048 MB allocatable, 10MCU
* Device #3: Intel(R) Core(TM) i7-3630QM CPU @ 2.40GHz, 4085/16342 MB allocatable, 8MCU

Cảnh báo và lỗi khi chạy hashcat


Ngay lập tức khi bắt đầu benchmark, lỗi có thể xuất hiện. Ví dụ:


* Device #3: Not a native Intel OpenCL runtime. Expect massive speed loss.
             You can use --force to override, but do not report related errors.

Lỗi nói rằng: môi trường được sử dụng để khởi chạy ở đây không phù hợp với Intel OpenCL, dự kiến ​​sẽ mất một tốc độ đáng kể. Vì lý do này, các thiết bị OpenCL sẽ bị bỏ qua (trong ảnh chụp màn hình bên dưới, nó được hiển thị bằng từ "skipped"). Nếu chúng ta muốn tiếp tục sử dụng chúng, chúng ta cần thêm tùy chọn --force.

Hướng dẫn sử dụng Hashcat: Làm sao sử dụng chương trình để bẻ khoá mật khẩu.

Chạy benchmark với hai tùy chọn:


.\hashcat64.exe -b --force

Nếu bạn vẫn bị thiếu một số Device, thì bạn có thể thêm một tùy chọn -D. Sau tùy chọn này, bạn cần thêm một chữ số hoặc chữ số cho biết loại Device:


 # | Device Type
===+=============
 1 | CPU
 2 | GPU
 3 | FPGA, DSP, Co-Processor

Hãy chú ý đến một điểm rất quan trọng: một chữ cái viết hoa được sử dụng ở tuỳ chọn. Tuỳ chọn phân biệt chữ hoa-thường (sensitive). Tức là một chữ cái viết hoa có thể có một ý nghĩa khác, thậm chí hoàn toàn khác với chữ cái viết thường.

Vì vậy, 1 là CPU và 2 là GPU. Sau đây là lệnh đầy đủ, cùng với việc lựa chọn tất cả các thiết bị có sẵn cho tôi, sẽ giống như sau:


.\hashcat64.exe -b --force -D 1,2

Làm thế nào sử dụng hashcat


Cấu trúc chung của chương trình như sau:


hashcat [options]... hash|hashfile|hccapxfile [dictionary|mask|directory]...

Ở đây hashcat là tên của tệp thực thi, trong ví dụ của tôi là .\hashcat64.exe.

Phân chia bởi dấu cách (space), theo sau là các file thực thi.

Kí tự | (pipe) trong trường hợp này có nghĩa logic là "HOẶC". Do đó theo sau là các tùy chọn tệp mã băm HOẶC file chứa tệp mã băm HOẶC file hccapx. Và tiếp sau là từ điển HOẶC mặt nạ HOẶC thư mục theo sau mã băm. Còn tuỳ vào loại tấn công được chọn.

Xem xét việc sử dụng chương trình trên các ví dụ cụ thể. Giả sử chúng ta có mã băm 53ab0dff8ecc7d5a18b4416d00568f02, cần được bẻ khóa. Mã băm này được biết là đã thu được bằng thuật toán MD5 (tức là đó là mã băm MD5). Người ta cũng biết rằng chuỗi được mã hóa chỉ bao gồm các chữ cái thường của bảng chữ cái tiếng Anh và có độ dài từ sáu đến mười ký tự.

Tiếp theo, tôi sẽ chỉ cho bạn cách khởi chạy một cuộc tấn công mật khẩu bằng nhiều thủ thuật khác nhau.

Chỉ định loại mã băm


Các hash khác nhau được tính bằng các thuật toán khác nhau. Tương tự, việc bẻ khóa chúng được thực hiện bằng các thuật toán khác nhau. Để khởi chạy chính xác một cuộc tấn công trong hashcat, bạn phải chỉ định loại mã băm cần "tấn công". Để thực hiện việc này, hãy sử dụng tùy chọn -m, sau đó bạn phải chỉ định một số tương ứng với loại mã băm đã chọn.

Trong baseline, chúng ta được cho rằng mã băm được cung cấp là MD5. Vì vậy, trên trang https://en.kali.tools/?p=155 chúng ta tìm kiếm "MD5":


Hướng dẫn sử dụng Hashcat: Làm sao sử dụng chương trình để bẻ khoá mật khẩu.

Tương ứng với mã băm được tìm thấy, hãy nhìn vào cột "#". Trong trường hợp này, con số này là "0".

Vì vậy, với lệnh khởi chạy hashcat, bạn cần thêm -m 0 theo sau tên tệp thực thi, đó là tùy chọn kèm giá trị của nó.

Nếu chúng ta nhận được mã băm SHA1, thì số của nó sẽ là 100. Với lệnh khởi chạy hashcat, chúng ta sẽ thêm -m 100, và tương tự cho bất kỳ thuật toán nào khác.

Thông thường, một loại hash được biết đến từ nơi loại hash này được lấy. Trong trường hợp loại hash cần "tấn công" không đáng tin cậy, bạn có thể thử "đoán" nó với sự trợ giúp của các công cụ chuyên dụng.

Các chế độ tấn công hashcat


Hashcat hỗ trợ các chế độ tấn công khác nhau, phổ biến nhất là:

  • Tấn công từ điển, khi một danh sách các từ được sử dụng làm "phép thử" mật khẩu.
  • Tấn công mặt nạ (brute-force), khi các "phép thử" mật khẩu được tạo ra dựa trên các tiêu chí được mô tả.

Sử dụng tùy chọn -a để chỉ định chế độ tấn công. Với nó, bạn có thể chỉ định bất kỳ loại tấn công nào được hỗ trợ trong hashcat, phổ biến nhất là tấn công từ điển được chỉ định bằng số 0 và tấn công mặt nạ (brute-force) được chỉ định bởi số 3.

Vì vậy, nếu tôi bắt đầu một cuộc tấn công từ điển, thì ta chỉ định -a 0. Và nếu ta bắt đầu tấn công mặt nạ, thì chúng ta chỉ định -a 3.

Tấn công từ điển trong hashcat


Cuộc tấn công bắt đầu với từ điển như sau:


hashcat [options] hash|hashfile|hccapxfile path_to_dictionary

Để bẻ khóa mã băm của chúng ta, hãy tạo một từ điển nhỏ: một file văn bản thông thường có tên dictionary.txt và sao chép vào đó những dòng sau:


00001080
00001111
85be028
85cheyenne
85e6196a
85gpn
aaaa1111
aaaa1113
aaaaa
aaaaaa
aaaaaa1
aaaaaa55
aaaaaaA1
aaaaaaa
aaaaaaa7
aaaaaaaa
aaaaaaaaaa
aaabbb
aaabbbc
aaasss
aaawin
aab
aabbccdd
dancing2009
danciotu
dandan1243
dandan44
dandans
dandik06
dandy
dandy624
hackware
nord8899
nordeng86
norderst
nordikmix
nordmann25
nordrein
nordvik81
nordwich
yw123123
yw19920
ywa5115
ywab1402
ywhjia4f
ywidv
ywj7516
ywjpheej

Lưu ý: file dictionary.txt phải được lưu cùng thư mục với hashcat64.exe. Nếu không bạn sẽ phải chỉ rõ đường dẫn tới nó.

Đến giai đoạn này chúng ta đã có đủ mọi thứ cần thiết để khởi động một cuộc tấn công từ điển. Ta sẽ sử dụng mọi thứ đã học được để bắt đầu bẻ khoá mật khẩu.


.\hashcat64.exe -m 0 -a 0 53ab0dff8ecc7d5a18b4416d00568f02 dictionary.txt

Ở đây:

  • .\hashcat64.exe là file thực thi.
  • -m 0 là một tùy chọn, đặt loại mã băm MD5.
  • -a 0 là một tùy chọn, giá trị này kích hoạt một cuộc tấn công từ điển.
  • 53ab0dff8ecc7d5a18b4416d00568f02 là một mã băm cần bẻ khóa.
  • dictionary.txt là một đường dẫn đến file từ điển.

Vì từ điển rất nhỏ, chương trình sẽ hoàn thành công việc của nó rất nhanh:

Hướng dẫn sử dụng Hashcat: Làm sao sử dụng chương trình để bẻ khoá mật khẩu.

Kết quả của chương trình:


53ab0dff8ecc7d5a18b4416d00568f02:hackware
  
Session..........: hashcat
Status...........: Cracked
Hash.Type........: MD5
Hash.Target......: 53ab0dff8ecc7d5a18b4416d00568f02
Time.Started.....: Mon Mar 05 07:23:25 2018 (0 secs)
Time.Estimated...: Mon Mar 05 07:23:25 2018 (0 secs)
Guess.Base.......: File (dictionary.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.Dev.#1.....:    17783 H/s (0.04ms) @ Accel:1024 Loops:1 Thr:1 Vec:4
Speed.Dev.#2.....:        0 H/s (0.00ms) @ Accel:256 Loops:1 Thr:256 Vec:1
Speed.Dev.#3.....:    12530 H/s (0.03ms) @ Accel:1024 Loops:1 Thr:1 Vec:4
Speed.Dev.#*.....:    30313 H/s
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 24/48 (50.00%)
Rejected.........: 0/24 (0.00%)
Restore.Point....: 0/48 (0.00%)
Candidates.#1....: aaaaaaaaaa -> dancing2009
Candidates.#2....: [Copying]
Candidates.#3....: danciotu -> hackware
HWMon.Dev.#1.....: N/A
HWMon.Dev.#2.....: Util: 37% Core: 800MHz Mem:1000MHz Bus:16
HWMon.Dev.#3.....: N/A

Dòng đầu tiên là 53ab0dff8ecc7d5a18b4416d00568f02: hackware chứa mã băm bị tấn công và sau dấu hai chấm là mật khẩu bị crack, trong trường hợp này là hackware.

Về việc crack thành công sẽ chỉ ra ở dòng Status ………..: Cracked.

Mã băm không cần phải được chỉ định trong command-line, nó có thể được ghi vào một file. Sau đó khi cuộc tấn công được khởi chạy, đường dẫn đến tệp chứa mã băm cần được chỉ định. Ví dụ: tạo file hashmd5.txt và sao chép vào đó chuỗi "53ab0dff8ecc7d5a18b4416d00568f02".

*Lưu ý: file hashmd5.txt phải được lưu cùng một thư mục với dictionary.txt và hashcat64.exe. Nếu không chúng ta sẽ phải chỉ rõ đường dẫn tới từng file.

Sau đó, lệnh để khởi chạy sẽ là:


.\hashcat64.exe -m 0 -a 0 hashmd5.txt dictionary.txt

Lệnh chứa các tùy chọn tương tự như trước đó, nhưng thay vì mã băm trực tiếp, tôi đã chỉ định đến file chứa mã băm cần bẻ khóa.

Lưu ý: vì mục đích giáo dục, chúng ta sẽ bẻ khóa cùng một hàm theo nhiều cách khác nhau, trong trường hợp bạn lặp lại các ví dụ, bạn sẽ thấy thông báo:


INFO: All hashes found in potfile! Use --show to display them.

Nó có nghĩa là mã băm mà bạn đang cố bẻ khóa đã bị bẻ khóa trước đó. Tất cả các giá trị hash bị can thiệp được lưu trữ trong file hashcat.potfile, đặt tại cùng thư mục với hashcat. Đây là một file văn bản bình thường, bạn có thể mở nó và xem nội dung bên trong. Trường hợp của tôi, đó là:

Hướng dẫn sử dụng Hashcat: Làm sao sử dụng chương trình để bẻ khoá mật khẩu.



53ab0dff8ecc7d5a18b4416d00568f02:hackware

Tập tin này có thể xóa để bắt đầu tấn công một lần nữa trên cùng một mã băm theo những cách khác nhau.

Ngoài ra còn có tùy chọn --show, theo sau là mã băm cần biết:


.\hashcat64.exe --show 53ab0dff8ecc7d5a18b4416d00568f02

Và nếu nó được tìm thấy trong file hashcat.potfile, thì thông tin về mật khẩu bị bẻ khóa sẽ được hiển thị.

Tấn công mặt nạ trong hashcat


Trong hashcat không có chế độ như brute-force. "Anh ta" bị đồng hóa bởi cuộc tấn công mặt nạ. Đây là một kiểu tấn công linh hoạt hơn, cho phép bạn thực hiện brute-force thông qua các tiêu chí tinh chỉnh.

Nói chung, cuộc tấn công mặt nạ có cấu trúc như sau:


hashcat [options]... hash|hashfile|hccapxfile mask

Theo đó, nó tương tự như trước, nhưng thay vì từ điển, mặt nạ được chỉ định.

Cách tạo mặt nạ trong hashcat.

Để soạn mặt nạ, bộ ký tự được sử dụng. Bộ ký tự trong Hashcat có hai loại:

  • Bộ kí tự tích hợp.
  • Bộ ký tự do người dùng định nghĩa.

Hãy bắt đầu làm quen với bộ ký tự tích hợp, trong nhiều trường hợp, nhu cầu sử dụng như vậy là đủ.

 ? | Charset
===+=========
 l | abcdefghijklmnopqrstuvwxyz
 u | ABCDEFGHIJKLMNOPQRSTUVWXYZ
 d | 0123456789
 h | 0123456789abcdef
 H | 0123456789ABCDEF
 s |  !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
 a | ?l?u?d?s
 b | 0x00 - 0xff

Cột đầu tiên biểu thị một bộ kí tự tượng trưng. Để sử dụng chúng trong mặt nạ, một dấu hỏi phải được đặt trước chỉ định này. Ví dụ: ?u có nghĩa là tất cả các chữ cái viết hoa, ?d có nghĩa là tất cả các chữ số.

Giả sử chúng ta biết rằng mật khẩu bao gồm bốn ký tự, hai ký tự đầu tiên là chữ in hoa và ký tự thứ ba và thứ tư là chữ số, thì mặt nạ sẽ như sau:


?l?l?h?h

Để bẻ khóa mật khẩu từ mã băm của chúng ta ở ví dụ đưa trước, ta cần tạo một mặt nạ gồm tám ký tự, mỗi ký tự là một chữ cái thường. Đây sẽ là bộ mặt nạ cần dùng: ?l?l?l?l?l?l?l?l


.\hashcat64.exe -m 0 -a 3 53ab0dff8ecc7d5a18b4416d00568f02 ?l?l?l?l?l?l?l?l

Ở đây:

  • .\hashcat64.exe là file thực thi.
  • -m 0 là một tùy chọn, đặt loại mã băm MD5.
  • -a 3 là một tùy chọn, giá trị này kích hoạt cuộc tấn công mặt nạ
  • 53ab0dff8ecc7d5a18b4416d00568f02 là một mã băm cần bẻ khóa.
  • ?l?l?l?l?l?l?l?l là một mặt nạ chỉ định việc tạo mật khẩu tám ký tự bao gồm các chữ cái thường.

Chưa đầy một phút sau, mật khẩu đã bị bẻ khóa thành công:

Hướng dẫn sử dụng Hashcat: Làm sao sử dụng chương trình để bẻ khoá mật khẩu.

Hãy chú ý đến dòng:


Progress.........: 15724838912/208827064576 (7.53%)


Đó là 15724838912 biến thể của mật khẩu từ 208827064576 tổng số các biến thể đã được thử nghiệm.

Mặt nạ cho độ dài mật khẩu không xác định


Độ dài mật khẩu không phải lúc nào cũng được biết chính xác. Ngay cả trong điều kiện thử nghiệm của tôi, mật khẩu có độ dài từ sáu đến mười ký tự.

Để tạo mật khẩu có độ dài khác nhau, có sẵn các tùy chọn sau:


Options Short / Long           | Type | Description                         | Example
-i,  --increment               |      | Enable mask increment mode          |
     --increment-min           | Num  | Start mask incrementing at X        | --increment-min=4
     --increment-max           | Num  | Stop mask incrementing at X         | --increment-max=8

Tùy chọn -i là không bắt buộc. Nếu nó được sử dụng, điều đó có nghĩa là không nên sửa độ dài của các phép thử cho mật khẩu, nó sẽ tăng theo số lượng ký tự.

Tùy chọn --increment-min cũng là không bắt buộc. Nó xác định độ dài tối thiểu của các phép thử cho mật khẩu. Nếu tùy chọn -i được sử dụng, --increment-min giá trị là 1 theo mặc định.

Và tùy chọn --increment-max cũng không bắt buộc. Nó xác định độ dài tối đa của các phép thử cho mật khẩu. Nếu tùy chọn -i được chỉ định, nhưng tùy chọn --increment-max bị bỏ qua, thì giá trị mặc định của nó là độ dài mặt nạ.

Quy tắc sử dụng tùy chọn mặt nạ tăng:

  • Trước khi sử dụng --increment-min và --increment-max, bạn phải chỉ định tùy chọn -i
  • giá trị của tùy chọn --increment-min có thể nhỏ hơn hoặc bằng giá trị của tùy chọn --increment-max, nhưng không thể vượt quá nó.
  • độ dài của mặt nạ có thể lớn hơn về số lượng ký tự hoặc bằng số lượng ký tự được chỉ định bởi tùy chọn --increment-max, nhưng độ dài mặt nạ không thể nhỏ hơn độ dài ký tự được đặt bởi --increment-max.

Vì vậy, chúng ta sẽ sửa lệnh khởi chạy cho tác vụ của mình (mật khẩu có độ dài từ sáu đến mười ký tự):


.\hashcat64.exe -m 0 -a 3 -i --increment-min=6 --increment-max=10 53ab0dff8ecc7d5a18b4416d00568f02 ?l?l?l?l?l?l?l?l?l?l

Lệnh này tương tự như lệnh trước, nhưng ba tùy chọn mới đã được thêm vào (giải thích ở trên):

  • -i
  • --increment-min=6
  • --increment-max=10

Và độ dài mặt nạ cũng được tăng lên thành 10 ký tự : ?l?l?l?l?l?l?l?l?l?l (theo yêu cầu của quy tắc sử dụng tùy chọn tăng).

Phải mất thêm một chút thời gian để hoàn thành bẻ khoá, vì các phép thử mật khẩu độ dài 6 kí tự (sẽ +1 giây với dãy của tôi) và 7 kí tự (sẽ +22 giây) chúng đã được thử nghiệm:

Hướng dẫn sử dụng Hashcat: Làm sao sử dụng chương trình để bẻ khoá mật khẩu.

Lưu ý giá trị mới của dòng Status:


Status...........: Exhausted

Nó có nghĩa là tất cả các phép thử mật khẩu đã được kiểm tra, nhưng không có gì được kiểm tra là trùng khớp.

Bẻ khóa mật khẩu khi biết một số ký tự


Có những tình huống khi một số ký tự mật khẩu được biết trước.

Ví dụ: tôi được cung cấp cùng mã băm 53ab0dff8ecc7d5a18b4416d00568f02 và bằng cách nào đó tôi đã biết được rằng ba ký tự đầu tiên trong mật khẩu là "hac". Sau đó, bạn có thể chỉ định các ký tự này trực tiếp trong mặt nạ:


hac?l?l?l?l?l?l?l

Lệnh tương ứng sẽ là:


.\hashcat64.exe -m 0 -a 3 -i --increment-min=6 --increment-max=10 53ab0dff8ecc7d5a18b4416d00568f02 hac?l?l?l?l?l?l?l

Các kí tự đã biết có thể được đặt ở bất cứ đâu trong mặt nạ: ở đầu, ở giữa, ở cuối. Chúng có thể là các ký tự đơn hoặc các nhóm các ký tự.

Bộ ký tự do người dùng định nghĩa trong hashcat


Như ở trên đã được liệt kê, rằng các bộ ký tự tích hợp thường sẽ là đủ với nhu cầu bẻ khoá mật khẩu. Tuy nhiên, bạn có thể chỉ định tối đa bốn bộ tùy chỉnh của riêng bạn.

Giả sử chúng ta biết rằng ba ký tự đầu tiên trong mật khẩu là chữ số và không phải tất cả đều vậy, đó là chỉ có các số từ 0 đến 4, ký tự thứ tư chỉ là chữ cái viết hoa, ký tự thứ năm và thứ sáu cũng là các chữ cái từ a đến h, cũng như các số từ 5 đến 9.

Nếu trong mặt nạ cho ba ký tự đầu tiên chúng ta chỉ ra là các số, thì rõ ràng không phải là phép thử phù hợp cho mật khẩu (chứa trong ba vị trí đầu tiên, các số không nằm trong phạm vi từ 0 đến 4 cũng sẽ được kiểm tra). Chúng ta phải loại trừ mật khẩu rõ ràng không phù hợp. Điều này có thể được thực hiện bằng cách sử dụng bộ ký tự tùy chỉnh.

Tổng cộng có bốn bộ ký tự do người dùng định nghĩa. Chúng được chỉ định trong các tùy chọn và được biểu thị bằng số. Nhưng trong các tùy chọn, dấu gạch nối được đặt trước chữ số (ví dụ: bộ người dùng đầu tiên là -1) và dấu chấm hỏi được đặt trong mặt nạ trước chữ số (ví dụ: sử dụng các ký hiệu từ bộ người dùng tự định nghĩa đầu tiên là ?1).

Vì vậy, để giải quyết vấn đề, chúng ta bắt đầu bằng cách đặt số người dùng tự định nghĩa trong các tùy chọn. Các bộ này có thể bao gồm các ký tự được liệt kê trực tiếp, ngoài ra bạn cũng có thể sử dụng các bộ ký tự tích hợp, ví dụ: ?l hoặc ?d hoặc ?u (trong bất kỳ kết hợp nào).

Bộ ký tự tùy chỉnh đầu tiên được đặt cho tác vụ của chúng ta (chỉ các số từ 0 đến 4):


-1 01234

Bộ ký tự do người dùng xác định thứ hai (các chữ cái từ a đến h, cũng như các số từ 5 đến 9)


-2 abcdefgh56789

Hãy để tôi nhắc bạn - bộ ký tự tùy chỉnh được viết trong số các tùy chọn (trước mặt nạ và trước mã băm).

Bây giờ hãy tạo mặt nạ (ba ký tự đầu tiên trong mật khẩu là số, không phải tất cả, nhưng chỉ các số từ 0 đến 4, ký tự thứ tư chỉ là chữ cái viết hoa, ký tự thứ năm và thứ sáu là các chữ cái từ a đến h, cũng như các số từ 5 đến 9):


?1?1?1?u?2?2

Chúng tôi sẽ phân tích mặt nạ: - ba ký tự đầu tiên được chỉ định là ?1?1?1 (đây là các đơn vị, và không phải là chữ L, chúng là các chữ số "1") là các ký hiệu từ bộ người dùng đầu tiên. Tiếp theo ?u, đây là một bộ ký tự tích hợp, chỉ biểu thị chữ in hoa. Hai ký tự tiếp theo được chỉ định là ?2?2, đây là các ký hiệu từ nhóm người dùng thứ hai.

Khi chỉ định các bộ tùy chỉnh, bạn có thể sử dụng ký hiệu của các bộ ký tự tích hợp, ví dụ:


-1 ?l?u

Biểu thị tập hợp người dùng đầu tiên chỉ bao gồm các chữ cái Latinh hoa và thường.




-1 ?l?u?d

Có nghĩa là bộ người dùng đầu tiên chỉ bao gồm các chữ cái Latinh hoa và thường, cũng như các số.

Như đã trình bày ở trên, bạn có thể sử dụng các bộ ký tự tùy chỉnh và tích hợp sẵn trong bất kỳ kết hợp nào trong mặt nạ.

Cách tạo một từ điển trong Hashcat mà không cần khởi chạy bẻ khóa


Sau khi tạo mặt nạ phức tạp, đặc biệt là với việc sử dụng các bộ ký tự tùy chỉnh, chúng ta muốn kiểm tra xem chúng ta có làm mọi thứ chính xác không. Ngoài ra, nhờ tính linh hoạt của cú pháp hashcat, thật thuận tiện khi sử dụng nó để tạo từ điển theo bất kỳ tiêu chí nào.

Để chỉ hiển thị mật khẩu mà không bắt đầu bẻ khóa, tùy chọn --stdout được sử dụng. Tùy chọn này yêu cầu -a 3 (chế độ tấn công mặt nạ). Vì việc bẻ khóa không bắt đầu trong trường hợp này, bạn không cần chỉ định bất kỳ giá trị mã băm nào.

Một ví dụ về việc tạo mật khẩu cho tác vụ nói trên (được biết rằng ba ký tự đầu tiên trong mật khẩu là số, không phải tất cả, nhưng chỉ các số từ 0 đến 4, ký tự thứ tư chỉ là chữ cái viết hoa và ký tự thứ năm và thứ sáu là các chữ cái từ a đến h, cũng như các số từ 5 đến 9):


.\hashcat64.exe --stdout -a 3 -1 01234 -2 abcdefgh56789 ?1?1?1?u?2?2

Vì nhiều mật khẩu sẽ được tạo (hơn nửa triệu), thay vì hiển thị trên màn hình, chúng có thể được lưu vào một tệp. Để thực hiện việc này, sau lệnh chính, bạn cần đặt ký hiệu > (có nghĩa là chuyển hướng đầu ra sang một tệp) và viết tên tệp. Ví dụ: để lưu tất cả mật khẩu vào tệp lab1.dic, tệp này sẽ được tạo trong cùng thư mục với file thực thi hashcat64.exe:


.\hashcat64.exe --stdout -a 3 -1 01234 -2 abcdefgh56789 ?1?1?1?u?2?2 > lab1.dic

Các mã băm mẫu


Chương trình Hashcat không chỉ bao gồm các trợ giúp, mà còn cả các ví dụ mã băm. Chúng có thể hữu ích nếu bạn gặp khó khăn trong việc viết chính xác định dạng mã băm.

Để hiển thị tất cả các ví dụ về mã băm cùng một lúc, hãy chạy chương trình với tùy chọn --example-hashes:


.\hashcat64.exe --example-hashes

Bạn có thể thấy một mẫu của một mã băm cụ thể. Ví dụ, tôi cần tìm ra một mã băm trông như thế nào để bẻ khóa mật khẩu RAR5. Sau đó tôi chuyển sang trang trợ giúp của chương trình https://en.kali.tools/?p=1558 và tìm kiếm RAR5 (sử dụng CTRL + F). Tôi thấy rằng số mã băm này là 13000. Tiếp theo, tôi chạy chương trình với tùy chọn --example-hashes và tùy chọn đã biết -m (sau đó là số chế độ mã băm được chỉ định).


.\hashcat64.exe --example-hashes -m 13000

Hướng dẫn sử dụng Hashcat: Làm sao sử dụng chương trình để bẻ khoá mật khẩu.

Vì vậy, để bẻ khóa mật khẩu từ RAR5, mã băm phải như sau:


$rar5$16$38466361001011015181344360681307$15$00000000000000000000000000000000$8$cc7a30583e62676a

Bài viết được dịch và chỉnh sửa bởi KimYoungKen dựa trên bài viết gốc tác giả Alex

Link bài viết gốc: https://miloserdov.org/?p=953







Powered by Blogger.