Tiếp tục với series chuyên về bảo mật ứng dụng KaliTheKey, ở bài viết lần trước chúng ta đã cùng thực hành tấn công bẻ khóa Wifi chuẩn WEP rồi, một chuẩn bảo mật tương đối cũ và kém an toàn của Wifi.
Với các chuẩn mới hiện nay như là WPA/WPA2 thì việc thực hiện các cuộc tấn công là không hề dễ dàng, do không có những lỗ hổng bảo mật thực sự hiện hữu để có thể khai thác.
Dù vậy, cho đến thời điểm hiện tại đã có một số phương thức Cracking được giới Hacker phát triển thành công nhằm vào giao thức bắt tay 4 bước (4-way handshake).
Trong bài viết ngày hôm nay mình sẽ giới thiệu tới các bạn cách thực hiện một cuộc tấn công tương đối đơn giản vào giao thức WPA/WPA2, đó là tấn công từ điển (Dictionary Attack) trên Kali Linux. Các bạn muốn hiểu rõ hơn về lí thuyết xin mời đọc lại các bài viết trước của Series này nha.
Cần lưu ý một điều đó là, giống như những từ ngữ địa phương không xuất hiện trong từ điển, có rất nhiều mật khẩu Wifi thậm chí không tồn tại trong bất kì bộ Dictionary/wordlist nào trên thế giới vì độ ít phổ biến hoặc phức tạp của nó.
Vì vậy mà một cuộc tấn công Dictionary Attack có xác suất thành công không quá cao, và Hacker thường chọn những bộ Wordlist có khả năng (nói chung) chứa mật khẩu người dùng lớn nhất trước khi nghĩ tới những bộ từ điển đồ sộ hàng chục GB để tăng xác suất thành công và giảm hao phí tài nguyên máy/thời gian đợi.
Như thường lệ đối với các bài viết về chủ đề bảo mật, mình xin nhắc các bạn rằng chỉ nên thực hiện các cuộc tấn công này trên máy ảo giả định/ với mục đích nghiên cứu và tìm hiểu về an toàn thông tin. Mọi hành vi tấn công các mục tiêu thực tế có thể gây thiệt hại và thậm chí dẫn tới rắc rối pháp luật !
Mục Lục Nội Dung
I. Cần chuẩn bị những gì trước khi hack mật khẩu Wi-Fi ?
Về cơ bản chuẩn bị cho một cuộc tấn công WPA/WPA2 là giống với WEP. Chúng ta vẫn cần những phần cứng giống nhau và thực hiện trên công cụ Fern wifi Cracker trong Kali Linux. Nhắc lại cho những bạn chưa đọc bài viết trước:
Và thêm một thành phần không thể thiếu với mọi cuộc tấn công kiểu Dictionary Attack, đó là:
Bộ wordlist
phục vụ tấn công từ điển giao thức WPA/WPA2
. Trên Internet hiện nay các bạn có thể dễ dàng tìm kiếm các wordlist này với mỗi bộ chứa hàng triệu key được chọn lọc từ các nguồn rò rỉ mật khẩu hoặc tự tạo cho các kịch bản người dùng khác nhau (theo tên, số điện thoại, các password đã từng bị rò rỉ phổ biến nhất…).
Trong bài viết mình sử dụng wordlist
tự tạo định dạng 8 chữ số ngày-tháng-năm sinh được sinh bằng công cụ Crunch trong phân mục Password Attack của Kali Linux. Các bạn quan tâm có thể tải về bộ Wordlist ngày tháng năm sinh và wordlist 8 chữ số của mình tại đây hoặc tại đây !
Vậy là bước chuẩn bị đã đủ, giờ bắt tay cùng làm thôi nào !
II. Thực hiện cuộc tấn công bẻ khóa pass Wifi mã hóa chuẩn WPA/WPA2
Note: AP là viết tắt của từ AccessPoint !
1/ Thiết lập cấu hình cho Router làm AP mục tiêu
Vì mục đích là trình diễn tấn công bẻ khóa WPA/WPA2 nên mình sẽ cấu hình Router với chuẩn WPA2-PSK và đặt một khóa có dạng ngày tháng năm sinh (12111995).
Các bạn có thể cấu hình lại Router thử nghiệm của mình theo các thông số như bên dưới.
2/ Tấn công AP mục tiêu (hack mật khẩu Wifi)
+ Bước 1: Tương tự cuộc tấn công giao thức WEP
, các bạn nhấn Refresh
để phần mềm nhận diện các phần cứng mạng có trong máy.
Thông thường mỗi máy sẽ có một card wifi đặt tên là wlan0
. Các bạn chọn card này và nhấn Scan for Access Point
để quét các AP xung quanh.
+ Bước 2: Tại mục WPA
, máy mình nhận diện được 60 AP xung quanh sử dụng chuẩn này (tất nhiên có AP do mình thiết lập). Các bạn click vào đây để mở giao diện bẻ khóa.
+ Bước 3: Một cuộc tấn công Dictionary Attack
nhắm vào giao thức WPA/WPA2
sẽ phức tạp hơn tấn công WEP ở chỗ bạn cần chuẩn bị nguồn từ điển để thực hiện tấn công.
Trước khi thực hiện tấn công bạn cần chọn AP mục tiêu đã định sẵn => sau đó nhấn Browse...
để mở thư viện đã chuẩn bị.
Thư viện của mình đặt tên là list1.txt
, gồm ngày tháng năm sinh trong khoảng 1900-1999, nằm trong đường dẫn root/Documents/Dictionary/list1.txt
=> click Open
để chọn.
+ Bước 4: Sau khi đã chọn thư viện xong, bạn nhấn Attack
và cuộc tấn công bắt đầu. Bước đầu là thăm dò (Probing) AP để xác định các liên kết Client-AP
trong mạng.
+ Bước 5: Bước tiếp theo, phần mềm sẽ can thiệp vào quá trình xác thực Client-AP
đang tồn tại trong mạng.
Các bạn có thể thay đổi liên kết mục tiêu bằng cách thay đổi MAC
để chọn Client
khác ở phần bên tay phải, dưới phần chọn thư viện.
Client hoạt động càng tích cực, càng dễ để bắt các gói tin và can thiệp vào giao thức bắt tay 4 bước của nó với AP.
+ Bước 6: Sau khi “lẻn” được vào đường truyền dữ liệu Client-AP này (Handshake Captured), quá trình thử bẻ khóa bắt đầu diễn ra.
Tốc độ của việc thử này phụ thuộc vào sức mạnh phần cứng máy bạn và độ phức tạp bộ key đang chạy. Với máy của mình, tốc độ trung bình là gần 6000 key/s. Khá là nhanh !
+ Bước 7: Các key được thử không theo thứ tự bộ tư điển đầu vào mà được lấy ngẫu nhiên. Điều này nhằm tăng xác suất bắt gặp key đúng.
+ Bước 8: Không ngoài dự đoán, mất chỉ 2 phút, máy đã tìm ra key đúng là 12111995
. Tuy nhiên mình sẽ phân tích rõ hơn ở phần sau để biết rằng, kết quả này chỉ là trường hợp khá đặc biệt !
+ Bước 9: Sau khi đã crack thành công, key sẽ được lưu lại trong database
của công cụ, các bạn có thể tìm và xem lại bất cứ lúc nào cần.
III. Đánh giá cách làm
Với phần trình diễn bẻ khóa trong 2 phút vừa rồi, có thể nhiều bạn sẽ nghĩ việc này quá dễ vậy, hóa ra WPA/WPA2 lại yếu kém đến thế!
Nhưng không ! như đã trình bày ngay từ đầu, mọi điều kiện của cuộc tấn công đều do mình thiết lập trước, đã chắc chắn có kết quả và không phải chờ đợi quá lâu. Giả sử password của AP là một giá trị khác hoặc xét đến trường hợp xấu nhất, key cuối cùng trong Dictionary mà phần mềm thử mới là key đúng, ta xét vài trường hợp đơn giản sau:
+ Bộ password ngày tháng năm sinh do người viết tự tạo có dạng @@@@19@@
và @@@@20@@
(các năm của thế kỉ XX và XXI) gồm 2x10^6=20.000.000
khóa. Mất 20.000.000/5000=400s ~ 6,7 phút để thử hết
+ Bộ password 8 số từ 00000000 đến 99999999 gồm 10^8=100.000.000 mã thử hết trong 100.000.000/5000=20000s ~ 5.5 giờ. Với password có 9, 10 chữ số, mỗi chữ số tăng thêm thì thời gian bẻ khóa trung bình cũng tăng gấp 10 (55 và 555 giờ máy chạy liên tục hết công suất ^^ )
+ Quan trọng hơn cả, Password của mục tiêu thật có dạng như thế nào, dài bao nhiêu chúng ta không hề biết ! Có thể chúng ta sẽ cần thử nhiều bộ password khác nhau, thậm chí thử tất cả bộ password tìm được mà vẫn không dò ra key của AP thực!
+ Quá trình bẻ khóa đòi hỏi phần cứng phải chạy liên tục ở công suất cao, với các bộ wordlist quá dài mà máy tản nhiệt không tốt, rất dễ sinh ra vấn đề ảnh hưởng tuổi thọ máy.
IV. Lời Kết
Như vậy chuẩn bảo mật WPA/WPA2 vẫn là một chuẩn bảo mật tương đối an toàn trong các tình huống sử dụng thông thường. Điều quan trọng nhất là ở ý thức tự vệ của người dùng, hạn chế sử dụng các mật khẩu ngắn, đơn giản và phổ biến sẽ hạn chế được khả năng bẻ khóa của Hacker.
Qua những bài viết gần đây, chúng ta đã cùng tìm hiểu về bảo mật mạng Wifi và thực hành các cuộc tấn công bẻ khóa bảo mật các giao thức WEP,WPA và WPA2.
OK, và bài viết hướng dẫn bẻ khóa mật khẩu WiFi sử dụng chuẩn mã hóa WPA/WPA2 cũng đã kết thúc. Hi vọng các bạn đã có được những kiến thức mới bổ ích.
Đừng quên tiếp tục theo dõi series để biết thêm những thủ thuật bảo mật thú vị khác nhé !
CTV: Vũ Hữu Thăng – Blogchiasekienthuc.com
Tuyệt vời quá, rất cảm ơn anh. Để em thử hack wifi nhà hàng xóm xem được cái nào không 😀
Test luôn thôi 🙂
Mình chưa thực hiện đc vì không Browse đc ( Thư viện của mình đặt tên là list1.txt, gồm ngày tháng năm sinh trong khoảng 1900-1999, nằm trong đường dẫn root/Documents/Dictionary/list1.txt => click Open để chọn.). Mình thiếu chỗ mục nay. hướng dẫn dumfminhf. thanks
Chị hàng sóm sin không cho pass sẽ chết với tôi!