Thứ Sáu, 9 tháng 7, 2010

Mật khẩu Windows có thể bị crack như thế nào - Phần cuối


Vì bài viết P2 dài quá nên tôi trích một nửa của P2 làm phần cuối (nội dung tiếp diễn của P2).

2. Hướng dẫn sử dụng các Tool để crack

2.1. Crack mật khẩu bằng Cain & Abel

Lúc này chúng ta đã thực sự có các hash mật khẩu, nhiệm vụ tiếp theo cần thực hiện lúc này là crack chúng. Nếu đã download và cài đặt Cain & Abel thì bạn đã đi trước được một bước vì chúng ta sẽ sử dụng nó để crack các mật khẩu LM ví dụ.

Nếu chưa cài đặt Cain & Abel, bạn có thể download nó tại đây. Quá trình cài đặt diễn ra rất đơn giản. Bạn cũng sẽ gặp nhắc nhở cài đặt bộ capture dữ liệu WinPCap được sử dụng cho các tính năng đánh hơi của Cain & Abel. Khi đã cài đặt xong chương trình, bạn có thể khởi chạy nó và kích vào tab Cracker gần phía trên của màn hình. Sau khi thực hiện điều này, kích vào tiêu đề LM & NTLM Hashes trong panel bên trái, kích phải vào vùng trống ở phần trung tâm của màn hình và chọn Add to List.

Cain sẽ không chấp nhận một copy và paste đơn giản đối với hash mật khẩu, vì vậy bạn sẽ phải đặt hash vào một file văn bản được định dạng theo một cách đặc biệt. Nếu trích rút các hash của mình bằng fgdump thì bạn sẽ có file văn bản cần thiết của mình, file văn bản này có chứa các hash trên định dạng từng dòng. 

Hình 4: Định dạng được chấp nhận của Passwords Hash

Nếu đã trích rút các Passwords Hash của mình một cách thủ công, bạn cần tạo một file có một entry cho mỗi tài khoản người dùng. Mỗi dòng có chứa username, phần nhận dạng quan hệ (RID) của SID người dùng và các hash. Định dạng của các thành phần này sẽ là:

Username:RID:LMHash:NTLMHash:::

Duyệt đến file này, chọn nó và kích next để import các hash vào Cain & Abel. Khi thực hiện xong, bạn có thể kích phải vào tài khoản mà ở đó bạn muốn crack mật khẩu của nó, chọn tùy chọn Brute Force Attack, chọn LM hashes. Phương pháp tấn công brute force là phương pháp cố gắng kết hợp các mật khẩu với giá trị hash cho tới khi tìm thấy sự thỏa khớp. Trên màn hình sau đó, bạn có thể chọn các ký tự mà mình muốn sử dụng cho tấn công brute force, chiều dài mật khẩu cực tiểu và cực đại. Lưu ý rằng tập ký tự sẽ tự động được cấu hình để chỉ sử dụng các ký tự in hoa và số với chiều dài tối đa là 7, do các đặc tính của LM hash.

Trong kịch bản ví dụ, với mật khẩu PassWord123, chúng ta sẽ thấy ngay lập tức các kết quả hoàn chỉnh khi chương trình trả về “Plaintext of 664345140A852F61 is D123”. Kết quả cũng cho thấy chúng ta đã crack nửa thứ hai của hash mật khẩu. Trên một máy tính hiện đại, việc tiến hành thử để tìm ra sự kết hợp mật khẩu duy nhất có thể phải mất đến khoảng 2,5 đến 3 giờ để đảm bảo cho một thành công thực sự. 

Hình 5: Cain crack thành công LM Password Hash

2.2. Crack mật khẩu bằng John the Ripper

Cain & Abel thực hiện khá tốt công việc crack các LM password nhưng nó khá chậm và khi thực hiện crack NTLMv2 hash, quá trình của nó thậm chí còn chậm hơn rất nhiều. Nếu chưa có nhiều kinh nghiệm hoặc cảm thấy không thích dòng lệnh cho các hành động crack mật khẩu, John the Ripper chính là một trong những cỗ máy crack khá được ưa thích và có tốc độ nhanh nhất mà chúng tôi từng thấy.

Có thể download John the Ripper từ đây. Khi đã trích rút các nội dung của file, bạn sẽ tìm thấy file thực thi john-386.exe trong thư mục con /run. John có thể chạy ở một vài chế độ khác, tuy nhiên để chạy nó trong chế độ mặc định, tất cả những gì bạn cần thực hiện là cung cấp file có chứa password hash như một đối số (argument) khi chạy john-386.exe từ nhắc lệnh. 

Hình 6: John the Ripper đang cố gắng crack mật khẩu

Khi hoàn tất, John the Ripper sẽ hiển thị các mật khẩu đã được crack và lưu các kết quả vào file john.pot của nó. Trong hầu hết các trường hợp, chế độ crack mặc định là khá ổn, tuy nhiên John the Ripper cũng có các chế độ crack khác như:

  • Single Crack Mode – Sử dụng các biến tên tài khoản
  • Wordlist Mode – Dựa vào một từ điển để đoán mật khẩu
  • Incremental Mode – Dựa vào tấn công kiểu brute-force
  • External Mode – Dựa vào một ứng dụng khác (được người dùng cung cấp) để đoán mật khẩu.

John rất hiệu quả trong tất cả các chế độ crack và là một chương trình mà tôi lựa chọn cho việc crack mật khẩu.

2.3. Crack mật khẩu bằng các bảng cầu vồng (Rainbow Table)

Khi bạn nghi ngờ sự phức tạp và tiêu tốn nhiều thời gian cho việc crack một mật khẩu NTLMv2, chỉ có quyết định hợp lý nhất là sử dụng các bảng cầu vồng. Bảng cầu vồng là một bảng tra cứu có chứa các password hash cho mỗi sự kết hợp mật khẩu có thể được đưa ra để thuật toán mã hóa sử dụng. Như những gì bạn có thể hình dung, các bảng cầu vồng có thể tiêu tốn khá nhiều không gian lưu trữ. Trước đây, các bảng này vượt quá khả năng xử lý của bộ vi xử lý và không gian lưu trữ chuyên sâu cho việc tạo và lưu, tuy nhiên với sự phát triển của máy tính hiện đại, những tester cũng như các hacker mã độc đều có thể dễ dàng sử dụng các ổ cứng ngoài để lưu trữ một loạt các bảng cầu vồng.

Tìm một nơi tạo hoặc download tập hợp các bảng cầu vồng chính là Google search, tuy nhiên có nhiều phương pháp tốt hơn cho một cracker mật khẩu. Một phương pháp như vậy là sử dụng dịch vụ web có chứa tập các bảng cầu vồng của chính nó. Dịch vụ web như vậy bạn có thể được tìm thấy tại đây. Website này duy trì rất nhiều tập hợp các bảng cầu vồng mà bạn có thể đệ trình các password hash cho việc crack, cùng với đó là một danh sách các mật khẩu đã bị hack gần đây.

Để đệ trình các hash tới plain-text.info, bạn có thể kích liên kết Add Hashes để chỉ định hash và chế độ mã hóa. Nếu hash này đã bị crack thì bạn sẽ thấy kết quả hiển thị, còn không nó sẽ đệ trình hash vào hàng đợi. Có thể kiểm tra trạng thái hàng đợi bằng cách vào liên kết Search và tìm kiếm hash, khi đó nó sẽ cho bạn biết vị trí trong hàng đợi của bạn. Các mật khẩu phức tạp có thể tiêu tốn khá nhiều thời gian thông qua phương pháp này, tuy nhiên nó còn cho thấy nhanh hơn việc cho phép thực hiện trên phần cứng của riêng bạn.

3. Các biện pháp bảo vệ

3.1. Việc bảo vệ trước các hành động crack mật khẩu

Mọi người thường nghĩ rằng mục tiêu của mã hóa là làm cho văn bản qua mã hóa trở thành một thứ gì đó mà không ai có thể giải mã được, tuy nhiên đây chỉ là một chút khái niệm. Suy nghĩ đó dựa vào sự tin tưởng rằng các máy tính có khả năng tạo các số ngẫu nhiên cho các mục đích mã hóa, tuy nhiên trong tất cả các máy tính trung thực đều không thực hiện “random” tốt đến như vậy, vì “random” là một logic lập trình dựa hoàn toàn trên sự tin cậy. Chính vì vậy, mục tiêu thực sự của mã hóa là làm cho văn bản qua mã hóa trở nên khó crack đến nỗi lượng thời gian bỏ ra để có thể crack nặng hơn lợi ích thu được trong việc thực hiện hành động crack đó.

Với tư duy đó, có một vài thứ có thể được thực hiện trên một hệ điều hành để tránh bị crack mật khẩu.

3.2. Sử dụng mật khẩu phức tạp và liên tục thay đổi

Cách logic nhất để tránh bị crack mật khẩu là làm cho mật khẩu của bạn trở nên phức tạp “đến nỗi không ngờ”. Nếu mật khẩu của bạn gồm có các ký tự in thường, in hoa, chữ số, các ký hiệu đặc biệt và tương đối dài, nó sẽ không thể bị crack với một số lượng thời gian ngắn. Để làm tăng độ phức tạp thêm nữa, hãy thay đổi mật khẩu của bạn một cách thường xuyên. Không có biện pháp phòng ngừa nào hơn việc sử dụng một mật khẩu mạnh và thay đổi nó thường xuyên.

3.3. Vô hiệu hóa LM Hash

Giờ đây bạn đã biết được những yếu điểm của LM hash. Một điều tốt chúng ta là không phải sử dụng chúng nữa. Các hệ điều hành Windows hiện đại có thể được cấu hình để sử dụng NTLMv2 độc quyền với một vài thay đổi registry.

Bạn có thể vô hiệu hóa kho lưu trữ LM hash bằng cách duyệt đến HKLM\System\CurrentControlSet\Control\LSA trong registry. Khi đã ở trong đó, hãy tạo một khóa DWORD có tên NoLMHash, với giá trị bằng 1.

Một bước nữa là vô hiệu hóa thẩm định LM trong toàn mạng. Lần nữa, bạn duyệt đến HKLM\CurrentControlSet\Control\LSA. Khi ở trong đó, tìm đến khóa có tên LMCompatibiltyLevel. Giá trị của nó có thể được thiết lập bằng 3 cho mục đích gửi đi thẩm định NTLMv2, đây là cách thức tuyệt vời cho các máy khách trong miền. Ngoài ra có thể thay đổi giá trị của nó thành 5, đây là giá trị được sử dụng để cấu hình thiết bị nhằm chấp nhận các yêu cầu thẩm định, tuyệt vời cho các máy chủ.

Chí có một trường hợp mà ở đó các thiết lập này có thể gây ra vấn đề là trường hợp mà trong đó bạn có các máy tính Windows NT 4 và phiên bản cấp thấp hơn trong mạng. Chính vì vậy, nếu vẫn có các hệ thống đó trên mạng, hãy loại bỏ chúng là lời khuyên bảo mật tốt nhất mà chúng tôi đưa đến bạn.

3.4. Sử dụng SYSKEY

SYSKEY là một tính năng Windows có thể được sử dụng để add 128 bit mã hóa mở rộng vào file SAM. SYSKEY làm việc bằng cách sử dụng một khóa của người dùng được sử dụng để mã hóa file SAM. Khi kích hoạt, SYSKEY không thể bị vô hiệu hóa.

Lưu ý: SYSKEY chỉ bảo vệ bản thân file SAM, bảo vệ nó trống lại hành động copy. SYSKEY không bảo vệ chống lại các công cụ trích rút các hash từ bộ nhớ đang chạy, chẳng hạn như Cain và fgdump. Bạn có thể tìm hiểu thêm thông tin về SYSKEY tại http://support.microsoft.com/kb/143475.

4. Kết luận

Crack mật khẩu là một kỹ năng cho những ai muốn cố gắng đột nhập vào một hệ thống, cũng chính vì điều đó mà mỗi quản trị viên hệ thống cần phải hiểu các mật khẩu được lưu như thế nào, chúng có thể bị đánh cắp và bị bẻ khóa ra sao. Khi một kẻ xâm nhập đã chọc thủng được hệ thống, mục tiêu của chúng sẽ được hoàn thành hơn nửa nếu người dùng của bạn đang sử dụng các mật khẩu đơn giản.

Cần nhớ rằng, những gì bạn biết là một nửa trận chiến, vì vậy nếu bạn nắm được các thông tin này và không làm gì với nó thì bạn chỉ có được một nửa chiến thắng. Sử dụng các kỹ thuật phòng chống được cung cấp trong bài, bạn sẽ ngăn chặn được việc những kẻ tấn công thỏa hiệp mật khẩu trong hệ thống của mình.

Editor: Vinhhq (Baomathethong.blogspot.com)
Author & Source: Quantrimang.com.vn

Không có nhận xét nào:

Đăng nhận xét