Hash-identifier ?
Hash-identifier là một công cụ được tích hợp sẵn trên Kali
Linux là một công cụ hữu ích giúp phân biệt kiểu thuật toán mã hóa của một chuỗi hash bất kỳ Chỉ cần một tham số đầu vào, công cụ này sẽ so sánh với các quy tắc mã hóa của từng thuật toán và cung cấp thông tin về chuỗi hash đó.
"có thể" được mã hóa bằng thuật toán nào
Trên kho lưu trữ GitHub cho hash-identifier, danh sách các hashes được hỗ trợ khá rộng
MySQL 160bit - SHA-1(SHA-1($pass)) MySQL5 - SHA-1(SHA-1($pass))
SAM - (LM_hash:NT_hash)
And more… b) Cách thức hoạt động ?
Trong Hash-identifier các thuật toán được khia báo với những thứ tự khác nhau như 1 số các thuật toán dưới đây algorithms={"109020":"SHA-1", "109140":"SHA-
Ta lấy ví dụ với MD5 :
Ta có biến Hash : lưu giá input đầu vào
Hs : chưa các mẫu sẵn của các dạng bămm jerar : là 1 mảng chưa các số thứ tự
Giá trị chuỗi đầu vào sẽ được so sánh với các điều kiện và hệ số, trong đó chuỗi chỉ chứa chữ và số Điều này giúp xác định khả năng cao mà chuỗi đó sẽ được đưa vào thuật toán băm nào.
Sau khi thỏa mãn các điều kiện thì giá trị 106020 sẽ được thêm vào mảng jerar
Sau khi có giá trị của mảng jerar :
T sẽ đưa ra được 1 mảng danh sách chứa các mã băm có thể được sử dụng và nó được chia làm 2 phần :
Possible Hashs : Khả năng cao
Least Possible Hashs : Khả năng thấp
Nhưng đôi khi không chính xác 100% , các Hash có thể rơi vào các trường hợp khả năng thấp
Hướng dẫn cài đặt và hướng dẫn sử dụng
Ta chạy máy ảo : VMWARE
Ta chạy hệ điều hành : Kali-linux
Trên hệ điều hành Kali-linux : Hash-identifier đã được tích hợp sẵn
Ta gõ lệnh : hash-identifier
Ta có giao diện sau :
Công cụ này sử dụng vô cùng đơn giản, chỉ cần chạy, sau đó nhập vào mã hash và gõ Enter
Kết quả xuất ra gồm hai phần Possible Hashs và Least Possible Hashs
Possible Hashs là thuật toán có khả năng cao
Least Possible Hashs là có khả năng thấp
"Có khả năng" tức là không chắc chắn 100%, nhưng ở mức tin tưởng được.
Bài lab và các kịch bản demo
Ở đây ta sẽ chạy thử với các dạng mật khẩu với từng dạng thuật toán khác nhau : a) MD5
MD5: 35D95C1DB1CC74C1D1E0AFFF249111CB
Ta chạy thử với hash-identifier
Hash Identifier không chỉ xác định và xuất tên các thuật toán hash có khả năng đã được sử dụng để tạo ra hash đầu vào (Possible Hashs), mà còn liệt kê những kết quả mà nó nghi ngờ nhưng không hoàn toàn chắc chắn (Least Likely Hashs).
Và chúng ta có thể thấy, MD5 nằm trong nhóm Possible Hashs
Như vậy, Hash Identifier đã xác định đúng thuật toán hash
Ta có thể kiểm tra lại bằng cách chạy thủ hash trên CrackStation và đều cho ra kết quả là MD5
Giờ ta sẽ chạy thử thuật toán MD5 với hashcat xem kết quả có chính xác không :
Sau khi chạy ta thấy được hash sau khi giải mã đã đưa về mật khẩu chính xác với thuật toán sử dụng là MD5 b) SHA1
SHA1: 0566FF6647BEE15F5F11111ED288E64A67D762DA
Kết quá trả về được là SHA-1
Ta test thử với CrackStation
Trả về kết qủa với SHA-1
Ta chạy hashcat được mật khẩu trả về mật khẩu đúng trước khi mã hóa băng SHA-1 c) SHA256
Với các bước test thử bên trên đã cho thấy được khả năng của
Hash-identifier nhận biết được khá chính xác các thuật toán được sử dụng trong mã hóa , nhưng Hash-identifier không phải là 100% chuẩn xác
Ta đến với trường hợp dưới đây : d) MD4
Ta chạy hashcat với thuật toán tìm được MD5
Khi chạy Hashcat với thuật toán MD5 tìm được bằng Hash- identifier thì ta không tìm thấy kết quả
Ta sẽ chay Hashcat với thuật toán MD4
Ta tìm được bản rõ chính xác với thuật toán MD4
Hay chạy thử với CrackStation
Hash Identifier đã xác định đúng thuật toán MD4 trong phần Least Possible Hashs, nhờ vào độ dài 32 ký tự hex của hash đầu vào, giống như MD5 Sự khác biệt chủ yếu giữa MD4 và MD5 nằm ở cách xử lý dữ liệu, trong khi MD5 phổ biến hơn, dẫn đến việc Hash Identifier có xu hướng cho rằng hash đầu vào có khả năng cao là MD5 hơn là MD4.
Thông qua đây ta thấy được là Hash-identifier là một công cụ dữ đoán khá chính xác nhưng chưa chính xác 100%
So sánh , đánh giá và kết luận
- Nó hỗ trợ hơn 220 kiểu băm
- Cũ hơn -Viết bằng python
- HashTag hỗ trợ xác định hơn 250 loại băm cùng với việc kết hợp chúng với hơn
- Nó cũng có thể xác định một hash duy nhất, phân
HashID có khả năng xác định hàm băm, phân tích cú pháp tệp và đọc nhiều tệp trong một thư mục để xác định các hàm băm bên trong Ngoài ra, nó cũng hỗ trợ chế độ hashcat và định dạng JohnTheRipper trong đầu ra của mình.
- Một trong những khía cạnh lớn nhất của công cụ này là xác định băm mật khẩu
- Hash-identifier chia kết qua tìm được thành 2 loại
-Khả năng tìm được thuật toán sử dụng cao hơn
Dễ dàng hơn khi tích hợp một tệp duy nhất và xác định các băm bên trong, hoặc duyệt qua một thư mục gốc cùng tất cả các thư mục con để tìm các tệp băm tiềm năng và xác định bất kỳ băm nào được phát hiện.
- Một trong những khía cạnh lớn nhất của công cụ này là xác định băm mật khẩu
- HashTag chỉ đua ra các danh sách thuật toán có thể được sử dụng
- Khả năng thấp hơn b) Đánh giá : Ưu điểm :
- Nó hỗ trợ hơn 220 kiểu băm
- Một trong những khía cạnh lớn nhất của công cụ này là xác định băm mật khẩu
- Mức độ phân biệt thuật toán chưa chính xác 100%
Kết quả từ các công cụ xác định thuật toán hash thường chỉ mang tính tương đối và không phải lúc nào cũng chính xác trong việc nhận diện thuật toán đã sử dụng để hash dữ liệu Trong những trường hợp như vậy, chúng ta có thể áp dụng các giải pháp crack hash đi kèm với tính năng tự động xác định thuật toán trước khi thực hiện quá trình crack, chẳng hạn như công cụ John The Ripper.
Ripper hoặc các công cụ crack hash online.