Bẻ khóa mật khẩu thơng qua Bruteforce

Một phần của tài liệu Học phần: An toàn mạng Bài báo cáo: Tìm hiểu về hashcat trong kali linux (Trang 27)

Đây là phương pháp tốn nhiều thời gian nhất để giải mã mật khẩu (khi bạn khơng có một chút gợi ý gì về mật khẩu). Tơi ln ln sử dụng nó cuối cùng khi khơng cịn phương án nào khác. Phương pháp này cố gắng thử tất cả các kí tự chữ hoa, chữ thường, số, kí tự đặc biệt kết hợp với nhau để so sánh với mật khẩu cần giải mã. Phương pháp này phụ thuộc nhiều vào hiệu năng phần cứng mà bạn sử dụng để giải mã.

Brute force trong hashcat có cách dùng tương tự như tấn công từ điển:

hashcat -a 3 -m 0 example0.hash ?a?a?a?a?a?a

Ta có những lựa chọn sau để giúp tốc độ giải mã nhanh hơn do giới hạn các 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 1

Kịch bản: Do những thông tin dưới dạng JSON Object đều được đảm bảo

tính tồn vẹn nhờ sử dụng Message Authentication Code (MAC) cụ thể ở đây là HS256 ( HMAC cùng SHA256 ). Secret cùng với các thông tin được base64 lại và hash 1 chiều lại ta được Signature. Ở đây dùng tool Hashcat decode token để lấy khóa bí mật ( hay cịn gọi JWT SECRET) của thuật toán giúp chiếm một số đặc quyền của hệ thống bằng cách giả mạo Signature hoặc một vài chức năng dùng đến khóa bí mật của SECRET ( Lưu ý kĩ thuật này thường chỉ dùng được cho những hệ thống nhỏ hay những trang web do sinh viên code ra chưa đảm bảo về độ bảo mật )

28 JWT là một phương tiện đại diện cho các yêu cầu chuyển giao giữa hai bên Client – Server , các thông tin trong chuỗi JWT được định dạng bằng JSON . Trong đó chuỗi Token phải có 3 phần là header , phần payload và phần signature được ngăn bằng dấu “.”

Như ở trên đã nói JSON Web Token bao gồm 3 phần, được ngăn cách nhau bởi dấu chấm (.):

- Header: sẽ chứa kiểu dữ liệu , và thuật toán sử dụng để mã hóa ra

chuỗi JWT được base64 lại

- Payload: sẽ chứa các thơng tin mình muốn đặt trong chuỗi được

base64 lại

- Signature (chữ ký): Phần chử ký này sẽ được tạo ra bằng cách mã

hóa phần header , payload kèm theo một chuỗi secret (khóa bí mật)

data = base64urlEncode( header ) + "." + base64urlEncode( payload )

signature = Hash( data, secret );

29

Bước 1: Lấy token từ 1 mà mình muốn tấn cơng: Ở đây là trang web

https://datba.000webhostapp.com/api/jb0c2o/auth/log in?email=test@ttc-

solutions.com.vn&password=12345678

Dùng postmen call api theo đường link trên để lấy access_token tức là token.

Bước 2: Copy access_token ở hình trên vào 1 file và lưu lại trong kali linux bằng lệnh: echo "access_token ở trên"> hash.txt

30

Bước 4: Chạy lệnh để dùng hashcat giải mã: hashcat -a 0 -m 16500 hash.txt /usr/share/wordlists/rockyou.txt -- force và chờ đợi máy giải mã

31

Bước 5: Chạy lệnh để show ra kết quá: hashcat -a 0 -m 16500

hash.txt /usr/share/wordlists/rockyou.txt –show và ở

đoạn cuối có thể thấy :badat là kết quả của việc giải mã thành công

Nếu giải mã không thành công sẽ không tra là bất cứ thứ gì

32

B. Demo 2

Kịch bản: Giả sử bằng 1 cách nào đó có thể SQL Injection ta lấy được

password được lưu trên DB đã được hash một chiều hoặc đơn giản là thông tin được hash 1 chiều và chúng ta muốn giải mã nó.

Các bước thực hiện:

Bước 1: Dùng Hash Identifier trên Kali Linux để nhận dạng loại hash: Giả sử ở đây có đoạn mã hóa bằng MD5:

- Trước mã hóa: dat

33

Bước 2: Ở trên cho ta 2 kết quả thuật tốn để cho chắc các bạn có thể

thử trên các trang web online để đảm bảo đúng nhất. ở đây tôi sẽ chỉ dùng thuần trên console trên kali. Đầu tiên là xem mã hash mode của thuật toàn trên ở trong hashcat bằng cách xem trong help của hashcat

Bước 3: Lưu đoạn mã và 1 file rồi cấp quyền như trên demo 1 sau đó

Thực hiện giải mã: hashcat -a 0 -m 0 hash-md5.txt /usr/share/wordlists/rockyou.txt –force

34

Bước 4: Hiển thị kết quả: hashcat -a 0 -m 0 hash-md5.txt

/usr/share/wordlists/rockyou.txt –show

C. Demo 3

Kịch bản: Dùng bruteforce trong hashcat để giải mã thuật toán md5 Các bước thực hiện:

Bước 1: giống như demo 1 lưu vào 1 file và cấp quyền cho file đó Bước 2: chạy lệnh: hashcat -a 3 -m <má hash mode> file lưu mã

?a?a?a?a?a?a và ở đây dùng lệnh hashcat -a 3 -m 0 md5.txt ?l?l?s?l?l?l để giúp máy tính giải mã nhanh hơn

35

Bước 3: chạy lênh hashcat -a 3 -m 0 md5.txt ?l?l?s?l?l?l --show để hiển thị

kết quả

VII. Kết luận

Bài báo cáo đã trình bày được các khái niệm tổng quát về hàm băm mật mã, cách cài đặt và cách dùng tool hashcat của kali linux cũng như những demo tấn công đơn giản

36

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-8- hash-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/

Một phần của tài liệu Học phần: An toàn mạng Bài báo cáo: Tìm hiểu về hashcat trong kali linux (Trang 27)

Tải bản đầy đủ (PDF)

(36 trang)