Tìm hiểu về hashcat trong kali linux

36 2 0
Tìm hiểu về hashcat trong kali linux

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ THƠNG TIN I Học phần: An tồn mạng Bài báo cáo: Tìm hiểu hashcat kali linux Lời mở đầu Với phát triển ngày nhanh chóng Internet ứng dụng giao dịch điện tử mạng, nhu cầu bảo vệ thông tin hệ thống ứng dụng điện tử ngày quan tâm có ý nghĩa quan trọng Vì việc nghiên cứu chuẩn mật mã nâng cao ứng dụng lĩnh vực bảo mật thông tin cần thiết Ứng dụng chuẩn mật mã nâng cao sử dụng ngày phổ biến nhiều ứng dụng khác Chuẩn mật mã nâng cao không đơn mã hóa giải mã thơng tin mà cịn bao gồm nhiều vấn đề khác cần nghiên cứu giải ứng dụng xây dựng hàm băm phục vụ việc chứng thực nguồn gốc nội dung thông tin ( kỹ thuật chữ ky điện tử), xác thực tính nguyên vẹn liệu,… Một cách để cải thiện độ bảo mật cho người dùng thực hacker giải mã mã hash để chuyên gia bảo mật ngăn chặn trước cơng để khơng thể xẩy Hiện giới có nhiều tool kali linux hỗ trợ việc dịch ngược lại thông điệp hàm băm nối bật lên số tool hashcat xem nhanh I Mục lục Khái quát hàm băm mật mã II A Giới thiệu sơ lược hàm băm mật mã B Định nghĩa tổng quát hàm băm C Tính chất hàm băm mật mã D Phân loại hàm băm mật mã E Mơ hình xử lý liệu F Ứng dụng hàm băm III Mô tả Hashcat 10 A Giới thiệu Hashcat 10 B Các đặc trưng 11 IV Cài đặt Cách sử dụng Hashcat Kali Linux 12 A Cài Đặt 12 B Cách sử dụng 14 Các cách bẻ khóa 22 V A Cách bẻ khóa hàm băm 22 B Bẻ khóa mật thơng qua công từ điển 23 C Bẻ khóa mật thơng qua Bruteforce 27 VI Demo 27 A Demo 27 B Demo 32 C Demo 34 VII Kết luận 35 VIII Tài liệu tham khảo 36 II Khái quát hàm băm mật mã A Giới thiệu sơ lược hàm băm mật mã Hiểu theo nghĩa đơn giản, hàm băm hàm cho tương ứng mảng liệu lớn với mảng liệu nhỏ mà dùng rộng rãi nhiều ứng dụng tin học, không thuộc phạm vi mật mã Ở đây, xét đến hàm băm phạm vi hàm băm mật mã, xem xét cụ thể đến ứng dụng chúng việc đảm bảo tính tồn vẹn liệu Các hàm băm nhận đầu vào chuỗi bit có chiều dài hữu hạn tùy ý tạo chuỗi bit có chiều dài cố định n bit (n > 0) gọi mã băm (hash code) Trong mã hóa, mã băm xem ảnh đại diện thu gọn (compact representative image) chuỗi bit có độ dài hữu hạn tùy ý dùng để nhận diện cho chuỗi bit Kết hợp với công cụ tạo chữ ký số, hàm băm dùng cho việc đảm bảo tính tồn vẹn liệu Trong lược đồ chữ ký số, mã băm chuỗi bit tính thời điểm T1 bảo vệ để chống lại thay đổi bất hợp pháp Tại thời điểm T2 sau đó, để kiểm tra xem chuỗi bit x có bị thay đổi hay khơng, người ta thường tính giá trị hàm băm chuổi bit thời điểm T2, mà ta ký hiệu xT2, sau so sánh giá trị vừa tính với mã băm thời điểm T1 Nếu giá trị người ta chấp nhận chuổi bit thời điểm T2 trùng khớp với chuổi bit thời điểm T1, tức chuỗi bit x chưa bị thay đổi Như vấn đề bảo đảm tính tồn vẹn chuỗi bit có chiều dài tùy ý thay việc bảo vệ toàn vẹn chuỗi bit có chiều dài cố định B Định nghĩa tổng quát hàm băm Hàm băm (hash function) hàm tốn học h có tối thiểu thuộc tính: - Nén (Compression): h ánh xạ từ chuỗi đầu vào x có chiều dài sang chuỗi đầu h(x) có chiều dài cố định n bit Dễ tính tốn (Ease of computation): cho trước hàm h đầu vào x, việc tính tốn h(x) dễ dàng.[1] Hình minh họa mơ hình nén thơng tin hàm băm, theo thơng điệp (Message) đầu vào với chiều dài tùy ý qua nhiều vòng xử lý hàm băm để tạo chuỗi rút gọn, hay chuỗi đại diện (Digest) có kích thước cố định đầu C Tính chất hàm băm mật mã Một hàm băm mật mã lý tưởng có tính chất sau : • Tính kháng tiền ảnh (Preimage resistance): Với đầu y cho trước, khơng thể tìm liệu đầu vào x cho h(x) = y (hay tìm thơng điệp từ giá trị băm cho trước) • Tính kháng tiền ảnh thứ hai (2nd - Preimage resistance): Với liệu đầu vào x cho trước y = h(x), khơng thể tính tốn để tìm giá trị x’ x cho h(x’)=h(x) (hay khơng thể tìm thơng điệp khác mà có giá trị băm) • Tính kháng xung đột (Collision resistance): Khơng thể tính tốn để tìm hai liệu đầu vào x x’ phân biệt cho chúng có giá trị băm h(x) = h(x’) (hay sửa thông điệp mà không làm thay đổi giá trị băm nó) D Phân loại hàm băm mật mã Có thể phân loại hàm băm theo khóa sử dụng theo chức Theo khóa sử dụng, hàm băm gồm loại: hàm băm khơng khóa (unkeyed) hàm băm có khóa (keyed), biểu diễn Hình 1.2 Trong hàm băm khơng khóa nhận đầu vào thông điệp (dạng h(x), với hàm băm h thơng điệp x), hàm băm có khóa nhận đầu vào gồm thơng điệp khóa bí mật (theo dạng h(x, K), với hàm băm h thông điệp x K khóa bí mật) Trong hàm băm khơng khóa, mã phát sửa đổi (MDC – Modification Detection Code) sử dụng rộng rãi nhất, bên cạnh số hàm băm khơng khóa khác Tương tự, hàm băm có khóa, mã xác thực thơng điệp (MAC - Message Authentication Code) sử dụng rộng rãi nhất, bên cạnh số hàm băm có khóa khác Theo chức năng, chia hàm băm thành loại chính: - Mã phát sửa đổi (MDC - Modification Detection Code): MDC thường sử dụng để tạo chuỗi đại diện cho thông điệp dùng kết hợp với kỹ thuật khác (như chữ ký số) để đảm bảo tính tồn - E vẹn thơng điệp MDC thuộc loại hàm băm khơng khóa MDC gồm loại nhỏ: o Hàm băm chiều (OWHF - One-way hash functions): Với hàm băm chiều, việc tính giá trị băm dễ dàng, việc khôi phục thông điệp từ giá trị băm khó khăn; o Hàm băm chống đụng độ (CRHF - Collision resistant hash functions): Với hàm băm chống đụng độ, khó để tìm thơng điệp khác có giá trị băm Mã xác thực thông điệp (MAC - Message Authentication Code): MAC dùng để đảm bảo tính tồn vẹn thơng điệp mà không cần kỹ thuật bổ sung khác MAC loại hàm băm có khóa đề cập trên, với đầu vào thông điệp khóa bí mật Mơ hình xử lý liệu Hình biểu diễn mơ hình tổng qt xử lý liệu hàm băm Theo đó, thơng điệp đầu vào với độ dài tùy ý (arbitrary length input) qua hàm nén lặp nhiều vòng (iterated compression function) để tạo chuỗi đầu có kích thước cố định (fixed length output) Chuỗi qua khâu chuyển đổi định dạng tùy chọn (optional output transformation) để tạo chuỗi băm kết (output) Hình mơ tả chi tiết trình xử lý liệu hàm băm Theo đó, q trình xử lý gồm bước chính: (1) tiền xử lý (preprocessing), (2) xử lý lặp (iterated processing) (3) chuyển đổi định dạng Trong bước tiền xử lý, thông điệp đầu vào x trước hết nối thêm số bit kích thước khối, sau chia thành khối có kích thước xác định Kết bước t khối liệu có kích thước có dạng x = x1 x2…xt làm đầu vào cho bước Trong bước 2, khối liệu xi xử lý thông qua hàm nén f để tạo đầu Hi Kết bước chuỗi đầu Ht Ht chuyển đổi định dạng hàm g để tạo chuỗi giá trị băm hết h(x) F Ứng dụng hàm băm - Xác thực mật khẩu: Mật thường không lưu dạng văn rõ (clear text), mà dạng tóm tắt Để xác thực người dùng, - - - mật người nhập vào băm hàm Hash so sánh với kết băm lưu trữ Xác thực thông điệp: Giá trị đầu vào ( tin nhắn, liệu…) bị thay đổi tương ứng giá trị băm bị thay đổi Do kẻ công phá hoại, chỉnh sửa liệu sever biết Bảo vệ tính tồn vẹn tập tin, thơng điệp gửi qua mạng: Hàm băm mật mã có tính chất hàm băm chiều Từ khối liệu hay giá trị đầu vào đưa giá trị băm Như biết tính chất hàm chiều Một người dù bắt giá trị băm họ suy ngược lại giá trị, đoạn tin nhắn băm khởi điểm Ví dụ: việc xác định xem file hay thơng điệp có bị sửa đổi hay khơng thực cách so sánh tóm tắt tính trước sau gửi (hoặc kiện đó) Cịn dùng tóm tắt thơng điệp làm phương tiện đáng tin cậy cho việc nhận dạng file Hàm băm thường dùng bẳng băm nhằm giảm chi phí tính tốn tìm khối liệu tạp hợp Giá trị băm đóng vai trị gần khóa để phân biệt khối liệu Tạo chữ ký điện tử (Digital signatures): Chữ ký số có cách đem mã hóa tóm tắt thơng điệp khóa bí mật người ký Mơ tả hình Hình biểu diễn trình chứng thực thông điệp chữ ký số Nếu kết băm giống thơng điệp xác thực Vì bit M hay SIG bị thay đổi, kết băm khác III Mô tả Hashcat A Giới thiệu Hashcat Hashcat phần mềm tiếng crack hash/khôi phục mật từ hash nhanh tiên tiến giao diện dòng lệnh Hashcat thiết kế để phá vỡ bẻ khóa mật phức tạp khoảng thời gian ngắn Để làm điều này, cho phép bẻ khóa mật cụ thể theo nhiều cách, kết hợp với tính linh hoạt tốc độ Hashcat cung cấp cho người sử dụng chế độ công/khôi phục mật khác áp dụng cho 300 thuật toán hash khác tối ưu hóa cao Hashcat hỗ trợ trình tăng tốc phần cứng khác CPU, GPU Linux, Windows OSX, đồng thời có phương tiện giúp kích hoạt bẻ khóa mật phân tán phần mềm mã nguồn mở hồn tồn miễn phí Lưu ý: Hashcat oclHashcat hợp thành chương trình Hashcat Việc phá password hash phụ thuộc nhiều vào sức mạnh phần cứng hệ thống bạn sử dụng Nếu hệ thống bạn dùng q yếu, dù có chạy Hashcat bên ngồi máy ảo, tốc độ phá password hash cải thiện mức nhỏ Chính lẽ đó, hệ thống xây dựng chun cho mục đích phá password hash thường có phần cứng khủng 10 • -m: Số thuật tốn hash (bất qn, bạn tra cứu lại lệnh hashcat –help) Trong ví dụ dùng -m để thuật tốn hash MD5 • File chứa hash đầu vào • File chứa danh sách công Dictionary chuỗi ký tự công Mask Một số mẫu câu lệnh khác Hashcat: V Các cách bẻ khóa A Cách bẻ khóa hàm băm Cách đơn giản để bẻ khóa hàm băm thử đoán mật trước Mỗi lần thử băm sau so sánh với giá trị băm thực tế để xem chúng có giống khơng, q trình nhiều thời gian Tấn công từ điển brute-force cách đoán mật phổ biến Các kỹ thuật sử dụng tệp chứa từ, cụm từ, mật phổ biến chuỗi khác có khả sử dụng làm mật khả thi 22 Cần lưu ý khơng có cách đảm bảo để ngăn chặn công từ điển công brute-force Các cách tiếp cận khác sử dụng để bẻ khóa mật khẩu: - - - - B Bảng tra cứu (Lookup tables): Các băm tính tốn trước từ từ điển sau lưu trữ với mật tương ứng chúng vào cấu trúc bảng tra cứu Đảo ngược bảng tra cứu (Reverse lookup tables): Cuộc công cho phép kẻ công mạng áp dụng từ điển công bruteforce cho nhiều hàm băm lúc mà khơng cần phải tính tốn trước bảng tra cứu Bảng cầu vồng (Rainbow tables): kỹ thuật ghi nhớ thời gian Chúng tương tự bảng tra cứu, ngoại trừ việc chúng hy sinh tốc độ bẻ khóa băm để làm cho bảng tra cứu nhỏ Băm với salt (Hashing with salt): Với kỹ thuật này, băm ngẫu nhiên hóa cách thêm thêm vào chuỗi ngẫu nhiên, gọi “muối” Điều áp dụng cho mật trước băm Bẻ khóa mật thơng qua cơng từ điển Tấn công từ điển dựa việc thử tất chuỗi danh sách xếp trước Các công ban đầu sử dụng từ tìm thấy từ điển (do công từ điển cụm từ ); nhiên, có nhiều danh sách lớn Internet mở chứa hàng 23 trăm triệu mật khôi phục từ vụ vi phạm liệu q khứ Ngồi cịn có phần mềm bẻ khóa sử dụng danh sách tạo biến thể phổ biến, chẳng hạn thay số cho chữ trông giống Một công từ điển thử khả cho có nhiều khả thành công Các công từ điển thường thành cơng nhiều người có xu hướng chọn mật ngắn từ thông thường mật thông thường; biến thể thu được, ví dụ, cách thêm chữ số ký tự dấu câu Các cơng từ điển thường thành cơng, nhiều kỹ thuật tạo mật thường sử dụng bao phủ danh sách có sẵn, kết hợp với việc tạo mẫu phần mềm bẻ khóa Một cách tiếp cận an toàn tạo ngẫu nhiên mật dài (15 chữ trở lên) cụm mật nhiều từ khóa, sử dụng chương trình quản lý mật nhập mật theo cách thủ cơng Trong Kali Linux, có sẵn danh sách thần thánh tên rockyou.txt Để đến directory chứa file này, bạn gõ câu lệnh sau: cd /usr/share/wordlists ls Chúng ta thấy file rockyou.txt Tuy nhiên chưa dùng file đâu file bị zip gzip, cần phải giải nén file trước Làm điều câu lệnh sau: sudo gzip -d rockyou.txt.gz ls Kiểm tra lại lệnh ls thấy file rockyou.txt giải nén thành công 24 Rockyou file có kích thước lớn, bạn dùng lệnh “wc -l” để kiểm tra thấy file chứa 14 triệu dịng liệu, kích thước file khoản 123 MB Đây tập hợp username password hay sử dụng Nếu bạn dự định mở file để kiểm tra xem password mà dùng có nằm file hay khơng? Thì bạn nên dùng câu lệnh để kiểm tra nhanh hiệu mở file trực tiếp Vì phần cứng hệ thống máy bạn yếu, mở file với liệu nhiều có khả làm máy bạn bị treo Để kiểm tra dùng câu lệnh sau: cat rockyou.txt | grep "passsword" Trong câu lệnh trên, thử kiểm tra xem password liệu có nằm danh sách khơng? kết hình bên 25 Lưu ý: Password bạn không nằm rockyou.txt không đồng nghĩa với việc password bạn an tồn Ví dụ: Bạn thấy kết password có nằm danh sách, sau bạn đổi lại thành password87654321, việc thay đổi chẳng giải vấn đề nhiều cụm từ password 123456789 cụm từ dễ đoán, hacker hồn tồn tập trung bruteforce password tạo thành từ chữ chữ số sau password,1,2,3,4,5,6,7,8,9,0, việc tốn thời gian chắn password bạn bị lộ hacker đủ kiên trì Thêm điều password chủ yếu chứa ký tự tiếng Anh, không bao gồm từ tiếng Việt như: - Matkhau Anhyeuem Emyeuanh v.v Nhưng điều khơng đồng nghĩa với việc file text chứa mật có kèm từ tiếng Việt không tồn đâu 26 C Bẻ khóa mật thơng qua Bruteforce Đây phương pháp tốn nhiều thời gian để giải mã mật (khi bạn khơng có chút gợi ý mật khẩu) Tơi ln ln sử dụng cuối khơng cịn phương án khác Phương pháp cố gắng thử tất kí tự chữ hoa, chữ thường, số, kí tự đặc biệt kết hợp với để so sánh với mật cần giải mã Phương pháp phụ thuộc nhiều vào hiệu phần cứng mà bạn sử dụng để giải mã Brute force hashcat có cách dùng tương tự cơng từ điển: hashcat -a -m example0.hash ?a?a?a?a?a?a Ta có lựa chọn sau để giúp tốc độ giải mã nhanh giới hạn kiểu kết hợp - ?l = abcdefghijklmnopqrstuvwxyz ?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ ?d = 0123456789 ?h = 0123456789abcdef ?H = 0123456789ABCDEF ?s = «space»!"#$%&'()*+,-./:;?@[\]^_`{|}~ ?a = ?l?u?d?s ?b = 0x00 - 0xff VI Demo A Demo Kịch bản: Do thông tin dạng JSON Object đảm bảo tính tồn vẹn nhờ sử dụng Message Authentication Code (MAC) cụ thể HS256 ( HMAC SHA256 ) Secret với thông tin base64 lại hash chiều lại ta Signature Ở dùng tool Hashcat decode token để lấy khóa bí mật ( hay cịn gọi JWT SECRET) thuật toán giúp chiếm số đặc quyền hệ thống cách giả mạo Signature vài chức dùng đến khóa bí mật SECRET ( Lưu ý kĩ thuật thường dùng cho hệ thống nhỏ hay trang web sinh viên code chưa đảm bảo độ bảo mật ) Một vài lý thuyết JWT: 27 JWT phương tiện đại diện cho yêu cầu chuyển giao hai bên Client – Server , thông tin chuỗi JWT định dạng JSON Trong chuỗi Token phải có phần header , phần payload phần signature ngăn dấu “.” Như nói JSON Web Token bao gồm phần, ngăn cách dấu chấm (.): - Header: chứa kiểu liệu , thuật toán sử dụng để mã hóa chuỗi JWT base64 lại Payload: chứa thơng tin muốn đặt chuỗi base64 lại Signature (chữ ký): Phần chử ký tạo cách mã hóa phần header , payload kèm theo chuỗi secret (khóa bí mật) data = base64urlEncode( header ) + "." + base64urlEncode( payload ) signature = Hash( data, secret ); Các bước thực hiện: 28 Bước 1: Lấy token từ mà muốn công: Ở trang web https://datba.000webhostapp.com/api/jb0c2o/auth/log in?email=test@ttcsolutions.com.vn&password=12345678 Dùng postmen call api theo đường link để lấy access_token tức token Bước 2: Copy access_token hình vào file lưu lại kali linux lệnh: echo "access_token trên"> hash.txt Bước 3: Cấp quyền cho file trên: chmod +x hash.txt 29 Bước 4: Chạy lệnh để dùng hashcat giải mã: hashcat -a -m 16500 hash.txt /usr/share/wordlists/rockyou.txt -force chờ đợi máy giải mã 30 Bước 5: Chạy lệnh để show kết quá: hashcat -a -m 16500 hash.txt /usr/share/wordlists/rockyou.txt –show đoạn cuối thấy :badat kết việc giải mã thành công Nếu giải mã không thành cơng khơng tra thứ Đây JWT_SECRET bên server 31 B Demo Kịch bản: Giả sử cách SQL Injection ta lấy password lưu DB hash chiều đơn giản thông tin hash chiều muốn giải mã Các bước thực hiện: Bước 1: Dùng Hash Identifier Kali Linux để nhận dạng loại hash: Giả sử có đoạn mã hóa MD5: - Trước mã hóa: dat - Sau mã hóa: e34d514f7db5c8aac72a7c8191a09617 32 Bước 2: Ở cho ta kết thuật toán bạn thử trang web online để đảm bảo dùng console kali Đầu tiên xem mã hash mode thuật toàn hashcat cách xem help hashcat Bước 3: Lưu đoạn mã file cấp quyền demo sau Thực giải mã: hashcat -a -m hash-md5.txt /usr/share/wordlists/rockyou.txt –force 33 Bước 4: Hiển thị kết quả: hashcat -a -m hash-md5.txt /usr/share/wordlists/rockyou.txt –show C Demo Kịch bản: Dùng bruteforce hashcat để giải mã thuật toán md5 Các bước thực hiện: Bước 1: giống demo lưu vào file cấp quyền cho file Bước 2: chạy lệnh: hashcat -a -m file lưu mã ?a?a?a?a?a?a dùng lệnh hashcat -a -m md5.txt ?l?l?s?l?l?l để giúp máy tính giải mã nhanh 34 Bước 3: chạy lênh hashcat -a -m md5.txt ?l?l?s?l?l?l show để hiển thị kết VII Kết luận Bài báo cáo trình bày khái niệm tổng quát hàm băm mật mã, cách cài đặt cách dùng tool hashcat kali linux demo công đơn giản giúp bạn đọc dễ hiểu tool 35 VIII Tài liệu tham khảo https://en.wikipedia.org/wiki/Hashcat https://www.kali.org/tools/hashcat/ https://tuhocnetworksecurity.business.blog/2021/01/28/kali-linux-can-ban-bai-8hash-cracking-voi-hashcat-john-the-ripper-va-crackstation/ https://www.geeksforgeeks.org/hashcat-tool-in-kali-linux/ https://www.kalilinux.in/2021/09/hashcat-crack-.html https://en.kali.tools/?p=155 https://resources.infosecinstitute.com/topic/hashcat-tutorial-beginners/ https://www.youtube.com/watch?v=flU_8pxNQ3g https://hashcat.net/hashcat/ 36 ... https://tuhocnetworksecurity.business.blog/2021/01/28 /kali- linux- can-ban-bai-8hash-cracking-voi -hashcat- john-the-ripper-va-crackstation/ https://www.geeksforgeeks.org /hashcat- tool-in -kali- linux/ https://www.kalilinux.in/2021/09 /hashcat- crack-.html... đầy đủ bạn chạy lệnh vào kali linux Trên giao diện dòng lệnh Kali Linux, gõ câu lệnh bên để truy cập vào phần hướng dẫn sử dụng Hashcat: hashcat help hashcat -h 18 Vì Hashcat khơng có chức tự... Cách sử dụng Hashcat Kali Linux A Cài Đặt Thông thường công cụ Hashcat cài đặt sẵn với Kali Linux cần cài đặt nó, ghi lại lệnh cho terminal: sudo apt-get install hashcat Và chạy lênh: hashcat –help

Ngày đăng: 26/02/2023, 16:42

Tài liệu cùng người dùng

Tài liệu liên quan