Username Password là hai vấn đề nhạy cảm nhất trong Highslide JS
một máy tính, một mạng nhỏ  cho tới mạng Internet.
Trong bài viết này tôi trình bày với các bạn tổng  quát
về các phương thức xác thực, các cách phá mật khẩu
và các Tools sử  dụng để phá mật khẩu. Từ đó các bạn
sẽ biết cách tự bảo vệ mình trước các cuộc tấn công.

Trong bài viết này tôi sẽ trình bày chi tiết với các bạn với những nội dung sau:

– Authentication – xác thực
– Authentication Mechanisms – Các phương thức xác thực
– Phá Password
– Những tấn công dựa vào phá Password
– Thực hiện một quá trình phá Password
– Phân chia các loại tấn công
– Các công cụ sử dụng để phá Password.
– Các phương thức cụ thể.

Các bước tiến hành trong quá trình tấn công phá mật khẩu

1. Xác thực – Authentication
– Xác thực là một quá trình nhận dạng người dùng.
– Trong hệ thống mạng máy tính, xác thực chủ yếu sử dụng LoginID (Username) và Password.
– Biết mật khẩu của một tài khoản là điều cần thiết để xác thực.
– Nhưng Password có thể bị mất, bị đánh cắp, bị thay đổi và bị phá, điều này dẫn tới nguy cơ bảo mật cho hệ thống.

2. Các phương thức xác thực
Trước hết chúng ta nói đến vấn đề liên quan.
+ [Username Password] – cái mà chúng ta biết
+ [Smart Card, Certificate] – cái mà bạn có trên máy tính
+ [Sinh trắc học] – là những gì bạn được học

Những phương thức xác thực
– HTTP Authentications
– Kết hợp với phương thức xác thực NTLM của Windows
– Negotiate Authentication – Thỏa thuận xác thực
– Xác thực dựa vào Certificate.
– Xác thực dựa vào Forms
– Xác thực dựa vào RSA Secure Token
– Xác thực dựa vào Sinh trắc học (xác thực vân tay, mặt, mắt….)

Chúng ta đi sâu vào tìm hiểu những phương thức trên như thế nào.

2.1. HTTP Authentications
a. Basic Authentication
– Là một phương thức xác thực phổ thông có trên nền tảng ứng dụng Web.
– Nó sẽ xuất hiện ra khi Client yêu cầu những thông tin phải được xác thực.
– Giới hạn những giao thức, cho phép những kẻ tấn công khai thác.
– Sử dụng SSL để mã hóa dữ liệu Username Password để truyền giữa Client và Server.

b. Degest Authentication
– Được thiết kế để nâng cao bảo mật hơn phương thức Basic Authentication
– Được dựa trên nền tảng xác thực Challenge-Response
–  Nâng cao bảo bảo mật hơn phương thức Basic Authentication, hệ thống sẽ  mã hóa Usernaem Password trước khi truyền đi trên mạng.

2.2. Kết hợp với phương thức xác thực NTLM của Windows
– Sử dụng công nghệ xác thực NT LAN Manager (NTLM) cho HTTP
– Chỉ làm việc với IE và trên nền tảng Web server là IIS.
– Kết hợp với xác thực trên Windows sẽ thích hợp cho môi trường mạng cục bộ của doanh nghiệp
– Nó là một phương thức xác thực mà không phải truyền bất kỳ thông tin nào về Username password trên mạng.

2.3. Xác thực Negotiate
– Đây là một phương thức xác thực mở rộng cho NTLM Authentication
– Cung cấp xác thực dựa trên nền tảng Kerberos
– Sử dụng quá trình thương lượng để quyết định mức độ bảo mật được sử dụng.
– Nó được cấu hình và sử dụng không chỉ cho mạng cục bộ.

2.4. Xác thực dựa vào Certificate
– Sử dụng Public Key để mã hóa và chứng chỉ số (Digital Certificate) để xác thực người dùng.
–  Nó được quan tâm và kết hợp với phương thức xác thực two-factor. Khi  một người dùng biết được Username Password người đó còn phải cung cấp  Certificate nữa thì mới được xác thực.
– Người dùng có thể bị đánh cắp Certtificate.
– Rất nhiều phần mềm hiện nay hỗ trợ xác thực qua chứng chỉ số.

2.5. Xác thực dựa vào Forms-Based
– Nó không được hỗ trợ trên nền tảng HTTP và SSL
– Nó là một lựa chọn cao cấp cho phương thức xác thực sử dụng một Form, và thường tích hợp dạng HTML.
– Là một phương thức xác thực rất phổ biết trên Internet.

2.6. Phương thức xác thực RSA SecurID Token
–  Phương thức xác thực SecureID sử dụng một “token – Vé, card). Có một  thiết bị phần cứng sẽ sinh ra các mã xác thực sau mỗi 60 giây và sử dụng  một tấm Card để giải mã key.
– Một người dùng thực hiện quá trình xác thực và tài nguyên mạng sẽ phải điền mã PIN và số hiển thị cho  SecureID cho mỗi thời gian đó.

2.7. Biometrics Authentications
–  Một hệ thống xác thực dựa vào Sinh trắc học sẽ phải có những thiết bị nhận diện được người dùng dựa vào các yếu tố sinh học như: Vân tay, mắt,  mặt, bàn tay….
– Đây là một phương thức xác thực có tính bảo mật rất cao và thuận tiện cho người sử dụng không phải nhớ mật khẩu hay mang theo một tấm Card.

3. Làm thế nào để có một mật khẩu bảo mật
– Áp đặt chính sách độ dài tối thiểu của mật khẩu là 8 và tốt nhất là 15
– Yêu cầu phải có những ký tự đặc biệt, số, chữ hoa, chữ thường trong một mật khẩu
– Không sử dụng bất kỳ từ khóa nào trong từ điển English hay những nước khác
– Không sử dụng Password giông tên Username, và phải thay đổi thường xuyên
– Chọn Password bạn dễ dàng sử dụng mà người khác khó đoán biết được.

4. Những khuyến cáo đặt password
– Đừng bao giờ chỉ đặt một ký tự đặc biệt sau một từ khóa
ví dụ: không đặt password là: dangvinh.net1
– Đừng bao giờ sử dụng ghép hai từ với nhau ví như: kevin_dangvinh.
– Không đặt Password dễ đoán.
– Không đặt password quá ngắn.
– Không đặt Password mà từ thường xuyên gõ đúng như: slsj;xjpx.
– Hãy thay đổi mật khẩu thường xuyên ít nhất một tháng một lần.
– Hãy thay  đổi ngay lập tức khi phát hiện ra mật khẩu của mình bị người khác sử dụng.
– Đừng bao giờ chứa Password trên máy tính của bạn.
– Các mật khẩu trong Windows lưu vào các file .pwl không được bảo mật.
– Không gửi mail và tránh đặt trùng Password trên nhiều ứng dụng.
– Không ghi Password của mình ra cho dễ nhớ.
– Khi gõ Password hãy cẩn thận với các loại Keyloger và người xem chộm.

5. Hacker lấy mật khẩu của bạn qua những phương pháp
– Xem bạn gõ mật khẩu
– Tìm xem bạn có ghi mật khẩu của mình ra giấy hay không
– Đoán mật khẩu dựa vào các số quen thuộc như: 12345, 54321…
– Sử dụng phương thức tấn công Brute Force [Đây là phương thức tổng hợp các ký tự lần lượt để tấn tìm ra mật khẩu].
– Sử dụng phương thức tấn công Dictionary Attack [Phương thức tấn công này tìm mật khẩu trong một bộ từ điển được sinh ra trước đó].

– Cách tạo ra một mật khẩu khó:
+ Chẳng hạn mật khẩu của tôi ban đầu định đặt là: hack_baomat
+ Giờ tôi viết hoa chữ A: hAck_bAomAt
+ Chữ b trong bảng chữ cái đứng vị trí thứ 2 mật khẩu tôi thành: hAck_2AomAt
+ Chữ h đổi thành & mật khẩu thành: &Ack_2AomAt.
+ Password của tôi đủ 10 ký tự có số, có hoa, có thường, có ký tự đặc biệt.

6. Xóa Password đã được lưu trong Windows XP
– Vào run gõ: Rundll32.exe Keymgr.dll, KRShowKeyMgr
– Sẽ hiện ra bảng danh sách website và bạn hãy xóa hết những mật khẩu đã được lưu trong hệ thống.

7. Phá mật khẩu tổng quát
– Về định nghĩa một Password Cracker là chương trình có thể giải mã được mật khẩu hay có thể vô hiệu hóa được mật khẩu.
– Password Cracker có hai phương pháp chính đó là: Brute Force và Dictionary Attack, ngoài ra hiện nay mới có chương trình phá mật khẩu thông minh hơn hai kiểu cổ điển trên đó là phương thức tìm Password: Smart Table Recovery – đáp ứng tốc độ tìm mật khẩu rất nhanh.
–  Password Cracker cũng có thể là một chương trình dùng để giải mã những  mật khẩu đã được mã hóa, ví như các mật khẩu được lưu trong IE,  Firefox,…

8. Mục tiêu của các chương trình tìm mật khẩu
–  Trên hệ thống Windows và Linux có hai tài khoản toàn quyền trong hệ  thống đó là: root và Administrator, và mục tiêu tấn công là tìm được  password của hai tài khoản đó
– Khi tìm được Password của tài khoản có quyền quản trị kẻ tấn công sẽ toàn quyền với máy đích.
– Kẻ tấn công cũng có thể dùng các phần mềm Sniffer để tóm các gói tin Username Password được truyền đi trong hệ thống mạng.
– Và ảnh hưởng của việc bị chiếm mất quyền quản trị tùy thuộc hoàn toàn vào dữ liệu và các ứng dụng trong hệt hống.

9. Chương trình Password Cracker hoạt động như thế nào
–  Để hiểu được một Password Cracker làm việc như thế nào chúng ta cần  phải hiểu được các chương trình quản lý Password thực hiện ra sao. Hầu  hết các chương trình quản lý Password đều mã hóa Password theo một  phương thức nào đó.
– Mật khẩu sau khi được tạo ra và lưu vào trong hệ thống sẽ được mã hóa, hệ thống sẽ chứa Key để giải mã mật khẩu.
– Những phần mềm Password Cracker sẽ tìm cách lấy được các đoạn mật mã đó.
-Sau  khi đã lấy được các đoạn mật mã trên máy của nạn nhân chúng sẽ tiến  hành giải mã mật khẩu bằng những phương thức cụ thể cho từng tình huống.

10. Các dạng Password Cracker
– Dictionary Attack: Tìm mật khẩu trong một file từ điển tạo sẵn
– Brute Force Attack: Tìm mật khẩu bằng cách tổ hợp các ký tự
– Hybird Attack: Lai giữa hai phương thức trên
– Smart Table Recovery Attack: Phương thức tấn công tìm mật khẩu thông minh nhất dựa trên các bảng dữ liệu – Khoảng 700MB dữ liệu text.

11. Tìm Password bằng phương thức đơn giản
– Đoán mật khẩu
– Thay thế đoạn URL

12. Tìm Password bằng giải mã Cookies
– Với chương trình CT cookie Spy 2.0
–  Cookies thương lưu lại rất nhiều thông tin quan trọng của người dùng  khi truy cập vào Internet như Username và Password truy cập vào một  Website.
– Với phần mềm này bạn có thể tìm kiếm các Cookies được lưu dữ trong hệ thống và giải mã chúng để tìm Username Password.

13. Tấn công Dictionary Attack
– Tạo từ điển dùng phần mềm: Dictionary Maker

14. Danh sách các Tools Password Crackers
– Lophtcrack – WebCracker
– John The Ripper – Munga Bunga
– Brutus – ReadCookies
– Obiwan – SnadBoy
– Authforce – WinSSLMiM
– Cain & Abel Gammaprog

Mình đã sử dụng các tool này nhiều nên cũng có chút kinh nghiệm mà mình rút ra được.

–  Theo kinh nghiệm: Cain & Abel là phần mềm mạnh về giải mã và Sniffer hơn. Lophcrack có lẽ crack khá nhanh bất kỳ password nào dài dưới 10 ký tự chỉ cần khoảng hơn 1 giờ là có thể giải mã được.
– John the Ripper đây là phần mềm chuyên phá mật khẩu trong môi trường Unix và sử dụng mã hóa DES,  Extend DES, MD5 cũng tích hợp nhiều phương pháp giải mã.
–  Brutus là một chương trình Online hay Remote Password Cracker. Tấn công tới một hệ thống như máy chủ IIS, Windows, Modem ADSL
– Authforce dựa vào HTTP Basic Authentication hỗ trợ việc thử Username Password tới một site nhất định.
– MessenPass có thể giải nén được hầu hết các tài khoản chát như Yahoo, MSN…
Lưu ý từ phiên bản YM 7 password không bao giờ được lưu ở máy Local lên phần mềm này không crack được.
– Wireless WEP Key Password Spy đây là một tools hỗ trợ giải mã để truy cập vào một hệ thống mạng vWireless đặt mật khẩu.

(Tổng hợp và sưu tầm)