Computer >> Hướng Dẫn Máy Tính >  >> Kết Nối Mạng >> WiFi

Cơ bản bảo mật Wi-Fi: Bảo vệ mạng WPA2 khỏi tấn công hack

Chào mừng đến thế giới hack Wi-Fi, mọi người. 💻.

Trong bài trước, chúng ta nói về kỹ năng và thủ thuật Linux cơ bản. Bài này bạn sẽ học thủ tục hack Wi-Fi cơ bản dùng những kỹ năng đó.

Bạn sẽ học cách:

  1. Giám sát mạng Wi-Fi xung quanh
  2. Thực hiện tấn công DOS
  3. Bảo vệ mình khỏi tấn công Wi-Fi

Lưu ý quan trọng: Chỉ dành cho mục đích giáo dục (và chút vui). Dưới bất kỳ hoàn cảnh, điều kiện, hoặc ảnh hưởng của bạn bè ngu ngốc nào, KHÔNG ĐƯỢC dùng hack học ở đây trên tổ chức, cá nhân, hoặc hàng xóm phiền toái. Bạn sẽ phạm tội và bị phạt, tù, hoặc làm cha mẹ xấu hổ.

Với lời mở đầu tuyệt vời đó, chúng ta bắt đầu.🙃

Nội dung bao gồm:

Tóm tắt cơ bản hướng dẫn này:

  1. Giới thiệu
  2. Gói tin (Packet) là gì?
  3. Cách bẻ khóa WPA2
    • Điều kiện tiên quyết
    • Chuyển card mạng sang chế độ monitor
    • Tìm mục tiêu
    • Thu gói handshake
    • Thực hiện tấn công DOS
    • Lấy mật khẩu (hy vọng thành công)
  4. Phòng chống tấn công WiFi
  5. Kết luận

Giới thiệu

Một router ¦ Credit: Unsplash.com

Wireless Fidelity (Wi-Fi) là công nghệ phổ biến nhiều người dùng hàng ngày. Dù ở trường, nhà, hay xem Netflix liên tục, càng hiếm thấy ai làm hoạt động internet không dùng nó.

Nhưng bạn có từng thử hack Wi-Fi? 🤔 (Chắc bạn đã bị cám dỗ 😏).

Để hack cái gì, bạn cần biết nó hoạt động như thế nào. Nghĩa là hiểu công nghệ hoạt động ra sao. Vậy bắt đầu từ cơ bản: Gói tin (Packet).

Gói tin (Packet) là gì?

Một gói tin cơ bản. Credit: ResearchGate.com

Gói tin là đơn vị cơ bản/khối xây dựng dữ liệu trong mạng máy tính. Khi dữ liệu chuyển từ máy này sang máy khác, nó được chia nhỏ và gửi trong các gói tin.

Hãy tưởng tượng gói tin như khối Lego. Bạn (máy tính) nhận bộ hoàn chỉnh (dữ liệu hoàn chỉnh) từng mảnh (gói tin) từ người bán (máy tính khác). Bạn lắp các khối lại theo hướng dẫn để xây hình (hoặc ở đây, để toàn bộ dữ liệu có ý nghĩa).

Một gói tin, còn gọi là datagram, gồm hai phần cơ bản:

  1. Header (Tiêu đề)
  2. Payload/Dữ liệu

Header chứa thông tin về gói tin. Giúp mạng và máy nhận biết làm gì với nó, như IP nguồn và đích.

Payload là nội dung chính gói tin mang. Cũng đáng nói gói tin có thể được mã hóa để dữ liệu không đọc được nếu bị kẻ tấn công lấy được.

Trong mạng, gói tin là yêu cầu cho chuyển mạch gói (packet switching). Chuyển mạch gói nghĩa là chia dữ liệu thành gói tin và gửi đến các máy khác nhau qua đường khác nhau. Khi nhận, máy tính lắp ghép gói tin để hiểu toàn bộ. Internet là mạng chuyển mạch gói lớn nhất trên Trái Đất.

Bây giờ xem cách áp dụng kiến thức này vào mạng không dây.

Cách bẻ khóa WPA2

Một đống mã ngẫu nhiên. Credit: Unsplash.com

Wi-Fi dùng nhiều giao thức khác nhau cho kết nối an toàn. Từ kém an toàn đến an toàn nhất:

  1. Mở (Open)
  2. WEP (Wired Equivalent Privacy)
  3. WPA2 (Wi-Fi Protected Access 2)
  4. WPA3 (Wi-Fi Protected Access 3)

Mạng mở như tên gọi — mở. Không mật khẩu, hầu như ai cũng kết nối được.

WEP là giao thức cũ, hiếm dùng và yêu cầu mật khẩu như kế nhiệm.

WPA2 là giao thức phổ biến nhất thế giới. WPA3 là giao thức mới nhất, an toàn nhất cho đến nay. Nhưng hiếm dùng và chỉ có trên thiết bị mới.

Điều kiện tiên quyết

Wi-Fi hoạt động bằng cách liên tục gửi gói tin dữ liệu đến thiết bị đã xác thực. Để hack, bạn cần:

  1. Máy Linux (Ưu tiên Kali Linux)
  2. Bộ thích ứng không dây (wireless adapter)

Để cài Kali từ đầu, làm theo hướng dẫn này.

Nếu chưa, bạn cần cài công cụ Aircrack-ng. Chỉ cần gõ lệnh:

sudo apt install aircrack-ng

Chuyển card mạng sang chế độ Monitor (Giám sát)

Trước tiên muốn lấy thông tin mục tiêu. Đây là việc hacker gọi là thám sát (reconnaissance).

Để làm vậy, cần chuyển card không dây từ chế độ 'managed' sang 'monitor'. Điều này biến nó từ card mạng thường thành trình đọc mạng không dây.

Trước hết tìm tên card không dây. Cắm adapter và chạy iwconfig để biết. Thường là cái cuối danh sách.

iwconfig. Credit: Daniel Iwugo

Như bạn thấy, của tôi là wlan1. Bây giờ chạy lệnh sau:

sudo airmon-ng check rfkill
sudo airmon-ng start 

sudo yêu cầu quyền root, check rfkill dừng tiến trình cản card vào monitor mode, start bảo airmon-ng card nào thực thi. Thay <network interface> bằng tên card không dây.

airmon-ng là script chuyển card sang monitor mode ngay lập tức. Bạn thực sự có thể làm thủ công hoặc tự viết script nhưng tôi thích cách đơn giản.

Tìm mục tiêu

Để xem mạng xung quanh, chạy lệnh:

sudo airodump-ng 

Airodump. Credit: Daniel Iwugo

airodump-ng là phần của bộ aircrack-ng cho phép card mạng xem traffic không dây xung quanh.

Như bạn thấy, ta nhận nhiều thông tin. Nhìn nhanh cột ESSID (Extended Service Set Identifier). Còn gọi là tên AP (Access Point), cột này hiện tên mạng mục tiêu, trường hợp tôi là 'Asteroid'.

Bạn muốn tập trung vào AP mục tiêu, bỏ qua phần còn lại. Bấm Ctrl+C dừng quét hiện tại, lần này thêm bssid của mạng với cờ bssid như dưới:

sudo airodump-ng  --bssid 

Airodump đang hoạt động. Credit: Daniel Iwugo

BSSID là Basic Service Set Identifier, tên khoa học cho địa chỉ MAC của thiết bị. Dùng để nhận diện thiết bị trên mạng, cùng ESSID (Tên AP). Về mặt kỹ thuật, có thể dùng cờ ESSID thay thế nhưng AP khác nhau có thể trùng tên. Tuy nhiên, không hai AP nào có cùng BSSID.

Dưới là đoạn code lấy info AP dùng chỉ ESSID.

sudo airodump-ng  --bssid 

Lưu ý: Nếu tên có khoảng trắng, đóng ngoặc kép. Ví dụ, --bssid "Asteroid 1".

Bạn sẽ thấy tôi highlight địa chỉ MAC của client kết nối AP dưới cột 'Station'. Bên trái là MAC của AP nó kết nối.

Thu gói Handshake (Bắt tay)

Bước tiếp theo thu gói handshake (Nhớ gói tin? 👀). Gói handshake là 4 gói đầu tiên gửi từ AP khi thiết bị xác thực kết nối AP.

Điều này nghĩa là ta có hai lựa chọn:

  1. Chờ thiết bị kết nối AP
  2. De-authenticate (hủy xác thực) thiết bị rồi để nó kết nối lại AP

Cái hai nghe vui hơn, chọn cái đó.

Bàn phím LED. Credit: Unsplash.com

Thực hiện tấn công DOS

Dùng aireplay-ng hoặc mdk4 để ngắt kết nối thiết bị khỏi AP một lúc. Đây gọi là tấn công de-authentication hoặc tấn công DOS (Denial-Of-Service) không dây.

Kế hoạch:

  1. Thiết lập airodump-ng thu gói tin và lưu
  2. De-authenticate thiết bị một lúc trong khi airodump-ng chạy
  3. Thu handshake

Nắm rõ rồi? Tiến hành. 👨‍💻👩‍💻

Trước, chạy lệnh thu và lưu gói tin:

sudo airodump-ng -c  --bssid   -w <đường dẫn file lưu gói tin>

Airodump đang thu gói tin. Credit: Daniel Iwugo

Ở đây, dùng cờ -c chỉ định kênh tìm, cờ --bssid cho MAC của AP, cờ -w cho đường dẫn lưu gói tin.

Bài học nhanh: Kênh giảm cơ hội AP can thiệp nhau. Khi chạy airodump-ng, xác định số kênh dưới cột CH.

Trong khi đó chạy, bạn sẽ chạy tấn công de-authentication đối với thiết bị kết nối nó:

sudo aireplay-ng -a  --deauth  

Cờ -a chỉ định MAC của AP, --deauth chỉ định thời gian tấn công tính bằng giây, theo sau là card mạng.

Tấn công de-authentication dùng card mạng của bạn gửi gói tin ngắt giao tiếp giữa AP và client. Không hoàn hảo, đôi khi client kết nối lại, nhưng chỉ lúc ngắn.

Nếu Wi-Fi bạn hoạt động loạn, liên tục ngắt và kết nối ngẫu nhiên, bạn có thể đang bị tấn công de-authentication.

Trong lệnh trên, bạn nhắm vào AP và chạy tấn công. Lưu ý bạn có thể tấn công bất kỳ thiết bị nào kết nối AP và đạt kết quả tương tự. Chỉ cần đổi cờ -a thành MAC của thiết bị kết nối.

Trong khi tấn công DOS diễn ra, kiểm tra quét airodump. Bạn sẽ thấy góc trên phải: WPA handshake: . Khi xác nhận đã có, dừng tấn công replay và quét airodump-ng.

Thực hiện tấn công replay để lấy handshake. Credit: Daniel Iwugo

Lấy mật khẩu (Hy vọng thành công)

Ở bước cuối, bạn chạy một loạt Pairwise Master Keys (PMK) tạo ra đối chiếu gói tin thu được để lấy mật khẩu. Hãy phân tích.

PMK cơ bản là kết hợp thuật toán của một từ và tên AP. Mục đích là liên tục tạo PMK dùng wordlist đối chiếu handshake. Nếu PMK hợp lệ, từ dùng để tạo nó là mật khẩu. Nếu không hợp lệ, bỏ qua từ tiếp theo.

Tôi dùng wordlist rockyou ở thư mục /usr/share/wordlists. Tôi nghĩ chỉ có trong Kali nên nếu OS khác, tự tạo thủ công hoặc sinh bằng crunch.

Nếu chưa giải nén, chạy lệnh:

sudo gunzip /usr/share/wordlists/rockyou.txt.gz

Bài học lịch sử nhanh: Wordlist rockyou là đống mật khẩu từ một vụ vi phạm an ninh mạng danh tiếng nhất ảnh hưởng công ty cùng tên. Chứa khoảng 14 triệu mật khẩu duy nhất dùng trong hơn 32 triệu tài khoản, là một trong wordlist đáng tin cậy nhất hành tinh.

Bây giờ chạy lệnh:

sudo aircrack-ng  -w <đường dẫn wordlist>

Bẻ khóa mật khẩu. Credit: Mercury

Được rồi mọi người — nhiệm vụ hoàn thành 😎.

Mật khẩu là, tốt... 'password'. Khá thất vọng từ góc độ bảo mật, nhưng tôi cài mạng này chỉ để vui cho hướng dẫn. Thực tế, có thể mất phút đến giờ tùy độ dài và độ mạnh mật khẩu.

Để dọn dẹp, xóa file bắt tay, đóng terminal, chạy service NetworkManager restart chuyển card mạng về managed mode để kết nối Wi-Fi.

Phòng chống tấn công WiFi

Thiết lập không gian làm việc cá nhân cơ bản ¦ Credit: Wallpaperflare.com

Bảo mật Wi-Fi cơ bản đủ chống tấn công này từ góc độ phòng thủ. Dùng WPA3 — giao thức mới hơn — là lựa chọn tốt nhất chống tấn công này. Để chống de-authentication, dùng kết nối ethernet nếu có thể.

Giả sử không thể, bạn có thể dùng cụm từ mật khẩu (passphrase) mạnh (không phải password) để giảm cơ hội kẻ tấn công lấy được. Passphrase là chuỗi từ đơn giản dùng làm mật khẩu. Passphrase thường dài hơn password, dễ nhớ, và ít dùng hơn. Do đó, khó tìm trong wordlist.

Ví dụ, 'mercury' dễ tìm trong wordlist hơn 'mercurylovespluto'. Cái sau là passphrase 15 ký tự, đơn giản như vậy, nhưng khó cho kẻ tấn công tìm, đoán, hoặc sinh ra.

Phòng chống khác: tắt WPS (Wi-Fi Protected Setup) và tránh tuyệt đối dùng router dùng giao thức WEP. Bạn chỉ mời rắc rối vì dễ hack hơn WPA2 nhiều.

Kết luận

Tóm tắt những gì bạn học:

  1. Chuyển adapter không dây sang monitor mode dùng airmon-ng
  2. Quét AP mục tiêu dùng airodump-ng và thu gói tin
  3. Thực hiện tấn công DOS trên AP lấy gói handshake
  4. Dừng DOS sau khi xác nhận đã bắt đủ gói tin cần thiết
  5. Dùng aircrack-ng sinh PMK đối chiếu gói handshake

Đôi khi mật khẩu không có trong wordlist. Lúc đó có nhiều cách khác lấy mật khẩu như Evil Twin Attack hoặc biến thể những gì bạn học. Tôi cũng khuyến khích thực hành điều này và nhiều tấn công khác bạn khám phá, vì giúp bạn thành hacker thành thạo.

Nhớ, đây chỉ dành cho mục đích giáo dục. Chỉ thực hiện trên người khác với sự đồng ý, hoặc trên thiết bị của bạn.

Và như vậy, kết thúc bài này. Hy vọng bạn thích. Và như tôi luôn nói, Happy hacking! 🙃

Tài nguyên

  1. Giải thích thêm về lý thuyết handshake
  2. Chi tiết hơn về gói tin
  3. WPA2 vs WPA3

Lời cảm ơn

Cảm ơn Anuoluwapo Victor, Chinaza Nwukwa, Holumidey Mercy, Favour Ojo, Georgina Awani, và gia đình tôi vì cảm hứng, hỗ trợ, kiến thức để hoàn thành bài này. Các bạn là anh hùng vô danh.

Ảnh bìa: Các anh Lego làm việc trên router từ Wallpaperflare.com

Học lập trình miễn phí. Chương trình mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người tìm được việc làm lập trình viên. Bắt đầu ngay