CCNA

Hướng dẫn lab: Tấn công MAC FLOODING và giải pháp phồng chống (PORT SECURITY)

phongdhphongdh
6 phút đọc
Chia sẻ:
Zalo
Hướng dẫn lab: Tấn công MAC FLOODING và giải pháp phồng chống (PORT

Môi trường thực hành: PNetLab / EVE-NG

Mục tiêu:

  • Hiểu cơ chế hoạt động của bảng CAM trên Switch.
  • Thực hiện thành công cuộc tấn công MAC Flooding làm tràn bảng CAM.
  • Phân tích hậu quả của cuộc tấn công (Switch biến thành Hub, rớt mạng).
  • Cấu hình tính năng Port Security để ngăn chặn tấn công.

Sơ đồ:

Sơ đồ topology của bài lab tấn công MAC Flooding và cấu hình Port Security trên Switch

Phần 1: Thiết lập môi trường (Topology)

Dựa theo sơ đồ thiết kế, kéo thả các node sau vào PNetLab và kết nối chúng:

  1. Switch (SW): Sử dụng image Cisco IOL (L2 Switch).
  2. Router (Default): Đóng vai trò là Default Gateway. Kết nối vào port e0/0 của SW.
  3. PC Alice: Có thể dùng VPCs hoặc Windows node. Kết nối vào port e0/1 của SW.
  4. PC Bob: Có thể dùng VPCs hoặc Windows node. Kết nối vào port e0/3 của SW.
  5. Attacker (Kali-Linux): Khuyến cáo dùng image Kali Linux. Kết nối vào port e0/2 của SW.

Quy hoạch IP (Network: 192.168.100.0/24):

  • Alice: 192.168.100.5/24
  • Bob: 192.168.100.6/24
  • Attacker: 192.168.100.7/24

Phần 2: Cấu hình cơ bản và kiểm tra trạng thái trước khi tấn công (Normal State)

Bước 1: Cấu hình IP cho các thiết bị

Tại Router (Default Gateway – Kết nối ở port e0/0 của Switch):

Router# configure terminal
Router(config)# interface ethernet 0/0
Router(config-if)# ip address 192.168.100.1 255.255.255.0
Router(config-if)# no shutdown
Router(config-if)# do wr
Cấu hình địa chỉ IP 192.168.100.1/24 cho cổng Ethernet 0/0 trên Router và lưu lại bằng lệnh do wr

Tại máy Alice (Sử dụng VPCs):

ip 192.168.100.5/24 192.168.100.1
show ip
save
Đặt IP 192.168.100.5/24 với gateway 192.168.100.1 cho máy Alice bằng VPCS và kiểm tra bằng show ip

Tại máy Bob (Sử dụng VPCs):

ip 192.168.100.6/24 192.168.100.1
show ip
save
Đặt IP 192.168.100.6/24 với gateway 192.168.100.1 cho máy Bob bằng VPCS

Tại máy Attacker (Kali Linux):

nmcli connection add type ethernet con-name eth0-static ifname eth0 ipv4.method manual ipv4.addresses 192.168.100.7/24 ipv4.gateway 192.168.100.1
nmcli connection up eth0-static
Cấu hình IP tĩnh 192.168.100.7/24 cho máy tấn công bằng lệnh nmcli connection add eth0-static

Bước 2: Cấu hình cơ bản trên Switch

Mặc định các port trên Cisco IOL có thể đang ở trạng thái tắt, ta cần bật chúng lên và gom vào cùng VLAN 1:

Switch# configure terminal
Switch(config)# interface range ethernet 0/0 - 3
Switch(config-if-range)# switchport mode access
Switch(config-if-range)# no shutdown
Switch(config-if-range)# do wr
Cấu hình các cổng Ethernet 0/0 - 3 trên Switch về switchport mode access và bật no shutdown

Bước 3: Kiểm tra kết nối

Tại máy Alice, mở Terminal/Command Prompt và ping sang máy Bob để đảm bảo mạng đang hoạt động bình thường.

ping 192.168.100.6
Máy Alice ping 192.168.100.6 sang máy Bob để kiểm tra kết nối đang hoạt động bình thường

Kết quả mong đợi: Ping thành công (Reply từ Bob với time ổn định, 0% loss).

Bước 4: Kiểm tra bảng CAM trên Switch

Vào CLI của Switch, gõ lệnh sau để xem bảng MAC Address (CAM Table):

Switch# show mac address-table
Bảng CAM trên Switch hiển thị bằng lệnh show mac address-table trước khi tấn công

Kết quả mong đợi: Bảng CAM hiện tại rất gọn gàng, chỉ chứa khoảng 3 đến 4 địa chỉ MAC tương ứng với các thiết bị đang cắm vào các port Et0/0 (Router), Et0/1 (Alice), Et0/2 (Attacker), và Et0/3 (Bob).

Phần 3: Thực hiện tấn công MAC Flooding

Bước 1: Bắt đầu tấn công

Mở console của máy Attacker (Kali Linux). Chúng ta sẽ sử dụng công cụ macof (đã được tích hợp sẵn trong Kali) để tạo ra hàng loạt địa chỉ MAC giả mạo.

Gõ lệnh sau:

macof -i eth0 -n 10000

Giải thích lệnh: * -i eth0: Chỉ định cổng mạng bắn gói tin ra ngoài.

  • -n 1000: Gửi 1000 gói tin với các địa chỉ MAC nguồn ngẫu nhiên. (Bạn có thể bỏ -n 1000 để tool chạy liên tục không dừng).

Màn hình Kali Linux sẽ cuộn liên tục hiển thị hàng loạt địa chỉ MAC và IP ảo đang được sinh ra.

Màn hình Kali Linux cuộn liên tục các địa chỉ MAC và IP ảo được sinh ra khi chạy tấn công MAC Flooding
Quá trình tấn công MAC Flooding đang chạy trên Kali Linux với hàng loạt địa chỉ MAC nguồn ngẫu nhiên

Phần 4: Kiểm tra hậu quả sau tấn công

Bước 1: Kiểm tra lại bảng CAM trên Switch

Quay lại CLI của Switch và chạy lại lệnh:

Switch# show mac address-table

Kết quả: Bạn sẽ thấy bảng CAM bị lấp đầy bởi hàng ngàn địa chỉ MAC rác (Type: DYNAMIC). Đặc biệt, tất cả các MAC giả mạo này đều trỏ về cùng một port là Et0/2 (cổng của kẻ tấn công). Bảng CAM lúc này đã bị tràn (CAM Table Overflow).

Bảng CAM trên Switch bị tràn bởi hàng nghìn địa chỉ MAC rác loại DYNAMIC cùng trỏ về cổng Et0/2

Bước 2: Bắt gói tin (Sniffing)

Trên máy Attacker, mở Wireshark và bắt gói tin trên cổng eth0.

Kết quả: Sẽ thấy rất nhiều gói tin IPv4 ảo xuất hiện. Lúc này Switch do không còn chỗ trống trong bảng CAM nên đã hoạt động như một Hub, gửi broadcast toàn bộ lưu lượng ra tất cả các port. Kẻ tấn công có thể bắt được gói tin của người khác.

Bắt gói tin của người dùng khác sau khi Switch tràn bảng CAM và hoạt động như một Hub

Bước 3: Kiểm tra lại kết nối mạng

Đứng từ máy Alice, ping lại máy Bob:

ping 192.168.100.6 -t
Máy Alice ping lại địa chỉ 192.168.100.6 tới máy Bob để kiểm tra kết nối sau tấn công

Kết quả: Sẽ xuất hiện dòng chữ Request timed out. Mạng đã bị quá tải hoặc Switch không thể xử lý dẫn đến rớt mạng hợp lệ. Cuộc tấn công DoS đã thành công.

Phần 5: Giải pháp bảo vệ (Port Security)

Để ngăn chặn tấn công MAC Flooding, chúng ta cấu hình tính năng Port Security trên Switch, giới hạn số lượng địa chỉ MAC được phép học trên một port.

Vào CLI của Switch, vào mode config và cấu hình trên interface của Attacker (Et0/2):

Switch# configure terminal
Switch(config)# interface ethernet 0/2

! Chuyển port sang mode access (Bắt buộc để bật Port Security)
Switch(config-if)# switchport mode access

! Kích hoạt Port Security
Switch(config-if)# switchport port-security

! Giới hạn số lượng MAC tối đa được học trên port này (Ví dụ: 5)
Switch(config-if)# switchport port-security maximum 5

! Hành động xử lý khi có vi phạm (quá 5 địa chỉ MAC)
Switch(config-if)# switchport port-security violation shutdown

Giải thích các mode Violation:

  • protect: Bỏ qua các gói tin chứa MAC lạ (không thông báo).
  • restrict: Bỏ qua gói tin chứa MAC lạ và tăng biến đếm vi phạm (có log).
  • shutdown: (Khuyên dùng trong Lab) Lập tức tắt (Disable/err-disable) port khi phát hiện vi phạm, ngắt kết nối hoàn toàn kẻ tấn công.
Các chế độ xử lý vi phạm của Port Security gồm protect, restrict và shutdown làm err-disable cổng

Phần 6: Kiểm chứng giải pháp

  1. Từ máy Attacker, chạy lại lệnh tấn công: macof -i eth0.
  2. Quan sát trên console của Switch, bạn sẽ ngay lập tức thấy thông báo Syslog báo hiệu port Et0/2 đã bị chuyển sang trạng thái err-disable (down) do vi phạm chính sách bảo mật.
  3. Từ máy Alice, thực hiện ping lại Bob, kết nối mạng sẽ trở lại bình thường vì thiết bị của kẻ tấn công đã bị Switch ngắt kết nối vật lý.
Cổng của máy tấn công bị chuyển sang trạng thái err-disable do vi phạm Port Security trên Switch
Kết quả kiểm chứng: Alice ping Bob bình thường trở lại sau khi Port Security ngắt kết nối máy tấn công

Tham khảo thêm về MAC Flooding

Bài viết liên quan: Mạng máy tính là gì? Kiến thức nền tảng CCNA | Tài liệu chính thức: Cisco Networking Academy (chủ đề MAC Flooding).

Chia sẻ bài viết này:
Zalo
phongdh

phongdh

Tác giả bài viết • Content Creator

Chào mọi người, mình là Phong - hiện đang công tác tại Phòng Kỹ thuật AZDIGI. Trong quá trình làm việc mình có cơ hội được tiếp xúc với khá nhiều các vấn đề liên quan đến Website/Email/Hosting/VPS/Server, do đó mình viết lại các hướng dẫn này nhằm chia sẻ kiến thức, cũng như tạo một môi trường để chúng ta giao lưu và học hỏi lẫn nhau.

Kết nối:

Bài viết liên quan

Những bài viết bạn có thể quan tâm

Thảo luận 0 bình luận Viết bình luận

Email được bảo mật và không hiển thị công khai.

Chưa có bình luận. Hãy là người mở đầu cuộc trò chuyện.

Zalo