Hack Wifi Bằng Aircrack-ng - Mai Trời Sáng !

............ Tóm tắt ............. Giới thiệu cơ chế hack wifi lấy mật khẩu: brute force attack và dictionary attack. airmon-ng start wlp6s0 airodump-ng wlp6s0mon airodump-ng --bssid [] -c [] -w [] wlp6s0mon aireplay-ng --deauth [] -a [] wlp6s0mon aircrack-ng -w [] -b [] [] crunch [] | aircrack-ng -b [] -w- [] airmon-ng stop wlp6s0mon && service network-manager restart ............ Bổ sung ............. aireplay-ng -3 -b [] -h [] wlp6s0mon reaver -b [] -c [] -i wlp6s0mon -vv wifite mdk3 wlp6s0mon [d/b/a] [] Kinh nghiệm thực chiến. Kinh nghiệm phòng chống hack pass wifi. Đôi lời nhắn nhủ.

Hack wifi, ở đây là làm sao lấy được mật khẩu kết nối vào mạng wifi đó. Có 2 phương thức là tấn công chủ động và tấn công thụ động. Bài viết này đề cập đến phương thức tấn công thụ động, đó là bắt lấy gói tin giao tiếp (cụ thể là file .cap) của người khác khi họ đang kết nối với wifi, qua đó dùng công cụ aircrack-ng để giải mã file lấy mật khẩu. Mình ko có chuyên môn về lĩnh vực này, theo ý hiểu của mình thì muốn giải mã được phải mớm cho nó “mật khẩu”, nếu “mật khẩu” khớp với đoạn mã trong file thì đúng là nó rồi.

Như ta đã biết, có 2 cách mớm mật khẩu: brute force và dictionary force. Brute force hiểu là dò tuần tự, là kiểm tra từ tất cả các tổ hợp khả dĩ được tạo bởi tập hợp kí tự cho trước, giả dụ bạn cần tổ hợp mật khẩu gồm 8 kí tự chỉ bằng các chữ cái tiếng Anh, thì bạn cần check đủ số khả năng là “chỉnh hợp chập 8 của 26” bằng bao nhiêu đấy bạn tính trên máy casio là hiểu. Vâng nó rất nhiều. Khi mà bạn không biết mật khẩu độ dài bao nhiêu, có chứa chữ số hay kí tự đặc biệt hay không, thì số lượng tổ hợp cần check lớn đến nỗi cắm máy trăm năm ko xong! (Nhưng dĩ nhiên xác suất thành công là 100% nếu bạn có đủ trăm năm để chờ đợi)

Dictionary force là dò theo từ điển thì ưu việt hơn. Nếu bạn có file từ điển (là một file .txt, trong đó mỗi dòng là một mật khẩu cần check), aircrack-ng sẽ bốc từng cụm từ trong từ điển ra đối chiếu. Nhược điểm là, từ điển của bạn phải đủ phong phú, bởi nếu mật khẩu thật sự ko có trong từ điển, bạn cũng tốn công vô ích. Nhưng cái ưu việt ở chỗ, bạn ko phải tốn thời gian đi kiểm tra những tổ hợp mà bạn tin rằng chả bố con thằng nào đặt thế cho khó nhớ, kiểu “awhjfyqhcedcb”. File từ điển bạn có thể gg search ra rất nhiều trên mạng, ví dụ như của anh em LinuxTeamVN tổng hợp ở đây, có cả từ điển theo ngôn ngữ tiếng Việt, hoặc tự lập trình để tự sinh file từ điển theo quy tắc ngôn ngữ riêng của bạn.

Ngoài 2 phương pháp dò mật khẩu trên thì có nhiều bài báo kể thêm vài phương pháp nữa, nhưng mình thấy chẳng qua nó chỉ là lai tạo của brute force và dictionary force hay cải thiện chất lượng file từ điển hơn mà thôi.

Nói về aircrack-ng, đây là bộ công cụ hack wifi có trong các phiên bản linux hacking và bảo mật như Kali linux, Backbox, … Nếu bạn ko dùng Kali linux mà dùng Ubuntu, bạn vẫn có thể cài qua apt-get thông qua lệnh sudo apt-get install aircrack-ng, hoặc tải sourcecode từ trang chủ về giải nén rồi biên dịch như thường, thậm chí có bản chạy trên Windows.

Với Kali linux, mặc định bạn đang thao tác lệnh với quyền root. Ubuntu (hay Backbox) thì ko như vậy, chỉ là quyền user. Để tiện cho việc gõ lệnh đỡ phải gõ thêm sudo ở đầu rồi nhập mật khẩu, thà gõ : sudo -i rồi nhập khẩu một lần để đăng nhập dưới quyền root luôn.

OK bắt đầu thôi!

0. Trước khi bắt đầu cần biết tên wireless adapter trong máy tên là gì. Gõ lệnh iwconfig hoặc ifconfig để biết điều đó. Thường nó có tên là wlan0, trong ví dụ này máy mình đặt tên nó là wlp6s0 và mình sử dụng tên wlp6s0 trong câu lệnh tiếp theo. Screenshot_2017-08-12_03-03-11

1. airmon-ng check kill và airmon-ng start wlp6s0 Screenshot_2017-08-12_03-07-29Screenshot_2017-08-12_03-09-03 Khởi động chế độ giám sát (monitor mode) trên wireless adapter, để theo dõi giao thông mạng qua lại giữa máy với điểm truy cập mạng (Access Point). Lúc này wifi được sử dụng với mục đích khác, do đó ko thể dùng nó truy cập internet được. Vì thế ta thực hiện airmon-ng check kill trước để tắt hết các chương trình nào đang sử dụng card wifi. Sau đó thực hiện airmon-ng start wlp6s0 để bắt đầu bật monitor mode. Lúc này chúng ta có dòng thông báo phía dưới: “monitor mode đã bật cho wlp6s0 với tên wlp6s0mon”. Các câu lệnh tiếp theo sẽ sử dụng tên wlp6s0mon này. (tên interface có lúc đặt là mon0, có lúc là wlan0mon, mỗi máy mỗi khác, do đó đừng áp dụng máy móc cop y xì nguyên câu lệnh của mình rồi bảo sao nó ko hoạt động)

2. airodump-ng wlp6s0mon Danh sách các wifi bắt được sẽ hiện ra. Ta chỉ cần quan tâm 2 cột là BSSID (địa chỉ MAC của thiết bị wifi) và CH (kênh). Ấn Ctrl+C để dừng lệnh rồi copy mã bssid của đối tượng mà bạn muốn hack. Chú ý chọn cái nào gần mình nhất (có chỉ số xung PWR lớn nhất), nhiều người đang truy cập (chỉ số Beacons hay Data lớn). Ở đây mình chọn thằng wifi có tên là ABCDEF, bạn để ý danh sách thứ hai ở phía dưới nhé, cho biết đang có một thiết bị wifi và một client kết nối với nhau. Lưu ý phương pháp này là giải mã mật khẩu từ gói tin bắt trộm giữa router với một client đang kết nối khác, chứ wifi mà chẳng có ai kết nối thì ko áp dụng được. (một phần lí do nữa là thằng này mình biết mật khẩu rồi, tiện cho việc demo) Screenshot_2017-08-12_03-30-57

3. airodump-ng --bssid [mã_bssid] -c [kênh] -w [đường_dẫn_lưu]/[đặt_tên] wlp6s0mon Ví dụ airodump-ng –bssid 90:8D:78:75:6D:4C -c 1 -w /home/hoang/Desktop/abcdef wlp6s0mon . Lúc này ta trỏ airodump-ng tới một thằng wifi cụ thể và lưu file truyền thông dưới tên và thư mục như trên.

4. Mở một cửa sổ Terminal khác, gõ lệnh sau (chú ý vẫn phải quyền root): aireplay-ng --deauth [10] -a [mã_bssid] wlp6s0mon Thực hiện xong lệnh trên, trở lại cửa sổ của bước 3. Chờ đợi phép màu xuất hiện ở góc trên cùng bên phải. Khi nó hiện lên “WPA handshake” nghĩa là bạn đã thành công được một nửa rồi đấy! Bạn có thấy từ lúc nãy ở bước 3, trong thư mục bạn chỉ định (của mình là Desktop) xuất hiện 4 file, trong đó có file đuôi .cap. Ở bước này, khi có WPA handshake, file cap của bạn chứa mật khẩu đang bị mã hoá mà bạn lấy cắp từ thằng đang kết nối với wifi kìa. Vấn đề còn lại là làm sao giải mã file để lấy mật khẩu thôi, đến đây ta mới thực sự dùng đến aircrack-ng với 2 phương pháp brute force và dictionary force để mò mật khẩu. Screenshot_2017-08-12_03-50-08

5.1. Dùng từ điển: aircrack-ng -w [đường_dẫn_tới_file_từ_điển] -b [mã_bssid] [đường_đẫn_file_cap] Ví dụ aircrack-ng -w /root/Downloads/tudien.txt -b 90:8D:78:75:6D:4C /root/Desktop/ABCDEF-01.cap 5.2. Hoặc gieo tuần tự với lệnh crunch: crunch [độ_dài_min] [độ_dài_max] [liệt_kê_kí_tự] [tuỳ_chọn_thêm] | aircrack-ng -b [mã_bssid] -w- [đường_dẫn_file_cap] Nếu gặp may, bạn sẽ có được kết quả như thế này: “KEY FOUND!” Screenshot_2017-08-12_04-11-38 Nói thêm một chút về lệnh crunch. Crunch tạo ra tất cả các tổ hợp dựa trên độ dài mật khẩu tối thiểu, độ dài tối đa, các kí tự sẽ có trong mật khẩu (ví dụ 0123456789 hay abcdefghijklmnopqrstuvwxyz), tuỳ chọn thêm ví dụ như -t 123456@@@ nghĩa là nó sẽ tạo mật khẩu 9 số trong đó bạn đã biết chắc chắn 6 số đầu như trên. Bạn có thể dùng crunch để tạo ra file từ điển bằng cách đặt tên file đầu ra cho nó, ví dụ như crunch 10 11 0123456789 list_sdt.txt. Cá nhân mình ko dùng cách làm này, vì file output nó đẻ ra có dung lượng rất lớn. Trong câu lệnh mẫu của mình, dấu sổ dọc “|” nghĩa là output của lệnh crunch sinh ra đến đâu đi vào làm input cho lệnh aircrack-ng luôn (dấu trừ “-” phía sau tham số -w của câu lệnh aircrack-ng nghĩa là lấy đầu vào từ luồng stdin).

6. Sau khi phá mật khẩu dù thành công hoặc chưa thành công, thì ta vẫn cần dọn dẹp bãi chiến trường và trả lại trạng thái như lúc đầu của card wifi. Tắt phiên làm việc của wlp6s0mon với lệnh airmon-ng stop wlp6s0mon rồi khởi động lại chương trình quản lý kết nối network bằng lệnh service network-manager restart.

Đời không như mơ! Thực tế mật khẩu mà ngta đặt có thể rất phức tạp hoặc ko có trong từ điển, hoặc bạn ko đủ kiên nhẫn để chờ đợi kết quả. Vì thế nếu bạn càng có nhiều thông tin về mật khẩu, bạn càng thu gọn số lượng thử hơn.

Bổ sung:

Nếu router wifi có chế độ bảo mật WEP, ở bước 4 trên ta có thể thay đổi cách dùng aireplay-ng với câu lệnh như sau: aireplay-ng -3 -b [mã_bssid_của_router] -h [bssid_của_client] wlp6s0mon Quên chưa nói, mục đích của aireplay-ng là liên tục gửi gói xác thực làm client tưởng nó đang bị router nghi ngờ tính chính chủ, nên gửi xác thực lại kèm theo mật khẩu (dĩ nhiên là mật khẩu bị mã hoá). Ở chế độ bảo mật WEP, client gửi mã PIN thay vì mật khẩu, mà mã PIN chỉ là dãy 8 chữ số nên dùng brute force nhanh cái vèo. Thực tế bây giờ chả ai đặt chế độ WEP cả, mặc định nhà sản xuất gợi ý cho WPA/WPA2.

Nếu router wifi để chế độ bảo mật WPA/WPA2 nhưng có thuộc tính WPS enabled, ngay khi xong bước 2 ở trên, bạn có thể dùng công cụ reaver để crack mã PIN với câu lệnh: reaver -b [mã_bssid] -c [kênh] -i wlp6s0mon -vv Tuy nhiên trước khi chạy lệnh reaver trên, ta cần phải kiểm tra xem wifi đó có mở khoá chế độ khoá PIN hay ko, bằng lệnh sau: wash -i wlp6s0mon Những wifi nằm trong danh sách này đều có thể crack mã PIN bằng reaver được. Ta chú ý vào cột WPS Locked, nên ưu tiên “No”, bởi “Yes” có nghĩa là thiết bị wifi đó đã kích hoạt cơ chế chống spam, ngăn ko cho thử mã PIN sai quá 10 lần liên tiếp, nếu quá nó sẽ chặn việc thử lại và phải đợi khoảng 60s mới cho nhập lại tiếp (điều này chỉ là tương đối, nhiều lúc nó vẫn hiện “No”). WPS (Wifi Protected Setup) là một tiêu chuẩn bảo mật giúp các thiết bị không dây kết nối với nhau mà ít phải cấu hình thủ công hơn. WPS cho phép các thiết bị xác thực với nhau bằng mã PIN, nhưng đây lại chính là điểm yếu của nó, bởi mã PIN chỉ là dãy 8 chữ số, bruteforce nhanh cái vèo. Một cơ chế bảo mật có vẻ tiện lợi, nhưng lại là phế vật nhất! Thực tế tấn công cho thấy, những wifi nào có kích hoạt WPS thì xác suất hack thành công gần như 100%, nếu ko có cơ chế chống spam nữa thì bạn chỉ phải tốn vài giờ là lấy được mật khẩu. Sau khi hack thành công, bạn nên lưu cả mã PIN và mật khẩu. Mật khẩu thì có thể đổi xoành xoạch, nhưng mã PIN thì lại ít ai quan tâm tới. Có mã PIN rồi, nhỡ sau này chủ nhân có đổi pass thì bạn chỉ cần thêm tham số -p [mã_pin] vào lệnh reaver trên là lại lấy được mật khẩu ngay (chưa đầy 15 giây). (Về phần thuộc tính WPS Locked đó nằm ở đâu trong mục cài đặt router wifi, như ở router D-Link này, cái “Disable PIN” ko được tick, có nghĩa là đang mở khoá PIN:) Screenshot_2017-08-21_22-29-16

Có rất nhiều script chạy một cách tự động hoá quy trình các lệnh trên, trong đó có wifite. Bản chất vẫn là chạy airmon-ng và airodump-ng, aireplay-ng nhưng thao tác đơn giản đi rất nhiều. Bạn chỉ cần gõ lệnh wifite, nó sẽ tự bật chế độ monitor, rồi dò quét các điểm phát sóng, sau đó nhấn Ctrl+C để dừng quét rồi chọn lấy AP cụ thể để bắt file cap. Nó còn kiêm cả crack WPS và crack file cap bằng từ điển. Mình thấy dùng wifite rất tiện, đỡ phải gõ mấy lệnh lằng nhằng như trên, bắt được file cap rồi crack sau cũng được.

Mdk3: đây là công cụ khai thác vào điểm yếu của giao thức truyền thông không dây. Có 2 chức năng hay dùng nhất ở công cụ này: một là tạo ra điểm truy cập (Access Point – AP) giả, hai là tấn công DoS (Denial of Service – từ chối dịch vụ), tức là tạo ra rất nhiều client giả mạo đòi yêu cầu kết nối với router wifi, dẫn tới việc quá tải cho router khiến thiết bị tạm thời ngắt hết kết nối hoặc khởi động lại. Mức độ thành công của mdk3 phụ thuộc nhiều vào cường độ tín hiệu của máy tấn công. Do đó tốt nhất nên sử dụng modem wifi cắm ngoài, chứ wifi laptop công suất yếu lắm. Do đây là công cụ phá hoại là chính, công khai tấn công trực tiếp vào AP nên rất dễ bị nạn nhân phát hiện. Hãy cân nhắc về hậu quả trước khi hành động. mdk3 wlp6s0mon d -c [kênh] : liên tục gửi gói tin de-authentication (trên kênh nhất định) khiến các client đang và muốn kết nối với điểm truy cập wifi đều bị văng ra ngoài chừng nào bạn dừng lệnh này. mdk3 wlp6s0mon b -n [essid] -c [kênh] : tạo điểm truy cập giả với tên essid và kênh cụ thể (dùng để giả mạo AP đã có trước, ai đó từng kết nối với AP này có thể sẽ nhầm lẫn mà nhập mật khẩu vào AP giả mạo. Đây chính là cách thức đánh cắp mật khẩu khác mà mình sẽ trình bày ở bài viết khác với phần mềm Fluxion). mdk3 wlp6s0mon a -a [bssid_của_AP_cần_tấn_công] : tấn công DoS vào thiết bị phát sóng wifi mà bạn nhắm tới, khiến nó bị đình trệ hoặc ép nó phải reset lại. Nghe nói tấn công DoS vào router sẽ khiến thiết bị reset về trạng thái cấu hình ban đầu, tức là ko khoá PIN, ko mật khấu (?). Mình chưa thử nên chưa biết. Còn rất nhiều phương thức và tuỳ chọn khác của mdk3, gõ –help để biết chi tiết.

Kinh nghiệm thực chiến:

Kinh nghiệm rút ra để phòng chống hack pass wifi:

  1. Đặt mật khẩu đủ dài và đủ phức tạp để ko dễ gì bị phá bởi dò từ điển.
  2. Tắt ngay giao thức WPS. Nếu bạn phát hiện hoặc cảm thấy có ai đó đã hack được pass wifi, hãy vào lại trang cài đặt router, bỏ chọn ngay “WPS enabled”, sau đó đổi pass.
  3. Đổi mật khẩu đăng nhập router. Nếu bạn cứ để user với pass đăng nhập theo mặc định là admin – admin, thì bất cứ ai trong mạng wifi cũng có thể đăng nhập vào và thay đổi cấu hình cài đặt của router.

Đôi lời nhắn nhủ: cá nhân mình thích một thế giới free wifi, nhưng đã là hưởng xái thì phải tôn trọng chủ nhân của nó, chỉ dùng chùa ở mức lướt web cơ bản thôi, đừng dùng nó để download hay chơi game.

Chia sẻ:

  • X
  • Facebook
Thích Đang tải...

Có liên quan

Từ khóa » Hack Wifi Bằng Cách Giả Mạo Access Point