HASHCAT LÀ GÌ

Chào mừng bạn đến với bài bác cuối của siêng đề hash cracking ở trong nhà CC: Pen Testing. Vào bài hôm nay chúng ta sẽ làm quen với những công cầm crack hash như Hashcat và John The Ripper, đây rất nhiều là các công cụ tất cả sẵn trên Kali Linux, bên cạnh đó mình cũng giới thiệu thêm một dụng cụ crack hash online mang tên là CrackStation.

Chưa hết, trong bài cũng trở thành giới thiệu đến các bạn các công cụ dùng để xác định thương hiệu thuật toán hash và danh sách rockyou.txt, đây là một danh sách tập hợp hồ hết usernames với passwords hay được dùng nhất. Họ sẽ thực hiện rockyou.txt để thực hành thực tế crack hash.

Bạn đang xem: Hashcat là gì

Chúng ta cùng vào bài.

1 – Hashcat

Hashcat là ứng dụng crack hash/khôi phục mật khẩu từ hash sớm nhất và tiên tiến nhất hiện thời trên giao diện dòng lệnh. Hashcat cung cấp cho người sử dụng 5 cơ chế tấn công/khôi phục mật khẩu khác nhau áp dụng đến hơn 300 thuật toán hash không giống nhau. Hashcat là một trong những phần mềm mã nguồn mở và hoàn toàn miễn phí. Hashcat rất có thể được sử dụng trên các nền tảng không giống nhau như Linux, Windows và MacOS.

Ở thời điển hiện tại tại, Hashcat rất có thể sử dụng GPU, CPU và các phần cứng tăng speed độ thống kê giám sát khác trên hệ thống máy tính để tăng tốc độ phá password hash. Mặc dù nhiên, bởi phần lớn chúng ta sử dụng vật dụng ảo Kali Linux trên Virtual Box, nên bọn họ sẽ không đủ sự hỗ trợ đắc lực của GPU (card đồ vật họa). Thực tế, cũng có cách để cho vật dụng ảo bên trên Virtual Box áp dụng GPU của máy chủ một phương pháp gián tiếp. Mặc dù kỹ thuật làm tương đối phức tạp và còn nhờ vào vào hartware của hệ thống bạn sẽ dùng, bắt buộc mình sẽ không còn đề cập nghỉ ngơi đây.

Nếu bạn muốn Hashcat đạt được vận tốc phá mật khẩu buổi tối đa mà hệ thống bạn đang áp dụng cho phép, cách dễ nhất là cài tuy nhiên song 2 hệ quản lý Windows và Kali Linux, hoặc bạn cũng có thể cài trực tiếp Hashcat lên Windows. Link tải về tại phía trên nhé.

Lưu ý:

Việc phá password hash phụ thuộc rất nhiều vào sức mạnh phần cứng của khối hệ thống bạn sẽ sử dụng. Nếu hệ thống của người sử dụng đang sử dụng quá yếu, thì dù có chạy Hashcat phía bên ngoài máy ảo, thì vận tốc phá password hash cũng chỉ được nâng cao ở mức cực kỳ nhỏ. Bởi vì lẽ đó, các khối hệ thống được xây dựng chuyên cho mục tiêu phá password hash thông thường sẽ có phần cứng hết sức khủng.

Đơn cử như khối hệ thống thí nghiệm phá password hash của trường mình được lắp thêm 2 CPU Xeon đời new nhất, 12 GPU RTX 2060 với vài trăm GB RAM. Thiệt ra khối hệ thống này hầu hết được trường mình sử dụng như một virtualization hệ thống nơi cho phép học sinh tạo, chứa và chạy thiết bị ảo nhiều hơn thế nữa là phá hash, tuy nhiên bất kể lúc nào cần, hệ thống cũng rất có thể được thực hiện để phá hash.

Nhưng điều đó không có nghĩa là với phần cứng bự như vậy thì rất có thể phá hash của bất kể thuật toán nào trong chớp mắt. Câu hỏi không xác định đúng hoặc ko thể xác minh được thương hiệu thuật toán hash, dĩ nhiên password dài và khó có thể khiến cho khối hệ thống chạy phá hash thường xuyên không nghỉ trong vô số tuần nếu như không muốn nói là mon hoặc năm. (Thật ra vào thực tế, nếu quá trình phá hash quá lâu, tín đồ ta vẫn tìm biện pháp khác để tránh cho khối hệ thống chạy tiếp tục trong thời gian quá dài).

Nói cầm lại, việc crack hash là một trong việc siêu tốn thời gian vì nó phụ thuộc vào vào các yếu tố như:

Thuật toán hashSức khỏe khoắn phần cứng của hệ thống dùng để làm crackPassword gốc đạt được salt với pepper tốt không? Password gốc có phức tạp hay không?v.v

Có một khối hệ thống với phần cứng hết sức mạnh có thể phần nào khiến cho bạn tiết kiệm được thời hạn crack hash khi và chỉ khi quý giá hash của bạn cũng có thể bị cracked và cách duy nhất để tìm hiểu là demo crack đoạn hash kia trong một khoản thời hạn nhất định. Do xác suất thành công của hướng tiến công này chỉ khoản 50%, nên những lúc pentest hoặc nghịch CTF chúng ta không đề xuất quá dựa vào vào nó.

1a – một số trong những công cụ xác định thuật toán hash

Một điều khá có hại trên Hashcat đó là nó cấp thiết nhận diện được password hash mà bọn họ cung cung cấp được mã hóa bằng thuật toán nào, vì chưng lẽ đó chúng ta phải tra cứu cách xác định được thuật toán hash thì Hashcat mởi phá hash được.

1a-1 nguyên lý Hash Identifier bên trên Kali Linux

Trên Kali Linux, bạn có thể sử dụng chính sách Hash Identifier trên giao diện dòng lệnh để xác định thuật toán hash.

Đầu tiên, bên trên Kali Linux, chúng ta mở đồ họa Terminal lên cùng gõ câu lệnh sau:


*
H1a-1.1

Cách sử dụng rất solo giản, chỉ việc bạn copy và paste đoạn hash của chúng ta vào chiếc “HASH:” và bấm enter. Hệ thống để giúp bạn xác minh thuật toán hash. Để thoát ra, chúng ta ấn tổ hợp phím Ctrl + C

Chúng ta sẽ làm thử vài thí điểm nhé, bên dưới là hash của câu chữ “xin-chao” được hash bằng 3 thuật toán hash không giống nhau:

SHA-256: 1b56ba4873470ec595e186463bfb9151f8fb0c821f634cad0e5ac4cddfcbe753MD4: 00d420f6ad9b196cad449396076eec24Whirlpool: 95a67f65af5b7c1cd874ac874cb2feaff398a22d56c5c08fb975a2e89f183314d2dfc2f27b29c052f7365e97039278020ee15c088150ad02067d68524fe5cf66

Ví dụ 1: SHA-256


*
H1a-1.2

Chúng ta thấy Hash Identifier kề bên việc xác minh và xuất ra tên đông đảo thuật toán hash mà nó nghĩ rằng nhiều tài năng đã được dùng làm tạo ra hash nguồn vào (Possible Hashs), nó còn liệt kê ra các kết quả mà nó nghi hoặc nhưng không chắc chắn (Least Possible Hashs).

Và chúng ta có thể thấy, SHA-256 phía trong nhóm Possible Hashs. Như vậy, Hash Identifier đã xác định đúng thuật toán hash.

Ví dụ 2: MD4


*
H1a-1.3

Như chúng ta thấy, cùng với MD4 hash, Hash Identifier lại đánh tên thuật toán đúng tại đoạn Least Possible Hashs. Vì sao là do trong những yếu tố những phần mềm phân biệt thuật toán hash dùng để xác định đúng thuật toán hash chính là dựa vào độ lâu năm của hash đầu vào.

Ở phía trên MD5 với MD4 bao gồm cùng độ nhiều năm là 32 ký tự hex chỉ khác biệt đôi chút giải pháp xử lý dữ liệu, và bởi MD5 có phần phổ biến hơn MD4, cần Hash Identifier nghĩ rằng hash nguồn vào nhiều năng lực là MD5 rộng MD4.

Ví dụ 3: Whirlpool

*
H1a-1.4

Với thuật toán hash Whirlpool, Hash Identifier đã dự kiến thuật toán hash chủ yếu xác.

1a-2 – một vài công cụ xác minh thuật toán hash online

Ngoài Hash Identifier, mình còn sử dụng một vài công cụ xác minh thuật toán hash online khác ví dụ như:

Mục đích là để bình chọn lại hiệu quả của Hash Identifier.

Lưu ý:

Kết quả của các công cụ xác định thuật toán hash chỉ là tương đối và chưa hẳn lúc nào các công cụ này cũng xác định được thuật toán đã dùng làm hash dữ liệu. Vào trường hòa hợp ấy, bạn có thể sử dụng các giải pháp crack hash tất cả kèm theo tác dụng tự xác minh thuật toán trước lúc crack ví như John The Ripper (mình đang trình bày ở vị trí 2) hoặc những công ráng crack hash online.

1b – Cách áp dụng Hashcat

Trên bối cảnh dòng lệnh của Kali Linux, bọn họ gõ câu lệnh bên dưới để truy cập vào phần hướng dẫn áp dụng của Hashcat


*
H1b.1

Vì Hashcat ko có chức năng tự khẳng định thuật toán hash như mình đã nói lúc đầu, cần sau khi khẳng định được thuật toán hash bằng các công cụ mình đã nói tại đoạn 1a, chúng ta sẽ bắt buộc chỉ cho Hashcat thuật toán được sử dụng của hash đầu vào là gì. Bên trên Hashcat, thông tin này được gọi là hash modes.

Xem thêm: Letter Of Interest Là Gì ? Định Nghĩa Và Giải Thích Ý Nghĩa Letter Of Interest Là Gì


*
H1b.2

Như chúng ta thấy, Hashcat cung ứng rất nhiều thuật toán hash không giống nhau đồng thời còn cho chúng ta biết phân loại của các thuật toán hash nữa.

Hash cat hỗ trợ 4 bề ngoài crack hash:

Dictionary (-a 0): bạn sẽ cung cấp cho cho Hashcat một danh sách (có thể là tập hợp đều passwords thường được sử dụng nhất). Hashcat sẽ thực hiện lần lượt từng giá trị trong list này nhằm hash nó cùng với thuật toán đã chỉ định và đối chiếu với hash đầu vào, nếu công dụng sai, Hashcat sẽ thử giá trị tiếp sau trong list được cung cấp, nếu như đúng thì Hashcat trả lại kết quả đã tạo cho giá trị hash trùng khớp với mức giá trị hash đầu vào. Combination (-a 1): tương tự như như Dictionary attack ở trên, mặc dù nhiên khi sử dụng Combination các các bạn sẽ phải cung cấp 2 danh sách chứ chưa hẳn chỉ 1 danh sách như Dictionary attack. Hình thức tấn công này được sử dụng khi bạn muốn tìm username cùng password của bạn dùng. Lúc này bạn sẽ cần 1 list những usernames thường dùng nhất với 1 list những passwords hay được sử dụng nhất. Hashcat vẫn lần lượt tạo thành các cặp kết hợp giữa list username và list password cùng lần lượt thử singin bằng những cặp phối hợp này cho tới khi đưa ra được username và password đúng đắn hoặc cho tới khi tất cả các cặp kết hợp đều đã làm được thử và không tồn tại cặp nào chủ yếu xác.Mask (-a 3): Mask attack giống như như Bruteforce attack, bạn sẽ cung cung cấp một loạt những ký tự lấy ví dụ a, b, c, d, e, f, 1, 2, 3, v.v. Với từ những ký từ được hỗ trợ này, Hashcat sẽ tự phối kết hợp các ký tự lại với nhau và tạo ra các chuỗi cam kết tự ngẫu nhiên ví dụ như abc123, và những chuỗi này đang được dùng làm tấn công giống hệt như Dictionary attack. Cách tiến công này sẽ cân xứng để tìm hầu như username cùng password ko nằm trong list được hỗ trợ khi tiến công Dictionary attack, tuy vậy sẽ siêu mất thời gian. Hybrid (-a 6 cùng -a 7): Kết hợp cả Dictionary attack cùng Mask attack.

Một câu lệnh tiến công Hashcat cơ phiên bản sẽ bao gồm cú pháp như sau:


Theo kia ta có các thành phần cần phải có như sau:

-a: Số của hình thức tấn công:-a 0: Dictionary -a 1: Combination-a 3: Mask-a 6 cùng -a 7: Dictionary + Mask-m: Số của thuật toán hash (bất cứ lúc nào quên, các bạn đều hoàn toàn có thể tra cứu giúp lại bằng lệnh hashcat –help). Trong lấy ví dụ mình sử dụng -m 0 để chỉ thuật toán hash MD5.File chứa hash đầu vàoFile chứa list nếu tiến công Dictionary hoặc chuỗi ký tự nếu tấn công Mask

Một số chủng loại câu lệnh khác của Hashcat:


Hôm nay, họ sẽ thực hành thực tế Dictionary attack để crack hash với Hashcat nhé.

1b-1 – tệp tin rockyou.txt

Đầu tiên bọn họ cần một list đã. Vào Kali Linux, có sẵn một danh sách khá thần thánh thương hiệu là rockyou.txt. Để cho được directory cất file này, chúng ta hãy gõ đều câu lệnh sau:


*
H1b-1.1

Chúng ta đang thấy được file rockyou.txt. Mặc dù nhiên chúng ta chưa dùng được file ngay đâu bởi vì file hiện đã biết thành zip bằng gzip, bọn họ cần yêu cầu giải nén tệp tin trước đã. Làm điều này bằng câu lệnh sau:


Chú thích: Flag -d dùng để làm chỉ bạn có nhu cầu decompress (giải nén) file.

Kiểm tra lại bằng lệnh ls bọn họ sẽ thấy file rockyou.txt đã có giải nén thành công.


Rock you là một trong file có kích cỡ rất lớn, nếu như khách hàng dùng lệnh “wc -l” để kiểm tra sẽ thấy file chứa hơn 14 triệu cái dữ liệu, size file khoản 123 MB. Đây là tập hợp của các username và password thường dùng nhất.


Nếu các bạn dự định mở tệp tin để kiểm soát xem password mà lại mình dùng tất cả nằm trong file này tốt không? Thì chúng ta nên dùng các câu lệnh để kiểm tra sẽ nhanh và kết quả hơn là mở tệp tin này trực tiếp. Vì nếu phần cứng hệ thống máy của khách hàng quá yếu, mở một file với tài liệu nhiều vậy này có khả năng sẽ làm máy các bạn bị treo.

Để kiểm tra chúng ta sẽ dùng các câu lệnh sau:


Bạn như thế nào quên những câu lệnh trên thì nên xem lại các bài trong series Linux Căn Bản nhé.

Trong câu lệnh trên, mình đã thử chất vấn xem password12345678 liệu tất cả nằm trong list không? và công dụng là có


Lưu ý:

Password của bạn không phía bên trong rockyou.txt không đồng nghĩa tương quan với bài toán password của chúng ta an toàn.

Ví dụ: các bạn thấy tác dụng password12345678 có nằm vào danh sách, tiếp đến bạn đổi lại thành password87654321, việc đổi khác này đã chẳng giải quyết và xử lý được sự việc gì các cả vì các cụm trường đoản cú như password với 123456789 phần đông là những các từ dễ dàng đoán, hacker hoàn toàn rất có thể tập trung bruteforce các password sinh sản thành từ các chữ cùng chữ số sau password,1,2,3,4,5,6,7,8,9,0, việc này rất có thể tốn thời hạn nhưng chắc chắn password của các bạn sẽ bị lộ nếu tin tặc đủ kiên trì.

Thêm một điều nữa nhé là password này đa số chứa các ký tự giờ Anh, chứ không bao hàm các từ tiếng Việt như:

matkhauanhyeuememyeuanhv.v

Nhưng điều đó cũng không đồng nghĩa với vấn đề một file text chứa những mật khẩu có kèm từ tiếng Việt không tồn tại đâu nhé.

Thế nên, nếu password nhiều người đang dùng quá đơn giản thì yêu cầu thay tức thì đi nhé. Về vấn đề này mình sẽ có được một bài xích riêng sau này về cách tạo và cai quản mật khẩu, muốn các bạn sẽ ủng hộ.

1b-2 – Crack MD5 và MD4 cùng với Hashcat

Phòng CC: Pen Testing task 13 tất cả cho họ 2 chuỗi hash ngơi nghỉ MD5 và MD4, họ thử thực hành thực tế crack hash coi sao nhé.

MD5: 56ab24c15b72a457069c5ea42fcfc640

Chúng ta sẽ dùng câu lệnh sau nhằm lưu đoạn hash bên trên vào tệp tin md5.hash:


Sau vài giây chạy, họ đã đạt được mật khẩu gốc trước lúc hash.

MD4: 4bc9ae2b9236c2ad02d81491dcb51d5f

Đầu tiên, chúng ta sẽ lưu giữ đoạn hash trên vào file md4.hash


Sau vài giây, họ cũng đã đạt được password gốc trước khi hash.

2 – John The Ripper

Một luật pháp khác cũng thường được sử dụng để crack hash là John The Ripper. Đây cũng là một công thế trên giao diện dòng lệnh và cũng hoàn toàn có thể được cài trên nhiều hệ điều hành khác biệt như MacOS, Windows với Linux (bạn nào ước ao cài trên Windows thì tìm hiểu thêm link sau nhé). John The Ripper tất cả 2 phiên bạn dạng chính, 1 phiên bản miễn phí, mã mối cung cấp mở và 1 bạn dạng tính phí.

John The Ripper được thiết kế với rất dễ sử dụng và tất cả tích đúng theo cả tính năng tự động nhận diện thuật toán hash, nuốm nên họ không yêu cầu phải khẳng định thuật toán rồi new crack giống như Hashcat.

Để truy cập vào phía dẫn thực hiện của John The Ripper bạn dạng miễn giá thành được mua sẵn trên Kali Linux bọn họ làm như sau:

Trên bối cảnh Terminal của Kali Linux gõ:


John được sản phẩm một danh sách password riêng, tuy nhiên danh sách này khá giảm bớt và không thể so sánh với rockyou.txt. List mặc định của John The Ripper tất cả path như sau: /usr/share/john/password.lst

Khi bạn áp dụng câu lệnh john như trên, John The Ripper vẫn chạy để tìm thuật toán hash, kế tiếp sẽ sử dụng danh sách mặc định của mình để crack hash. Quá trình này vẫn tốn rất nhiều thời gian so với khi bạn cung cấp cho John tên của thuật toán hash, tuy thế trong trường hợp họ không thể tìm được tên thuật toán hash thì đành đề xuất chấp nhận.

Chúng ta đã thử sử dụng John The Ripper nhằm crack tệp tin md5.hash mà bọn họ đã làm tại đoạn 1b-2 xem sao nhé.


Mình đang ngồi ngóng hơn 2 tiếng, mà lại John The Ripper vẫn không crack xong. Mình đưa ra quyết định thêm –format=raw-md5 khiến cho John The Ripper biết thuật toán hash được dùng trong file là gì, lúc này ta sẽ sở hữu được câu lệnh:


Vì lẽ đó, nếu bao gồm thể, hãy nỗ lực xác định thuật toán hash trước khi crack chúng ta nhé.

Trên TryHackMe task 14 có cho chúng ta 2 bài bác tập crack MD5 với SHA1, mình sẽ làm mẫu với MD5, chúng ta thử tự làm SHA1 nhé.

Chúng ta gồm đoạn hash MD5 sau: 5d41402abc4b2a76b9719d911017c592

Để tiết kiệm chi phí thời gian, bọn họ sẽ chỉ mang đến John The Ripper thương hiệu thuật toán hash với sẽ sử dụng rockyou.txt vắt vì list mặc định.

Đầu tiên, bọn họ lưu đoạn hash trên vào tệp tin crack.hash


*
H2.5

Sau vài ba giây, đoạn hash đã có crack xong. Nếu John The Ripper không chỉ ra password sẽ crack thì bạn sử dụng lệnh sau:


3 – luật crack hash online

Ngoài Hashcat với John The Ripper ra, bản thân còn sử dụng CrackStation, một hình thức crack hash online miễn phí, tuy vậy điểm hạn chế của các công rứa online là số thuật toán hash mà lại chúng cung cấp không nhiều.

Các các bạn hãy sử dụng kỹ năng đã học ở bài trước và bài hôm nay để vấn đáp các câu hỏi từ task 11 mang lại 14 nhé.