Để hack mật khẩu, chúng tôi phải kiểm tra một số lượng lớn mật khẩu cho đến khi chúng tôi tìm thấy mật khẩu hoạt động. Khi kẻ tấn công cố gắng bẻ khóa mật khẩu bằng hàng trăm hoặc hàng triệu từ hoặc tổ hợp ký tự, không có gì đảm bảo rằng bất kỳ khả năng nào trong số hàng triệu khả năng đó sẽ hoạt động.
Bộ sưu tập các tổ hợp ký tự khác nhau này được gọi là wordlist generator. Và để bẻ khóa mật khẩu hoặc mã băm, chúng ta sẽ cần một wordlist generator chắc chắn có thể bẻ khóa mật khẩu. Để làm như vậy, chúng tôi có một công cụ trong Kali Linux có tên là crunch.
Crunch Kali Linux
Crunch là một wordlist generator, nơi chúng ta có thể chỉ định một bộ ký tự tiêu chuẩn hoặc một bộ ký tự mà chúng tôi chỉ định. Crunch có thể tạo ra tất cả các tổ hợp và hoán vị khả thi dựa trên các tiêu chí đã cho. Dữ liệu được tạo bởi crunch có thể được hiển thị trên màn hình, được lưu vào một tệp hoặc được chuyển đến một chương trình khác.
Nó là công cụ rất quan trọng để tạo ra một wordlist generator có thể có của bất kỳ mật khẩu nào. Trong Kali Linux, công cụ bẻ khóa được cung cấp miễn phí. Chương trình này hỗ trợ số và ký hiệu, ký tự chữ hoa và chữ thường Unicode riêng biệt.
Các tính năng của Crunch
Sau đây là các tính năng của Crunch:
- Crunch tạo wordlist generator theo cả hai cách kết hợp và hoán vị.
- Crunch có thể chia đầu ra theo một số dòng hoặc kích thước tệp.
- Crunch hiện đã có hỗ trợ tiếp tục.
- Giờ đây, mẫu hỗ trợ số và biểu tượng
- Hiện tại, mẫu hỗ trợ các ký tự chữ hoa và chữ thường riêng biệt
- Thêm báo cáo trạng thái khi tạo nhiều tệp.
- Tùy chọn -l mới để hỗ trợ nghĩa đen iof @,% ^
- Tùy chọn -d mới để hạn chế các ký tự trùng lặp; xem tập tin người đàn ông để biết chi tiết.
- Bây giờ đã có hỗ trợ Unicode.
Tại sao chúng ta cần một công cụ Crunch?
Một tệp từ điển được yêu cầu trong quá trình tấn công mật khẩu; Tệp từ điển là tệp văn bản chứa nhiều mật khẩu thường được sử dụng. Những mật khẩu này thường được sử dụng với các công cụ bẻ khóa mật khẩu. Tuy nhiên, đôi khi người dùng rất thông minh. Họ sử dụng mật khẩu thông minh như javatpoint @ 123 và số điện thoại di động. Tệp từ điển không bao gồm các loại mật khẩu này. Bây giờ chúng ta cần một công cụ bẻ khóa, mà tin tặc thường sử dụng để tạo mật khẩu.
crunch <min> <max> [options]
Crunch có thể tạo ra một wordlist generator tùy thuộc vào các thông số của chúng tôi. Đầu ra của Crunch có thể được truyền tới màn hình, một tệp hoặc một chương trình khác.
Các thông số sau là bắt buộc:
- min-len
Min-len là chuỗi độ dài tối thiểu mà chúng ta muốn crunch bắt đầu. Tùy chọn này là cần thiết ngay cả đối với các tham số sẽ không sử dụng giá trị.
- max-len
Nó là chuỗi độ dài tối đa mà chúng ta cần crunch để kết thúc. Mặc dù giá trị sẽ không được sử dụng, tùy chọn này là cần thiết.
- charset string
Chúng ta có thể chỉ định các bộ ký tự cho crunch để sử dụng trên dòng lệnh và nếu chúng tôi để trống, crunch sẽ sử dụng các bộ ký tự mặc định. Thứ tự phải là ký tự viết thường, ký tự viết hoa, số và sau đó là ký hiệu. Nếu chúng ta không tuân theo thứ tự này thì chúng ta sẽ không nhận được đầu ra mong muốn. Chúng ta phải chỉ định các giá trị cho kiểu ký tự hoặc một dấu cộng.
Lưu ý: Nếu chúng ta cần bao gồm ký tự khoảng trắng trong bộ ký tự của mình, chúng tôi phải thoát khỏi nó bằng cách sử dụng ký tự \ hoặc đặt bộ ký tự của chúng tôi trong dấu ngoặc kép có nghĩa là “abc”.
Cách cài đặt Crunch trong Kali Linux
Chúng tôi phải sử dụng lệnh sau để cài đặt crunch trong Kali Linux:
$ sudo apt-get install crunch
Để kiểm tra cài đặt, chúng ta phải gõ lệnh sau:
$ crunch
Lệnh này hiển thị trang ban đầu của công cụ crunch, trang này sẽ kiểm tra cài đặt của công cụ.
Cách tạo wordlist generator tùy chỉnh bằng Crunch trên Kali Linux
wordlist generator là một phần quan trọng của các cuộc tấn công mật khẩu brute force. Đối với những độc giả chưa quen thuộc, cuộc tấn công bằng mật khẩu brute force là cuộc tấn công trong đó kẻ tấn công sử dụng một đoạn mã để cố gắng đăng nhập vào tài khoản lặp đi lặp lại cho đến khi họ nhận được kết quả dương tính. Các cuộc tấn công bạo lực là khá rõ ràng và chúng có thể dẫn đến việc một máy chủ được thiết kế tốt sẽ khóa kẻ tấn công hoặc địa chỉ IP của chúng.
Đây là lý do tại sao điều quan trọng là phải kiểm tra tính bảo mật của hệ thống đăng nhập theo cách này. Những kẻ tấn công thực hiện các cuộc tấn công này sẽ bị cấm và lưu lượng bổ sung phải được báo cáo cho máy chủ của chúng tôi. Mật khẩu phải an toàn hơn đối với người dùng. Để thiết lập và thực thi một chính sách mật khẩu mạnh, điều quan trọng là phải hiểu cách thức tấn công được thực hiện.
Kali Linux bao gồm một công cụ tiện dụng để tạo wordlist generator có độ dài tùy ý. Crunch là một tiện ích dòng lệnh đơn giản. Nó có một cú pháp đơn giản và có thể dễ dàng được tùy chỉnh để đáp ứng các yêu cầu của chúng tôi. Tuy nhiên, hãy lưu ý rằng những danh sách này có thể phát triển khá lớn và nhanh chóng chiếm toàn bộ ổ cứng.
Chúng tôi phải làm theo các bước sau để tạo wordlist generator tùy chỉnh:
Bước 1: Để tạo wordlist generator tùy chỉnh, trước tiên chúng ta phải khởi động Kali Linux, mở terminal, sau đó gõ Crunch để kiểm tra xem crunch đã được cài đặt hay chưa và đó là phiên bản mới nhất.
Bước 2: Chúng ta sẽ sử dụng lệnh man command để xem hướng dẫn sử dụng crunch và các tùy chọn có sẵn.
Bước 3: Crunch có cú pháp cơ bản sau:
Kali > crunch<min>max<max> <characterset> -t <pattern> -o <output filename>
- min = Độ dài mật khẩu tối thiểu.
- max = Độ dài mật khẩu tối đa.
- Charactet = Đây là ký tự được sử dụng để tạo mật khẩu.
- -t <pattern> = Mẫu mật khẩu đã tạo được chỉ định. Từ này tạo mật khẩu có độ dài lên đến 11 ký tự (7 biến, 4 cố định), tất cả đều kết thúc bằng 0728.
- -o <outputfile> = Đây là tệp mà chúng tôi muốn wordlist generator của chúng tôi được ghi vào.
Bước 4: Để tạo wordlist generator đơn giản, chúng ta phải gõ crunch <min> max <max>
Thí dụ
Khi chúng tôi thực hiện lệnh này, crunch sẽ đánh giá kích thước của tệp (1463 TB) và sau đó bắt đầu tạo danh sách.
Điều gì sẽ xảy ra nếu chúng ta biết mục tiêu luôn sử dụng mật khẩu số từ 6 đến 8 ký tự? Chúng tôi có thể nhận được một danh sách đầy đủ các lựa chọn thay thế mật khẩu đáp ứng các điều kiện này. Và gửi chúng đến một tệp trong thư mục của người dùng có tên là number8.lst bằng cách nhập:
crunch 6 8 1234567890 -o numericwordlist.lst
Bước 5: Chúng ta có thể sử dụng lệnh sau nếu chúng ta biết mật khẩu của mục tiêu dài 8 ký tự và kết thúc bằng 1 & 2:
crunch 8 8 -t @@@@@@ 12 -o pass.lst
Tùy chọn Crunch
- -b số [loại]
Nó chỉ định kích thước của tệp đầu ra và nó chỉ hoạt động nếu chúng ta sử dụng -o START nghĩa là 60MB. Các tệp đầu ra sẽ có định dạng bắt đầu bằng ký tự kết thúc bằng chữ cái, ví dụ:
./crunch 4 5 -b 20min -o START
Lệnh này sẽ tạo ra 4 tệp: aaaa-gvfed, gvfee-ombqy.txt, ombqz-wcydt.txt, wcydu-zzzzz.txt Giá trị hợp lệ cho kiểu là kb, mb, gb, kib, mib và gib. Ba danh mục đầu tiên dựa trên 1000, trong khi ba danh mục sau dựa trên 1024.
LƯU Ý: Không có khoảng cách giữa số và loại. Ví dụ, 500mb là đúng, nhưng 500 mb thì không.
- -c số
Tùy chọn này sẽ chỉ định số dòng để ghi vào tệp đầu ra; nó sẽ chỉ hoạt động nếu -o START được sử dụng, tức là 60 tệp đầu ra sẽ ở định dạng bắt đầu bằng ký tự kết thúc, ví dụ:
./crunch 1 1 -f /pentest/password/crunch/charset.lst mixalpha-numeric-all-space -o START -c 60
Sẽ tạo ra hai tệp: 1-7.txt và 8-.txt / lý do cho dấu gạch chéo trong tên tệp thứ hai là ký tự cuối cùng là khoảng trắng, ký tự này phải thoát ra trước khi in. Chúng ta phải đặt \ khi chỉ định tên tệp vì ký tự cuối cùng là khoảng trắng.
- -d số ký hiệu
Tùy chọn này sẽ giới hạn số lượng ký tự trùng lặp. -d 2 @ giới hạn đầu ra bảng chữ cái thường như aab và aac. Vì aaa được tạo thành từ ba chữ cái liên tiếp của bảng chữ cái nên nó sẽ không được tạo ra. Định dạng là số sau đó là ký hiệu trong đó số là số ký tự liên tiếp tối đa và ký hiệu là ký hiệu của bộ ký tự mà chúng ta cần giới hạn, ví dụ: @ phần trăm.
- -e chuỗi
Tùy chọn này sẽ chỉ định xem liệu có nên dừng sớm hay không.
- -f / path / to / charset.lst charset-name
Chỉ định một bộ ký tự từ characteret.lst.
- -i
Đảo ngược đầu ra để thay vì aaa, aab, aac, aad, v.v., chúng ta nhận được aaa, bca, caa, daa, aba, bba, v.v.
- -l
Nếu chúng ta sử dụng tùy chọn -t thì tùy chọn này cho crunch biết rằng các ký hiệu phải được coi là các ký tự. Do đó, chúng tôi sẽ có thể sử dụng trình giữ chỗ dưới dạng các chữ cái trong mẫu. Cả hai tùy chọn -I và -t phải có cùng độ dài.
- -m
Tùy chọn này sẽ được hợp nhất với -p. Vui lòng sử dụng -p để thay thế.
- -o wordlist.txt
Chỉ định tệp để ghi đầu ra vào, ví dụ: wordlist.txt.
- -p ký tự HOẶC -p word1 word2?
Chúng tôi đã sử dụng tùy chọn này để tạo các từ không có ký tự lặp lại.
- -q filename.txt
Tùy chọn này yêu cầu crunch đọc filename.txt và sắp xếp những gì đã đọc. Điều này tương tự với tùy chọn -p, nhưng đầu vào đến từ filename.txt.
- -r
Tùy chọn này yêu cầu crunch tiếp tục tạo các từ từ nơi nó đã dừng lại. Tùy chọn này chỉ hoạt động nếu chúng ta sử dụng nó với -o. Chúng ta nên sử dụng lệnh tương tự với lệnh ban đầu mà chúng ta đã sử dụng để tạo các từ. Tùy chọn -s là ngoại lệ duy nhất đối với tùy chọn -s này. Nếu chúng tôi đã sử dụng tùy chọn -s trong lệnh ban đầu của mình, chúng tôi nên xóa nó trước khi tiếp tục phiên. Chỉ cần thêm -r vào cuối lệnh.
- -s startblock
Tùy chọn này sẽ chỉ định chuỗi bắt đầu. Ví dụ: 03god22fs.
- -t @,% ^
Tùy chọn này sẽ chỉ định mẫu. Ví dụ: @@ abc @@@ trong đó chỉ có @ ‘s,’ s,% ‘s và ^ mới thay đổi.
- @ sẽ chèn các ký tự viết thường
- , sẽ chèn các ký tự viết hoa
- % sẽ chèn các số
- ^ sẽ chèn các ký hiệu
- -u
Sợi tỷ lệ in bị vô hiệu hóa bởi tùy chọn -u. Đây phải là lựa chọn cuối cùng.
Tạo wordlist generator mà không sử dụng chuỗi ký tự
Thực hiện lệnh dưới đây để tạo từ điển có tối thiểu 2 và tối đa 3 ký tự bằng cách sử dụng các bộ ký tự mặc định. Nó sẽ bắt đầu bằng chữ aa và kết thúc bằng chữ zzz.
Crunch 2 3 -o Desktop0.text
Để tạo từ điển, chúng tôi đã sử dụng phần tiếp theo tham số:
- Min_len: 2 cho hai ký tự
- Max_len: 3 cho ba ký tự ký tự
- -o: – Tùy chọn này được sử dụng để biểu thị đường dẫn để lưu kết quả đầu ra trong tệp văn bản.
Chúng ta có thể thấy từ hình ảnh bên dưới rằng nó đã tạo ra 18252 dòng và lưu chúng trong tệp 0.text.
Bây giờ, ở đây chúng ta đã sử dụng lệnh cat để đọc nội dung bên trong tệp 0.text, nơi chúng ta có thể thấy nội dung bắt đầu bằng aa và kết thúc bằng zzz, như thể hiện trong hình dưới đây.
cat Desktop0.text
Tạo wordlist generator bằng cách sử dụng chuỗi ký tự
Bây giờ hãy chạy lệnh sau để tạo một từ điển chứa ít nhất 3 ký tự chữ cái và tối đa 4 ký tự ký tự. Nó cũng sẽ bắt đầu bằng sss và nnnn.
crunch 3 4 sun -o Desktop1.text
Bây giờ chúng ta có thể thấy từ hình ảnh bên dưới rằng nó đã tạo ra 108 dòng và lưu chúng trong tệp 1.text.
Bây giờ chúng ta đã sử dụng lệnh cat để đọc nội dung của tệp 1.text từ bên trong và chúng ta có thể thấy rằng nó bắt đầu bằng sss và kết thúc bằng nnnn.
Tương tự, chúng ta có thể tạo một từ điển với các ký tự số bằng cách sử dụng bất kỳ chuỗi số nào.
Ví dụ: Một số người dùng sử dụng ngày sinh của họ làm mật khẩu và chúng tôi muốn tạo một từ điển có sự kết hợp của bốn số cho biết tháng và ngày, ví dụ: ngày 26 tháng 6 là năm 2606. Chúng tôi có thể tạo một wordlist generator số sử dụng “2606” làm chuỗi ký tự.
Tạo wordlist generator chữ số và chữ cái
Chúng ta có thể tạo wordlist generator gồm chữ và số của riêng mình bằng cách sử dụng lệnh bên dưới, lệnh này sẽ tạo từ điển có ít nhất 2 và tối đa 3 ký tự ký tự bằng cách sử dụng “sun123” làm chuỗi được chỉ định.
Chúng tôi có thể tùy chỉnh độ dài của wordlist generator của mình bằng cách đặt độ dài tối thiểu và tối đa.
crunch 2 3 sun123 -o Desktop3.text
Chúng tôi đã sử dụng lệnh cat để đọc nội dung của tệp 3.text bên trong, tệp này dường như chứa hỗn hợp các ký tự chữ và số
Sử dụng hoán vị để tạo wordlist generator
Nếu chúng ta muốn sử dụng hoán vị để tạo wordlist generator, chúng ta phải sử dụng tùy chọn -p. Trong điều này, chúng ta có thể bỏ qua độ dài tối thiểu và tối đa của chuỗi ký tự. Hơn nữa, như đã thấy bên dưới, chúng ta có thể sử dụng nó với một từ đơn hoặc một chuỗi nhiều từ.
crunch 6 8 -p preeti singh javatpoint
Từ hình ảnh dưới đây, chúng ta có thể phân tích kết quả đầu ra và nhận được số lượng lớn nhất nếu hoán vị được tạo ra.
Tạo từ điển với các từ hạn chế
Nếu chúng ta nhìn vào kết quả đầu ra ở trên, chúng ta sẽ nhận thấy rằng crunch đã tạo một từ điển và hiển thị số dòng cho mỗi từ điển. Ví dụ: tệp văn bản 0.text bao gồm 18252 số dòng và mỗi dòng chỉ bao gồm một từ.
Vì vậy, chúng ta có thể thực hiện lệnh sau nếu chúng ta muốn đặt bộ lọc cho một số dòng cụ thể.
crunch 5 5 IGNITE -c 25 -o Desktop8.txt
Chúng tôi sẽ chỉ tạo một từ điển gồm 25 từ và lưu đầu ra trong 8.txt.
Chúng tôi lại sử dụng lệnh cat để đọc nội dung từ tệp 8.txt bên trong, chỉ chứa 25 ký tự alpha.
cat Desktop8.txt
Phân mảnh wordlist generator
Để phân mảnh wordlist generator, chúng ta có thể sử dụng tùy chọn -b, tùy chọn này chia một wordlist generator duy nhất thành nhiều wordlist generator. Đó là một công cụ thực sự hữu ích để chia nhỏ wordlist generator GB thành từng phần MB.
crunch 5 7 sun@123 -b 3mb -o START
Hình ảnh dưới đây cho thấy nó đã chia một tệp 7MB thành ba tệp văn bản.
Từ điển nén
Với sự trợ giúp của crunch, chúng tôi có thể tạo một wordlist generator nén với option -z và các tham số khác là gzip, bzip2, lzma và 7z; chúng ta phải thực hiện lệnh dưới đây để nén.
Crunch 5 7 sun@123 -z gzip -o START
Chúng ta có thể thấy trong ảnh chụp màn hình bên dưới rằng nó đã tạo tệp văn bản nén.
Tạo wordlist generator với mẫu cụ thể
Crunch cung cấp tùy chọn -t để tạo wordlist generator bằng cách sử dụng một mẫu cụ thể dựa trên yêu cầu của chúng tôi.
Với sự trợ giúp của tùy chọn -t, chúng tôi có thể tạo 4 loại mẫu như chúng tôi đã chỉ định bên dưới:
- Bảng chữ cái viết thường: Với sự trợ giúp của @, chúng ta có thể tạo ra mẫu bảng chữ cái viết thường.
- Bảng chữ cái viết hoa: Với sự trợ giúp của, chúng ta có thể tạo ra các mẫu chữ hoa.
- Ký tự số: Với sự trợ giúp của%, chúng ta có thể tạo mẫu các ký tự số.
- Ký hiệu ký tự đặc biệt: Với sự trợ giúp của dấu ^, chúng ta có thể tạo ra mẫu của một ký hiệu ký tự đặc biệt.
Để tạo một wordlist generator bao gồm 6 ký tự số ở phía bên phải của chuỗi “preeti”, ví dụ: preeti123456, chúng ta phải thực hiện lệnh sau.
Bởi vì chúng ta có 6 chữ cái từ chuỗi preeti và chúng ta giả sử thêm 6 chữ số nữa sau chuỗi đã cho, do đó độ dài tối thiểu phải bằng tổng của chuỗi và ký tự mẫu.
crunch 12 12 -t preeti %%%%%% -o Desktop12.txt
Ở đây -t biểu thị mẫu% được sử dụng để chỉnh sửa 3 số ký tự.
Một lần nữa, chúng ta đang sử dụng lệnh cat để đọc lại nội dung của tệp 12.txt và chúng ta có thể thấy tệp đó chứa hỗn hợp các ký tự chữ và số.
Cat Desktop12.txt
Tạo wordlist generator với giới hạn ký tự trùng lặp
Crunch cho phép chúng ta giới hạn số lần một nhân vật xuất hiện bằng cách sử dụng tham số -d.
Ví dụ: Nếu chúng ta cần tạo một wordlist generator với sự trợ giúp của mẫu như preeti %%%%%% và muốn lặp lại liên tiếp mọi số ba lần, chúng ta phải sử dụng lệnh dưới đây:
crunch 12 12 -t preeti %%%%%% -d 3% -o Desktop12.1.txt
Trong điều này, chúng tôi đã sử dụng các tham số sau:
- -t: – Nó chỉ ra mẫu%, được sử dụng để chỉnh sửa 3 ký tự số.
- -d: – Nó chỉ ra mẫu%, được sử dụng để chỉnh sửa 3 ký tự số với mỗi số được lặp lại khoảng hai lần.
Một lần nữa, chúng tôi đang sử dụng lệnh cat để đọc lại nội dung của tệp 12.1txt và chúng tôi có thể thấy tệp đó chứa hỗn hợp các ký tự chữ và số với mỗi số được lặp lại ba lần.
cat Desktop12.1.txt
Bây giờ nếu chúng ta so sánh các tệp đầu ra 12.txt và 12.1 txt, thì chúng ta có thể thấy sự khác biệt về số lần lặp lại.