Tải bản đầy đủ (.docx) (25 trang)

Hashcat là phần mềm crack hashkhôi phục mật khẩu từ hash nhanh nhất

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.11 MB, 25 trang )

Mục Lục

CHƯƠNG1. CƠ SỞ LÝ THUYẾT............................................................................5
1.1. GIỚI THIỆU VỀ HASHCAT.......................................................................5
1.1.1.

Tổng quan Hashcat..............................................................................5

1.1.2.

Cài đặt..................................................................................................5

1.1.3.

Tùy chọn...............................................................................................6

1.1.4.

Thuật Toán...........................................................................................8

1.1.5.

Sử dụng Hashcat..................................................................................9

CHƯƠNG 2. HASHCAT MỞ RỘNG......................................................................12
1.1. OclHashcat ( cuda Hashcat ).......................................................................12
1.1.1.

Tổng quan...........................................................................................12

1.1.2.



Tùy chọn.............................................................................................12

1.1.3.

Cách sử dụng......................................................................................13

1.1.4.

Lời khuyên..........................................................................................14

1.2. OclHashcat-Plus ( cuda Hashcat-Plus )......................................................14
1.2.1.

Tổng quan...........................................................................................14

1.2.2.

Tùy chọn.............................................................................................15

1.2.3.

Cách sử dụng......................................................................................16

1.2.4.

Lời khuyên..........................................................................................17

1.3. OclHashcat-lite ( cudaHashcat-lite )...........................................................17
1.3.1.


Tổng quan...........................................................................................17

1.3.2.

Tùy chọn.............................................................................................18

1.3.3.

Cách sử dụng......................................................................................21

1.3.4.

Lời khuyên..........................................................................................21

CHƯƠNG 3. PHỊNG CHỐNG TẤN CƠNG BẺ KHĨA MẬT KHẨU
HASHCAT................................................................................................................. 21
1.1. Đặt password đủ mạnh................................................................................21
1.2. Thay đổi mật khẩu thường xuyên...............................................................22
1.3. Một số cách phòng chống khác...................................................................23
CHƯƠNG 4. DEMO CÁCH BẺ KHÓA MẬT KHẨU DÙNG HASHCAT..........25
TÀI LIỆU THAM KHẢO........................................................................................28

1


CHƯƠNG1. CƠ SỞ LÝ THUYẾT
1.1. GIỚI THIỆU VỀ HASHCAT
1.1.1. Tổng quan Hashcat
Hashcat là phần mềm crack hash/khôi phục mật khẩu từ hash nhanh nhất và tiên tiến

nhất hiện nay trên giao diện dòng lệnh. Hashcat là một phần mềm mã nguồn mở và
hồn tồn miễn phí. Hashcat có thể được sử dụng trên nhiều nền tảng khác nhau như
Linux, Windows và MacOS.
Hashcat là công cụ khôi phục mật khẩu dựa trên CPU nhanh nhất. Mặc dù không
nhanh bằng các đối tác GPU của nó: oclHashcat, oclHashcat-plus, and oclHashcat-lite.
1.1.2. Cài đặt
Download phiên bản mới nhất của hashcat từ trang web hashcat tại
Cần 7zip để giải nén kho lưu trữ đã tải xuống.
Sau khi giải nén, sẽ có một thư mục tên là hashcat-X.XX, trong đó X đại diện cho
phiên bản đã tải xuống. Bên trong thư mục hashcat, bạn sẽ thấy một danh sách các file
và một vài thư mục. Ý nghĩa các file như sau: Hashcat-cli (32/64). (Bin / exe) chương trình chính. Đối với hệ điều hành 32 bit, hãy chọn 32 và đối với 64 bit, hãy
chọn 64. Người dùng Linux sẽ chạy .bin, trong khi người dùng windows sẽ chạy .exe.
Toán hạng phải được cung cấp hoặc hashcat sẽ khơng làm gì cả. Trên cửa sổ chỉ cần
nhấp đúp chuột vào tệp thực thi sẽ nhanh chóng mở ra và dấu nhắc lệnh và đóng nó
lại. Người dùng Windows phải chạy điều này từ dấu nhắc lệnh hoặc thông qua .bat
/.cmd.
Rules/ - Thư mục này chứa một số quy tắc được tạo trước để bạn sử dụng với hashcat.
Examples/ - Thư mục này có nhiều tệp được sử dụng với các chế độ băm khác nhau.
Đây là một cách tốt để thực hành với hashcat và hiểu các kiểu băm trơng như thế nào.
IE: A0.M0.hash có danh sách các băm MD5 đơn giản.
Salts/- Chứa danh sách các salts 3 byte tăng dần từ a đến z. Những thứ này có thể hữu
ích, nhưng nhìn chung bạn sẽ khơng cần chúng. Các danh sách này có thể được mở
rộng hoặc có thể thêm các danh sách salts mới. Đây là cách sử dụng hashcat nâng cao.
2


Tables / - Thư mục tables chứa các tệp được sử dụng với các khóa chuyển đổi –-tablemin / max và tệp. Những điều này có thể hữu ích khi bạn biết các yêu cầu của mật
khẩu.
1.1.3. Tùy chọn
Hashcat đi kèm với rất nhiều tùy chọn mà bạn có thể sử dụng để tùy chọn cho các

cuộc tấn công của mình.
--remove: Thêm tuỳ chọn này sẽ xóa hash khỏi danh sách khi nó bị crack. Nó
khơng u cầu thêm đầu vào. Điều này sẽ giúp chúng ta không phải tấn cơng
cùng một hàm băm hai lần, vì nó sẽ bị xóa khi bị bẻ khóa. (Default: not used)
--quiet: Áp dụng tất cả các đầu ra ngoại trừ lỗi và các hàm băm được khơi
phục. (Default: not used)
--stdout: Thay vì cố gắng khôi phục mật khẩu, hashcat chỉ cần xuất ra cửa sổ
đầu cuối.
--disable-potfile: Ngăn Hashcat ghi các hàm băm đã khôi phục vào hashcat.pot.
(Default: not used)
--rules-file = FILE hoặc –r: Thêm điều này sẽ cho phép hashcat sử dụng file
rules được chỉ định. Hashcat sau đó sẽ chạy các quy tắc được chỉ định chống lại
nỗ lực hiện tại. (Default: not used)
--rules-file = rules / best64.rule hoặc -r rules / best64.rule
--output-file = FILE hoặc –o: Chỉ định nơi các mã băm bị crack sẽ được ghi
vào. Điều này nên được sử dụng nếu bạn có kế hoạch giữ lại các hàm băm hoặc
không muốn sao chép/ dán chúng từ terminal hoặc cmd. (Default: not used)
--output-file = crack.out hoặc –o crack.out
--output-format = NUM: NUM có thể là 0, 1 hoặc 2. Nói chung là khơng cần
thiết, nhưng nếu văn bản thuần túy chứa ký tự hex sẽ cần được chỉ định để
ngăn văn bản thuần túy xấu. (Default: Mode 0)
--output-format = 0
--debug-file = FILE: Chỉ định tệp mà thông tin gỡ lỗi sẽ được ghi vào.
(Default: not used)
--Debug-file = debug.txt
--salt-file = FILE hoặc –e: Chỉ định danh sách “salt” được tạo trước đó sẽ được
sử dụng trong một phiên. Điều này được sử dụng khi muối băm bị thiếu.
(Default: not used)
--debug-mode = NUM: Viết quy tắc tìm kiếm, từ gốc hoặc từ bị biến đổi đã
thành công chống lại (các) hàm băm được cung cấp thành –debug-file =.

(Default: not used)
--seperator-char = CHAR hoặc –p: Được sử dụng để chỉ định dấu phân tách
trong danh sách băm. IE hash: tên người dùng: guid –p: sẽ cho hashcat biết
cách đọc vị trí kết thúc của một trường. Default: ‘:’
--p :
3


--threads hoặc –n: Để sử dụng trên bộ xử lý đa luồng. Hầu hết tất cả các bộ xử
lý đều chứa nhiều lõi. Nếu bạn có bộ xử lý lõi tứ, hãy đặt –n 4 hoặc –n 6 cho
hexacore. Nếu bạn chạy một bộ xử lý đa hệ thống, đặt –n thành số lõi * số bộ
xử lý vật lý. IE kép hexacore sẽ là 6 (lõi) * 2 (bộ xử lý) = 12 (tổng số luồng).
Default: 8
--n 12
--segment-size = NUM hoặc –c: Chỉ định dung lượng bộ nhớ tính bằng MB sẽ
được phép lưu vào bộ nhớ đệm của danh sách các từ. Nếu bạn đang làm việc
với một lượng bộ nhớ hạn chế, điều này có thể được thiết lập để không ảnh
hưởng đến các dịch vụ khác. Công tắc sau sẽ cho phép lưu trữ 10MB từ trong
danh sách của bạn. Default: 32
--c10
--words-skip= NUM hoặc –s: Bỏ qua số từ đã cho khi tiếp tục một phiên đã
dừng. Cái này ngăn việc chạy lại các từ đối với danh sách băm của bạn, điều
này sẽ làm giảm thời gian thực hiện. Công tắc sau sẽ bỏ qua 100000 từ đầu
tiên. (Default: not used)
--s 100000
--words-limit = NUM hoặc –l: Chỉ định số lượng từ cần được xử lý. Điều này
hữu ích khi khơi phục cùng một danh sách băm trên nhiều máy tính để cùng
một máy tính khơng bao giờ chạy các từ đang được xử lý bởi người khác. Công
tắc sau sẽ chỉ sử dụng 20000 từ đầu tiên. (Default: not used)
--l 20000

--generate-rules = NUM hoặc –g: Yêu cầu hashcat tạo NUM quy tắc được áp
dụng cho mỗi lần thử. Các chuyển đổi sau sẽ có hashcat để tạo ngẫu nhiên 512
quy tắc đang bay để được sử dụng cho phiên đó. Điều này có thể loại bỏ nhu
cầu về các tệp quy tắc lớn, mặc dù các tệp quy tắc được nhắm mục tiêu có thể
làm tăng cơ hội khôi phục mật khẩu văn bản thuần túy. (Default: not used)
--g 512
--generate-rules-func-min / max = NUM: Chỉ định số lượng hàm sẽ được sử
dụng. Con số nào có thể khơng giới hạn nhưng số lượng lớn khơng được
khuyến khích. Khi được sử dụng cùng với –g, bất kỳ quy tắc nào bên ngoài cài
đặt này sẽ bị bỏ qua. IE: -g 512 tạo ra l r, l ^ f và sa @, đây là tất cả các quy tắc
hợp lệ để được sử dụng, tuy nhiên, l ^ f sa@ r $ 3 sẽ bị bỏ qua vì nó chứa 5
hàm. (Default: min = 1 max = 4
--attack-mode = NUM hoặc –a: Chỉ định kiểu tấn công sẽ được thực hiện đối
với một hàm băm. Sử dụng các vectơ tấn công khác nhau sẽ cải thiện cơ hội
khôi phục băm. Các chế độ như sau:
--0 = Straight - Đơn giản chỉ cần chạy tất cả các từ trong từ điển đối với danh
sách băm của bạn. Có một từ điển tốt ở đây sẽ cải thiện cơ hội khôi phục thành
công một hàm băm.
--1 = Kết hợp - Kết hợp các từ từ từ điển đã cho.

4


- Các chế độ 0 và 1 cũng là các chế độ duy nhất chấp nhận các công tắc –r hoặc
–g.
--2 = Toggle-Case - Chuyển tất cả chữ hoa thành chữ thường và tất cả chữ
thường thành chữ hoa. Chữ số và kí tự đặc biệt bị bỏ qua vì chúng khơng có
trường hợp.
--3 = Brute-Force - BF nên được sử dụng như một phương sách cuối cùng vì nó
khơng hiệu quả với các mật khẩu dài và có thể khá mất thời gian.

--4 = Hoán vị - Lấy các chữ cái từ một từ và sắp xếp lại chúng. Ví dụ: abc trở
thành abc, acb, bca, bac, cba, taxi.
--5 = Table-Lookup - Ngắt một chuỗi thành các ký tự riêng lẻ và áp dụng quy
tắc cho từng ký tự phù hợp với bảng đầu vào Default: Mode 0
--hash-mode = NUM hoặc –m: Điều này cho hashcat biết loại băm cụ thể mà
bạn đang làm việc. Hãy nhớ rằng hashcat sẽ giả sử –m 0 nếu khơng có –m
được đặt và sẽ tạo ra lỗi cho bất kỳ hàm băm nào trên 32 byte. Các danh sách
quá dài và tôi khơng thể giải thích được. Default: Mode 0
--m 100
--toggle-min / max = NUM: Cài đặt điều này sẽ cho hashcat biết để mong đợi
tối thiểu / tối đa là X và Y. Có thể rút ngắn thời gian chạy bằng cách bỏ qua các
giá trị nằm ngoài yêu cầu mật khẩu. Default: min=1 max=16
--toggle-min = 3 --toggle-max = 5
--bf-pw-min = 4 --bf-pw-max = 8
--bf-pw-min / max = NUM: Điều này sẽ chỉ định số lượng không gian ký tự tối
thiểu và tối đa để thử khi vũ phu cưỡng bức. Lệnh sau sẽ thử tất cả các tổ hợp
ký tự từ bốn (4) tám (8) các khoảng trắng. Chỉ các độ dài bắt đầu từ tối thiểu
hoặc kết thúc ở mức tối đa mới được thử. Mặc định: min = 1 max = 16
--bf-cs-buf = CHARS: Cho hashcat biết những ký tự sẽ sử dụng khi cưỡng bức
vũ phu. Lệnh sau sẽ chỉ sử dụng các ký tự từ a đến g và các số từ 1 đến 5. Điều
này có thể chấp nhận tồn bộ khơng gian bàn phím là 96 ký tự.
Default: abcdefghijklmnopqrstuvwxyz
--bf-cs-buf = abcdefg12345
--perm-min / max = NUM: Bất kỳ từ nào nằm ngoài độ dài đã xác định sẽ bị bỏ
qua. Default: 2
--table-min / max = NUM: Bất kỳ từ nào nằm ngoài độ dài đã xác định sẽ bị bỏ
qua. Default: 10
--table-file = FILE: Chỉ định bảng sẽ sử dụng với –a 5. Có thể tìm thấy bảng
trong thư mục bảng hoặc có thể được tạo ra của riêng bạn.
(Default: not used)

--table-file = table / toggle_case_and_leet.tab
1.1.4. Thuật Tốn
Một điều khá bất lợi trên Hashcat đó là nó khơng thể nhận diện được password hash
mà chúng ta cung cấp được mã hóa bằng thuật tốn nào, vì lẽ đó chúng ta phải tìm
cách xác định được thuật tốn hash thì Hashcat mới phá hash được. Ví dụ về các thuật
5


toán băm được hỗ trợ bởi hashcat là LM băm, MD4, MD5, SHA-gia đình và Unix
Crypt định dạng cũng như các thuật toán được sử dụng trong MySQL và Cisco PIX.
Đầu tiên, trên Kali Linux, các bạn mở giao diện Terminal lên và gõ câu lệnh sau:
~$ hash-identifier
Cách sử dụng rất đơn giản, chỉ cần bạn copy và paste đoạn hash của bạn vào dòng
“HASH:” và bấm enter. Hệ thống sẽ giúp bạn xác định thuật toán hash. Để thoát ra,
các bạn ấn tổ hợp phím Ctrl + C.

Hình 1.1. Kết quả của lệnh tra thuật toán

Possible Hashs là trường hợp là thuật tốn. Trong trường hợp trên (hình 1.1) SHA-256
và Hval-256 là thuật toán.
Least Possible Hashs là trường hợp ít nhất có thể xảy ra.
1.1.5. Sử dụng Hashcat
Trên giao diện dòng lệnh của Kali Linux, chúng ta gõ câu lệnh bên dưới để truy cập
vào phần hướng dẫn sử dụng của Hashcat
~$ hashcat --help

6


Hình 1.2. Kết quả của lệnh --help


Vì hashcat khơng nhận biết được thuật toán nên ta phải chỉ cho hashcat biết thuật toán
ta cần sử dụng của hash đầu vào là gì. Trên Hashcat, thơng tin này được gọi là hash
modes.

Hình 1.3. Danh sách các thuật tốn

Hashcat hỗ trợ rất nhiều thuật tốn hash khác nhau đồng thời cịn cho chúng ta biết
phân loại của các thuật tốn hash nữa.(Hình 1.3)
Hash cat hỗ trợ 4 hình thức crack hash:
-

Dictionary (-a 0): Bạn sẽ cung cấp cho Hashcat một danh sách (có thể là tập
hợp những passwords hay được dùng nhất). Hashcat sẽ sử dụng lần lượt từng
7


-

-

-

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

Một câu lệnh tấn công Hashcat cơ bản sẽ có cú pháp như sau:
hashcat -a <tấn-cơng> -m <thuật-tốn-hash> <file-chứa-hash-đầu-vào> <danhsách hoặc chuỗi-ký-tự>
Ví dụ:
hashcat -a 0 -m 0 file-chứa-hash file-danh-sách
Theo đó ta có các thành phần bắt buộc 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 và -a 7: Dictionary + Mask
-m: Số của thuật toán hash (bất cứ khi nào quên, bạn đều có thể tra cứu lại bằng
lệnh hashcat –help). Trong ví dụ mình dùng -m 0 để chỉ thuật toán hash MD5.
File chứa hash đầu vào
File chứa danh sách nếu tấn công Dictionary hoặc chuỗi ký tự nếu tấn công Mask
8



CHƯƠNG 2. HASHCAT MỞ RỘNG
1.1. OclHashcat ( cuda Hashcat )
1.1.1. Tổng quan

OclHashcat là chương trình khơi phục mật khẩu dựa trên GPU nhanh nhất
thế giới, được mã hóa bằng atom cho cả GNU / Linux và MS Windows,
32 và 64bit. Đây là một bước tiến lớn so với các giải pháp dựa trên CPU
do lượng dữ liệu mà GPU có thể xử lý thông qua CUDA (NVIDIA),
Stream (AMD) và OpenCL.
Từ việc mất hàng giờ trên CPU thì chỉ cịn mất vài phút với GPU.
Một lưu ý nhanh khác, atom đã chia oclHashcat thành hai tệp thực thi
chính.
OclHashcat dành cho AMD (ATI) chỉ dành cho người dùng. Nó sẽ yêu
cầu cài đặt Stream SDK . để thực hiện trên phiên bản WINDOWS cần bổ
sung windows ADM users cần 1 màn hình hoặc nắp để kết nối tới mỗi
card.

Hình 1.4. Giao diện oclHashcat khi crack password

1.1.2. Tùy chọn
9


OclHashcat có nhiều tuỳ chọn:
- oclHashcat hoạt động hơi khác so với hashcat vì nó sử dụng mặt nạ trái
trái và mặt nạ phải.Được chia thành hai mảnh,bạn có thể chỉ định một từ
điển hoặc một bộ ký tự cho một trong hai bên
Ví dụ: ./oclHashcat64.bin hashlist dict1 ?d?d?d?d

--quiet: Loại bỏ đầu ra thành STDOUT để thiết bị đầu cuối, dấu nhắc
lệnh của bạn không bị ngập trong văn bản.
--remove: mỗi hash bị bẻ khóa, nó bị xóa khỏi danh sách băm ngăn cản
oclHashcat khỏi cố gắng bẻ khóa nó một lần nữa,không cần thêm đầu
vào.
--output-file = FILE hoặc –o: Chỉ định nơi các mã băm bị crack sẽ được
ghi vào( sử dụng nếu bạn có kế hoạch giữ lại các hàm băm hoặc không
muốn sao chép / dán chúng từ thiết bị đầu cuối hoặc dấu nhắc lệnh).
--output-format = NUM: NUM có thể là 0, 1 hoặc 2, NUM là không cần
thiết, nhưng nếu văn bản thuần túy chứa hex ký tự này sẽ cần được chỉ
định để ngăn văn bản thuần túy xấu.
--salt-file = FILE hoặc –e: Cung cấp muối cho các hàm băm thiếu muối
của chúng. Hữu ích cho băm vbull hoặc xtcommerce.
--gpu-devices = STR hoặc –d: sử dụng để chỉ định một số GPU (theo
thứ tự) nếu bạn có nhiều thiết lập GPU hoặc thẻ GPU kép. Do khối lượng
dữ liệu được xử lý quá lớn, máy tính để bàn sẽ bị lag hoặc giật, sử dụng
option này để đảm bảo máy tính để bàn hoạt động trơn tru trong khi cố
gắng khôi phục.
--gpu-accel = NUM hoặc –n: gpu-accel xác định, điều chỉnh khối lượng
công việc. Giá trị càng cao, thẻ sẽ hoạt động. Giá trị cao hơn có thể hiệu
quả hơn. Lưu ý :con số càng cao, càng nhiều điện năng cần thiết.
--gpu-loops = NUM: sử dụng để chỉnh sửa cho công việc thêm khối. Cụ
thể hơn, số lượng từ mỗi công việc đơn vị. Về cơ bản, cung cấp nhiều
công việc hơn cho mặt nạ bên trái.
--increment: tăng mặt nạ bên phải +1 cho mỗi vị trí.
1.1.3. Cách sử dụng

OclHashcat sử dụng mặt nạ trái và phải với tất cả các cuộc tấn công của
nó. Một trong hai mặt nạ có thể được đặt thành bảng mã hoặc từ điển.
Tấn công Bruteforce: làm cạn kiệt một hoặc nhiều ký tự trên mặt nạ trái

và phải cho đến khi tìm thấy plain.
Ví dụ : một brute force của một văn bản thuần túy tám ký tự có đủ chữ và
số.
./oclHashcat64.bin hashlist -1 ?l?u?d?s ?1?1?1?1 ?1?1?1?1
10


có thể được thực hiện bằng cách chỉ định các ký tự : một brute force của
một văn bản thuần túy tám ký tự chỉ sử dụng một ký tự trên ở vị trí một,
ký tự dưới ở vị trí từ hai đến sáu và các chữ số ở bảy và tám.
./oclHashcat64.bin hashlist ?u?l?l?l ?l?l?d?d
sử dụng từ điển trên cả mặt nạ trái và phải
Tấn công kết hợp: là sử dụng từ điển trên cả mặt nạ trái và phải , thực
hiện bằng cách sử dụng một từ điển trong một mặt nạ và sử dụng một bộ
ký tự được chỉ định trong mặt nạ kia.
Ví dụ: Đối với ví dụ này, sử dụng một từ điển trong mặt nạ bên trái, sau
đó nối thêm? D? D? D? D qua mặt nạ bên phải để sử dụng 0000-9999 ở
cuối mỗi từ trong từ điển.
-./oclHashcat64.bin hashlist dict1 ?d?d?d?d
Ngược lại ,sử dụng? L? L? L? L trong mặt nạ bên trái và từ điển ở bên
phải.
-./oclHashcat64.bin hashlist ?l?l?l?l dict1
1.1.4. Lời khuyên

OclHashcat chỉ khả dụng trên các cạc đồ họa NVIDIA và AMD được hỗ
trợ. Nếu mơ hình thẻ video của bạn là không khả dụng thông qua CUDA,
Stream hoặc OpenCL, bạn sẽ không thể chạy bộ ocl.
PPhải cung cấp đủ khả năng làm mát và năng lượng vì quá trình xử lý
GPU diễn ra mạnh mẽ và có thể gây ra hư hỏng phần cứng nếu các biện
pháp phịng ngừa khơng được thực hiện. Trước khi chạy oclHashcat,

atom, hoặc bất kỳ thành viên nào khác đều có thể được giữ chịu trách
nhiệm cho bất kỳ thiệt hại nào do chạy phần mềm này.
1.2. OclHashcat-Plus ( cuda Hashcat-Plus )
1.2.1. Tổng quan
- oclHashcat-plus là một trình bẻ khóa đa băm dựa trên GPGPU sử dụng
phương thức tấn công brute-force (được thực hiện dưới dạng tấn công mặt
nạ ), tấn công tổ hợp , tấn công từ điển , tấn công hỗn hợp , tấn công mặt
nạ và tấn công dựa trên quy tắc.
- Phiên bản oclHashcat thứ hai này , được thiết kế cho các cuộc tấn công dựa
trên từ điển, được gọi là “oclHashcat-plus”.

11


Hình 1.5. Giao diện oclHashcat-Plus khi crack password

1.2.2. Tùy chọn
Oclhashcat-plus [options]... hash|hashfile [directionary|wordfiles]
-

Trong đó, các option là:
-- quiet: Loại bỏ đầu ra thành STDOUT để terminal/command prompt của
bạn không bị ngập trong văn bản. Các văn bản đã được hash và các lỗi
chương trình sẽ vẫn được hiển thị. Khơng cần thêm đầu vào. Mặc định:
không được sử dụng.
-- remove: Một lần nữa, giống như hashcat vì mỗi hash bị bẻ khóa, nó sẽ bị
xóa khỏi danh sách để ngăn oclHashcat cố gắng bẻ khóa nó một lần nữa.
Khơng cần thêm đầu vào. Mặc định: không được sử dụng.
-- output-file=tên FILE hoặc –o tên FILE: chỉ định văn bản sau khi hash
sẽ được ghi vào. Mặc định: không được sử dụng.

-- runtime=NUM: chỉ định thời gian mà oclhashcat-plus có thể chạy (đơn
vị là giây). Mặc định: không được sử dụng
-- segment-size=NUM hoặc -c: chỉ định bộ nhớ đệm cho wordlist để không
bị ảnh hưởng đến các dịch vụ khác. Mặc định: 32
-- gpu-async: Điều này được sử dụng cho các thẻ NVIDIA cũ hơn như GTS
8800. Nó có thể tăng hiệu suất bằng cách gọi một vòng lặp CPU để xử lý
12


trong khi chờ GPU ngừng xử lý. Không yêu cầu bất kỳ đầu vào nào khác.
Mặc định: không được sử dụng
-- gpu-device=STR hoặc -d: Điều này được sử dụng để chỉ định một số
GPU (theo thứ tự) để sử dụng nếu bạn có thiết lập nhiều GPU hoặc thẻ GPU
kép. Điều này hữu ích nếu bạn đang chạy trình quản lý cửa sổ như Gnome,
KDE hoặc Windows. Do khối lượng dữ liệu được xử lý quá lớn, máy tính
để bàn sẽ bị lag hoặc giật; bạn có thể bỏ qua GPU đầu tiên của mình trong
trường hợp này để đảm bảo máy tính để bàn hoạt động trơn tru trong khi cố
gắng khôi phục. Mặc định: mọi card được sử dụng
-- gpu-accel==NUM hoặc -n: Điều này được sử dụng để chia công việc.
Giá trị này được đặt càng cao, card của bạn sẽ hoạt động càng khó. Các giá
trị cao hơn có thể hiệu quả hơn đối với các nỗ lực brute-force trong khi các
giá trị thấp hơn có xu hướng tốt hơn cho các cuộc tấn công danh sách từ.
Điều này liên quan đến cách oclHashcat lưu trữ và truy xuất dữ liệu từ các
thẻ GDDR. Hãy lưu ý đến nguồn điện của bạn, con số càng cao, càng nhiều
điện năng cần thiết. Khơng có giá trị tốt nhất được đặt. Hãy thử các giá trị
khác nhau để tìm những gì phù hợp với bạn. Mặc định: khơng được sử
dụng.
-- gpu-loop=NUM: Điều này được sử dụng để điều chỉnh khối lượng công
việc hơn nữa. Cụ thể hơn là số lượng từ trên một đơn vị công việc. Về cơ
bản cung cấp nhiều công việc hơn cho left mask. Mặc định: 128

-- gpu-watchdog=NUM: Đặt điều này sẽ cho phép bạn ghi đè biện pháp an
tồn được tích hợp sẵn. setting mức này cao hơn có thể gây ra hỏng hóc
vĩnh viễn cho các card video của bạn, hãy cẩn thận nếu tăng giới hạn này.
Đối với những người muốn an tồn, bạn có thể đặt mức này thấp hơn. Hãy
nhớ rằng oclHashcat-plus sử dụng độ C chứ không phải độ F. MẶc định: 90
-- generate-rules=NUM hoặc -g: Yêu cầu hashcat tạo NUM quy tắc được
áp dụng cho mỗi lần thử. Cơng tắc sau sẽ có hashcat để tạo ngẫu nhiên 512
quy tắc ngay lập tức được sử dụng cho phiên đó. Vì oclHashcat-plus được
xây dựng dựa trên các cuộc tấn công dựa trên quy tắc, nên sử dụng một số
lượng lớn là lựa chọn tốt hơn ở đây. Tất cả quá trình tạo quy tắc được thực
hiện trên GPU nên khơng có chu kỳ CPU nào được thực hiện. Mặc định:
không được sử dụng
-- hash-types=NUM hoặc -m: chọn loại hash. Mặc định: chế độ 0
1.2.3. Cách sử dụng
OclHashcat-plus có thể được sử dụng theo hai cách: có hoặc khơng có quy tắc.
Đối với các loại băm được lặp đi lặp lại nhiều, bạn nên sử dụng oclHashcatplus để thực hiện các cuộc tấn cơng từ điển. Bạn cũng có thể sử dụng các quy
tắc để tăng cơ hội khôi phục mật khẩu. Như đã nêu trước đây, oclHashcat-plus
hoạt động rất tốt với các tệp quy tắc lớn. Bạn có thể chọn các quy tắc ở một
trong các hai cách:
13


- Danh sách quy tắc được tạo trước (-r)
- Hoặc được tạo nhanh (-g)
1.2.4. Lời khuyên
OclHashcat-plus, cũng như với tất cả các chương trình băm dựa trên GPU, là
một cơng cụ khôi phục dựa trên quy tắc cực kỳ hiệu quả. Để có kết quả tốt
nhất, bạn nên viết các tệp quy tắc dựa trên các yêu cầu mật khẩu từ nơi lấy
danh sách. Và một lần nữa, hãy giám sát phần cứng của bạn đúng cách để
không gây ra thiệt hại do làm mát không đúng cách.

1.3. OclHashcat-lite ( cudaHashcat-lite )
1.3.1. Tổng quan

oclHashcat-lite là một brute forcer GPU đơn giản đã được tối ưu hóa để
khơi phục hàm băm duy nhất. Nó có thể lấy từ trang web hashcat tại đây:
và yêu cầu 7zip để giải nén.
Theo nhiều cách, oclHashcat-lite hoạt động giống như oclHashcat nhưng
với tốc độ tốt hơn nhiều (CHỈ TRÊN MỘT MẶT HASH). Nếu như bạn
đang tìm cách khơi phục hàm băm từ một điện thoại bị khóa SL3 hoặc chỉ
cần khơi phục hàm băm thuộc về Quản trị viên trên máy Windows mà từ
trước đến nay bạn vẫn chưa tìm được oclHashcat-lite là những gì bạn
muốn.

Hình 1.6. Giao diện oclHashcat-lite

14


Ở đây chúng ta thấy cấu trúc thư mục của oclHashcat-lite:
oclHashcat-lite (32/64). (bin / exe): tệp thực thi chính
oclExample. (sh / cmd): là một tệp ví dụ để hoạt động như một khởi
động nhanh cho oclHashcat-lite. Nó sẽ được sử dụng như một ví dụ,
nhưng sau khi đọc nó, khơng cần thiết.
docs / : là các tài liệu liên quan đến oclHashcat
kernels / : là thư mục chứa các nhân phần cứng. Phần này không nên
chạm vào trừ khi được chỉ dẫn bởi một thành viên cấp cao của cộng đồng
hashcat, điều này có thể làm hỏng oclHashcat-lite.

Hình 1.7. Giao diện oclHashcat-lite khi crack password


1.3.2. Tùy chọn

--quiet: chặn đầu ra
--remove: thêm tuỳ chọn này sẽ xóa hash khỏi danh sách khi nó bị crack.
Nó khơng u cầu thêm đầu vào. Điều này sẽ giúp chúng ta không phải
tấn công cùng một hàm băm hai lần, vì nó sẽ bị xóa khi bị bẻ khóa.
(Default: not used)
--output-file = FILE hoặc –o: chỉ định nơi các mã băm bị crack sẽ được
ghi vào. Điều này nên được sử dụng nếu bạn có kế hoạch giữ lại các hàm
băm hoặc không muốn sao chép/ dán chúng từ terminal hoặc cmd.
(Default: not used)
15


--output-file=cracked.out or --o cracked.out
--output-format = NUM: NUM có thể là 0, 1 hoặc 2. Nói chung là
khơng cần thiết, nhưng nếu văn bản đơn giản chứa ký tự hex sẽ cần được
chỉ định để ngăn văn bản đơn giản xấu. (Default: Mode 0)
--output-format = 0
--session = STR: Cho phép bạn đặt tên cho một phiên sẽ được khôi phục
vào một ngày sau đó. Nếu bạn muốn dừng q trình chạy trước khi hoàn
thành và bắt đầu lại, điều này nên được thiết lập. Bạn có thể đặt tên cho
nhiều phiên, nhưng khi khôi phục bằng --restore bên dưới, tên sẽ được
xác định. (Default: not used)
--session=md5
--restore: Khơi phục phiên trước đó. Phải được sử dụng kết hợp với –
session = STR. (Default: not used)
--session=md5 –restore
--restore-timer=NUM : Lưu tệp khôi phục hiện tại của bạn NUM giây
một lần. Nếu bạn mất nguồn, tệp khơi phục của bạn sẽ chứa tiến trình mà

tệp được lưu lần cuối. Ta có thể lưu tệp 30s 1 lần. Mặc định: 60
--restore-timer=30
--gpu-async : Điều này được sử dụng cho các thẻ NVIDA cũ hơn như
GTS 8800. Nó có thể tăng hiệu suất bằng cách gọi một vịng lặp CPU để
xử lý trong khi chờ GPU ngừng xử lý. Không yêu cầu bất kỳ đầu vào nào
khác. (Default: not used)
--gpu-async
--gpu-devices = STR hoặc –d: Điều này được sử dụng để chỉ định một
số GPU (theo thứ tự) để sử dụng nếu bạn có thiết lập đa GPU hoặc thẻ
GPU kép. Điều này hữu ích nếu bạn đang chạy trình quản lý cửa sổ như
Gnome, KDE hoặc Windows. Do khối lượng dữ liệu được xử lý quá lớn,
máy tính để bàn sẽ bị lag hoặc giật; bạn có thể bỏ qua GPU đầu tiên của
mình trong trường hợp này để đảm bảo máy tính để bàn hoạt động trơn
tru trong khi cố gắng khôi phục.
Mặc định: Tất cả các thẻ sẽ được sử dụng
-d 2,3,4

16


--gpu-accel = NUM hoặc –n: gpu-accel xác định điều chỉnh khối lượng
công việc. Giá trị này được đặt càng cao, thẻ của bạn sẽ hoạt động càng
khó. (Default: not used)
-n 400
--gpu-loops = NUM: Điều này được sử dụng để điều chỉnh thêm khối
lượng công việc. Mặc định: 1024
--gpu-loops = 1024
--gpu-watchdog = NUM: Cài đặt này sẽ cho phép bạn ghi đè biện pháp
an tồn được tích hợp sẵn. Theo mặc định oclHashcat-plus sẽ tự động kết
thúc quá trình xử lý khi một thẻ đạt đến 90c. Đặt mức này cao hơn có thể

gây ra hỏng hóc vĩnh viễn cho các cạc video của bạn, hãy cẩn thận nếu
tăng giới hạn này. Để an tồn, bạn có thể đặt mức này thấp hơn. Hãy nhớ
rằng oclHashcat-plus sử dụng độ C, không phải độ F. Mặc định: 90
--gpu-watchdog = 85
Bảng mã tích hợp:
?l = abcdefghijklmnopqrstuvwxyz
?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ
?d = 0123456789
?s = !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
?a = ?l?u?d?s
? h = 8 ký tự bit từ 0xc0 - 0xff
? D = ký tự 8 bit từ bảng chữ cái tiếng Đức
? F = 8 ký tự bit từ bảng chữ cái tiếng Pháp
? R = 8 ký tự bit từ bảng chữ cái tiếng Nga
Xin lưu ý rằng? D,? F, và? R phải được viết hoa để hoạt động đúng.
-1 abcdefg012345
--pw-min = NUM độ dài mật khẩu tối thiểu
--pw-max = NUM độ dài mật khẩu tối đa
Default: min=4 max =15
--pw-min=4 --pw-max=8
17


-s, --pw-skip=NUM: Bắt đầu bẻ khóa tại NUM
--pw-skip=10000 on box one
--pw-skip-20000 on box two
-l, --pw-limit=NUM: Hủy bẻ khóa NUM
--pw-limit=10000
1.3.3. Cách sử dụng
OclHashcat-lite được thiết kế để cung cấp hiệu suất băm đơn tốt nhất. Nó sử

dụng nhiều oclHashcat và thêm một vài tính năng mới. oclHashcat-lite chỉ
mạnh khi bạn tạo ra nhiều oclHashcat cho nó. Đơn giản chỉ cần cung cấp cho
nó một băm và cho phép nó hoạt động, nhưng có thể mất vài ngày hoặc vài
tuần. Như với tất cả các ứng dụng GPU, phải thực hiện các biện pháp phịng
ngừa thích hợp nếu khơng có thể xảy ra hư hỏng nghiêm trọng.

1.3.4. Lời khuyên
OclHashcat-lite cho phép bạn crack password với tốc độ khá kinh ngạc, vì
chúng chỉ có một vecto tấn cơng duy nhất đã có sẵn. Với việc bổ sung mã hóa
SL3, đã có rất nhiều nguồn ý kiến về cách khôi phục và crack password với
phương pháp này. Tuy nhiên đến nay phương pháp này đã khơng cịn nữa,
nhưng nó đã mang lại cho chúng ta rất nhiều điều thú vị trong công cuộc phát
triển cơng nghệ, đặc biệt là bảo mật.
CHƯƠNG 3. PHỊNG CHỐNG TẤN CƠNG BẺ KHĨA MẬT KHẨU
HASHCAT
1.1. Đặt password đủ mạnh
Để ngăn ngừa bị bẻ khóa mật khẩu chúng ta cần áp đặt các chính sách mật khẩu
mạnh có độ dài trên 8 kí tự, với sự kết hợp của nhiều dạng kí tự khác nhau gồm
kí tự đặc biệt, chữ hoa, chữa thường và các số sẽ làm cho quá trình tấn cơng dị
từ điển hay brute-force trở nên khó khăn và mất hàng chục năm để giải mã.
Sau đây là một số quy tắt đặt mật khẩu cần tuân theo để phịng chống bị bẻ
khóa:
1. Khơng bao giờ sử dụng mật khẩu mặc định.
2. Không bao giờ sử dụng các mật khẩu đơn giản có thể bị tìm kiếm thơng qua
dị từ điển, như các mật khẩu là password, abcdef, 123456 là những mật khẩu
được thống kê là bị tấn công nhiều nhất.
3. Không bao giờ sử dụng mật khẩu liên quan đến hostname, domain name hay
những thông tin mà hacker dễ dàng tìm kiếm qua Whois.

18



4. Không bao giờ sử dụng mật khẩu liên quan đến thú cưng, ngày sinh của bạn
hay người yêu vì đây là những đối tượng mà hacker sẽ nghĩ đến đầu tiên khi dò
mật khẩu của bạn.
5. Sử dụng các mật khẩu có độ dài trên 21 kí tự sẽ khiên cho hacker khơng thể
bẻ khóa bằng cách dị từ điển.
1.2.

Thay đổi mật khẩu thường xuyên
Thay đổi mật khẩu thường xuyên là một trong những tiêu chí hàng đầu trong
việc bảo vệ mật khẩu, thoe khuyến nghĩ của chính sách an tồn thơng tin ISO
27001 : 2005 thì chúng ta nên thay đổi mật khẩu sau 24 ngày hoặc 48 ngày tùy
vào nhu cầu của tổ chức. Mặc dù điều này sẽ gây ra đôi chút bất tiện cho người
dùng nhưng sẽ hạn chế rất nhiều khả năng các hacker bẻ khóa được mật khẩu
và tái sử dụng để truy cập bất hợp pháp vào hệ thống .
Ta có thể thiết lập chính sách trên Window
Thiết lập các chính sách này có thể thực hiện qua Group Policy Editor trong
phần Security Setttings\Account Policies.

Hình 1.7. Minh họa chính sách

Hình trên mình họa vị trí chính sách dùng để thay đổi thời gian tồn tại của một
mật khẩu trên Windows 7. Đối với các hệ thống Windows phiên bản khác các
19


bạn cũng có thể thực hiện thơng qua Local Group Policy Editor dễ dàng. Tuy
nhiên, để đạt hiệu quả cao hơn các bạn nên thiết lập chính sách này chung cho
tồn bộ hệ thống thơng qua Domain Controller.

Mặc dù với phương pháp này chúng ta khơng thể hồn tồn ngăn ngừa bị tấn
cơng mật khẩu dạng brute-force vì hacker nhưng sẽ gây ra trở ngại lớn cho
chúng khi siết chặt Security Policy (chính sách bảo mật) ví dụ nếu đăng nhập
sai mật khẩu quá 5 lần sẽ bị khóa trong vịng 15 phút sẽ nản chí những kẻ tấn
cơng.
Ngồi ra, Các bạn có thể sử dụng sản phẩm Starlight – Nền tảng phân tích bảo
mật thống nhất, khơng điểm mù sử dụng trí tuệ thơng minh nhân tạo (AI) của
Stellar Cyber do NESSAR VIETNAM phân phối có thể dễ dàng phát hiện ra
cuộc tấn cơng bẻ khóa mật khẩu Bruce Force và các cuộc tấn công nguy hiểm
khác mà firewall/IDS hay các thiết bị an ninh bảo mật khác không thể phát hiện
ra được. Tham khảo sản phẩm tại đây.
1.3.

Một số cách phịng chống khác
1. Khơng nên dùng thơng tin cá nhân làm mật khẩu. Rất nhiều người dùng tên,
ngày tháng năm sinh của người thân làm mật khẩu. Nếu hacker có quen biết
bạn – hoặc chỉ cần kết bạn trên Facebook – ngày sinh của bạn chắc chắn là mật
khẩu được chúng thử đầu tiên.
2. Dùng càng nhiều kí tự ngẫu nhiên càng tốt. Mật khẩu nên gồm cả chữ
thường, chữ hoa, số và kí tự đặc biệt (dù một số trang web khơng cho dùng kí
tự đặc biệt).
3. Tạo mật khẩu dài nhưng phải dễ nhớ, có thể là 1 câu ngắn, 1 cụm từ “HoangSaTruongSa”. Cách khác là dùng một câu thật dài, lấy chữ cái đầu, viết
hoa xen lẫn viết thường – “Khơng có gì q hơn độc lập tự do” thành
“KcGqHdLtD”.
4. Thấy ví dụ trên vẫn chưa đủ phức tạp, hãy thêm ngẫu nhiên một chuỗi nữa
ghép vào đầu hoặc đuôi mật khẩu. Thêm “iO$” và “M$” vào ví dụ ta có
“iO$HoangSaTruongSa” và “KcGqHdLtDM$”.
5. Nếu bạn có quá nhiều mật khẩu phải nhớ (mà chắc chắn là như vậy), hãy thử
dùng các chương trình quản lý mật khẩu như LastPass hoặc RoboForm. Các
chương trình này mã hóa và lưu trữ mật khẩu của bạn rất an toàn. Tất cả những

20


gì cần nhớ là một mật khẩu trung tâm duy nhất, đủ mạnh mẽ và dễ nhớ để truy
cập vào chương trình quản lý.
6. Cuối cùng, chắc chắn rằng máy bạn khơng bị cài phần mềm theo dõi bàn
phím (keylogger) nào, nếu không tất cả công sức tạo mật khẩu khó của bạn sẽ
“đổ sơng đổ biển” hết.

CHƯƠNG 4. DEMO CÁCH BẺ KHÓA MẬT KHẨU DÙNG HASHCAT
-

Bước 1: Vào , download file hashcat binaries
về.

21


-

Bước 2: Sau khi tải về, tiến hành giải nén file, và chèn thêm file pass.txt để
tiến hành crack password.

-

Bước 3: Sau khi tạo file pass.txt xong, tiến hành lấy mã password trong ứng
dụng HashCalc và lưu vào file đã tạo trước đó.

-


Bước 4: Vào Command Prompt thực hiện câu lệnh và tiến hành crack
password.

22


-

Bước 5: Sau khoảng thời gian crack, chúng sẽ cho ta được kết quả như sau:

23


-

Bước 6: Để kiểm tra lại, chúng ta vào thư mục hashcat-6.2.3 rồi vào tệp
hashcat.potfile để kiểm tra mật khẩu sau khi được crack.

TÀI LIỆU THAM KHẢO
24


[1] />[1] radix (2011), Hashcat User Manual V1.2, tr. 1-32.

25


×