Mục lục bài viết

CCNA

Hướng Dẫn Thực Hành Lab Tấn Công DHCP Và Cấu Hình DHCP Snooping Trên PnetLab

phongdh
phongdh
Chia sẻ:
Zalo
Hướng Dẫn Thực Hành Lab Tấn Công DHCP Và Cấu Hình DHCP Snooping Trên PnetLab

DHCP (Dynamic Host Configuration Protocol) là một dịch vụ thiết yếu trong mạng LAN, nhưng cũng là mục tiêu của nhiều cuộc tấn công mạng ở Layer 2. Bài viết này sẽ hướng dẫn chi tiết cách thiết lập mô hình lab trên PnetLab/EVE-NG, mô phỏng các cuộc tấn công DHCP (DHCP Starvation & DHCP Spoofing), và cấu hình phòng thủ hiệu quả bằng tính năng DHCP Snooping trên Cisco Switch.

⚠️ Lưu ý bảo mật: Các kỹ thuật tấn công trong bài lab này CHỈ được phép thực hiện trong môi trường mô phỏng (PnetLab, GNS3, EVE-NG) hoặc hệ thống mạng nội bộ do bạn làm chủ. Tuyệt đối không sử dụng cho mục đích phá hoại hệ thống thực tế.

1. Mô Hình Lab Tấn Công DHCP Và Phòng Thủ (Topology)

Để bắt đầu bài lab, bạn cần chuẩn bị các node thiết bị mạng sau trên nền tảng ảo hóa PnetLab:

  1. R1 (Cisco IOL Router / vIOS): Đóng vai trò là DHCP Server Hợp Lệ (Legitimate DHCP Server).
  2. SW1 (Cisco IOL Switch / vIOS L2): Đóng vai trò là Switch trung tâm (Access Switch).
  3. VPC1 (Virtual PC / Windows / Linux): Đóng vai trò là Client (Nạn nhân).
  4. Kali Linux: Đóng vai trò là Kẻ tấn công (Attacker).

Kết Nối Vật Lý (Connections):

  • R1 (e0/0) kết nối với SW1 (e0/0).
  • VPC1 (e0) kết nối với SW1 (e0/1).
  • Kali Linux (eth0) kết nối với SW1 (e0/2).

Quy hoạch IP: Dải mạng LAN sử dụng là 192.168.1.0/24. R1 sẽ được gán IP 192.168.1.254. Tất cả các thiết bị đều thuộc VLAN 1 (VLAN mặc định).

2. Giai Đoạn 1: Cấu Hình DHCP Server Ban Đầu (Baselining)

Trước khi tiến hành tấn công mạng, chúng ta cần thiết lập một hệ thống mạng hoạt động bình thường, nơi Client có thể xin IP hợp lệ từ Router.

2.1 Cấu Hình DHCP Server Trên R1 (Cisco Router)

Truy cập vào R1, bật cổng và cấu hình dịch vụ cấp phát DHCP cho mạng LAN:

R1> ena
R1# configure terminal
R1(config)# interface ethernet 0/0
R1(config-if)# ip address 192.168.1.254 255.255.255.0
R1(config-if)# no shutdown
R1(config-if)# exit

! Tạo DHCP Pool cấp IP cho Client
R1(config)# ip dhcp excluded-address 192.168.1.200 192.168.1.254
R1(config)# ip dhcp pool LAN_POOL
R1(config-dhcp)# network 192.168.1.0 255.255.255.0
R1(config-dhcp)# default-router 192.168.1.254
R1(config-dhcp)# dns-server 8.8.8.8
R1(config-dhcp)# exit

Lệnh kiểm tra cấu hình trên R1: Sau khi cấu hình, hãy dùng các lệnh show sau để xác nhận dịch vụ DHCP đã sẵn sàng:

! Kiểm tra danh sách pool đã tạo
R1# show ip dhcp pool

! Kiểm tra các IP đã loại trừ (excluded)  IP đã cấp phát (binding)
R1# show ip dhcp binding

2.2 Kiểm Tra Cấp Phát IP Trên VPC1 (Client)

Trên thiết bị người dùng (VPC1), tiến hành xin cấp IP để đảm bảo DHCP Server hoạt động tốt:

ip dhcp
DHCP

(Thành công: VPC1 đã nhận được IP đúng và Default Gateway trỏ về Router R1).

3. Giai Đoạn 2: Thực Hành Các Kiểu Tấn Công DHCP (Offensive)

Tấn công 1: DHCP Starvation (Làm Cạn Kiệt Nguồn IP – DoS)

Mô tả: Kẻ tấn công gửi hàng ngàn gói tin DHCP Discover với các địa chỉ MAC giả mạo (spoofed MAC) khác nhau. DHCP Server hợp lệ sẽ phản hồi và cấp phát hết toàn bộ dải IP đang có trong Pool, gây ra tình trạng từ chối dịch vụ (DoS) khiến các client mới không thể nhận được IP.

Thực hiện trên Kali Linux: Sử dụng công cụ Yersinia được tích hợp sẵn trên Kali.

Khởi chạy lệnh tấn công DHCP Starvation bằng Yersinia:

yersinia dhcp -attack 1 -interface eth0

(Attacking… Yersinia sẽ liên tục bơm các gói tin DISCOVER độc hại vào mạng LAN).

Kiểm tra hiệu quả tấn công trên Router R1: Trở lại R1 và chạy lệnh kiểm tra bảng DHCP Binding:

show ip dhcp binding

Kết quả: Bạn sẽ thấy bảng binding tràn ngập các địa chỉ IP bị cấp phát cho các địa chỉ MAC ảo lạ lẫm. Kể từ lúc này, mọi thiết bị mới kết nối vào mạng đều không thể xin được IP.

Kiểm tra trên VPC1 (Client Nạn Nhân): Trở lại VPC1 và chạy lệnh xin cập lại IP DHCP

ip dhcp -r

Lúc này PC1 sẽ báo lỗi DORA failed vì R1 đã hết IP để cấp phát (Tấn công DOS thành công).

Tấn công 2: DHCP Spoofing (Rogue DHCP Server / MITM)

Mô tả: Kẻ tấn công tự dựng lên một máy chủ DHCP giả mạo (Rogue DHCP Server) ngay trong mạng LAN. Khi Client xin IP, do Attacker phản hồi gói DHCP Offer nhanh hơn hoặc nằm gần hơn, Client sẽ nhận IP sai lệch từ Attacker. Attacker thường thiết lập Gateway trỏ về chính nó để thực hiện nghe lén dữ liệu (Tấn công Man-in-the-Middle).

Thực hiện trên Kali Linux: Chúng ta sẽ sử dụng công cụ dnsmasq để dựng DHCP Server giả mạo.

  • Cấu hình IP tĩnh cho card mạng eth0 của Kali:
nmcli connection add type ethernet con-name eth0-static ifname eth0 ipv4.method manual ipv4.addresses 192.168.1.100/24
nmcli connection up eth0-static
ifconfig etho
  • Trên Yersinia, mở thêm một đợt tấn công: Launch attack > creating DHCP rogue server.
  • Điền các thông số để “lùa” nạn nhân:
    • Server ID, Router, DNS Server: Điền IP của máy Kali (ví dụ 192.168.1.100). Nhớ kiểm tra xem IP máy kali của mình được cấp là IP nào nhé lệnh ip a
    • Start IP – End IP: Điền dải IP trống (ví dụ 192.168.1.50 – 192.168.1.60).
    • Lease Time: 3600. (Thời gian DHCP cho phía client mượn IP)

    Kiểm tra trên VPC1 (Client Nạn Nhân): Giải phóng IP cũ và xin lại IP mới:

    Luư ý: Khi bạn chạy ip dhcp -r nhưng chưa nhận IP DHCP giả từ máy tấn công, bạn chạy lạy ip dhcp -r

    ip dhcp -r

    Kết quả: Bạn sẽ thấy VPC1 nhận IP thuộc dải 192.168.1.5x và Default Gateway là 192.168.1.100 (IP của kẻ tấn công Kali). Cuộc tấn công DHCP Spoofing đã thành công rực rỡ!

    4. Giai Đoạn 3: Cấu Hình Phòng Thủ Với DHCP Snooping (Defensive)

    Để ngăn chặn triệt để 2 cuộc tấn công nguy hiểm trên, chúng ta cần cấu hình tính năng bảo mật DHCP Snooping trên Access Switch (SW1).

    • Chống DHCP Spoofing: Quy định cổng nối với Server thật là cổng Trusted (được phép trung chuyển gói DHCP Reply/Offer/Ack). Các cổng kết nối với người dùng là cổng Untrusted (các gói DHCP Offer đi vào từ đây sẽ bị Switch Drop ngay lập tức).
    • Chống DHCP Starvation: Giới hạn số lượng gói tin DHCP nhận được trong 1 giây trên các cổng Untrusted (Rate Limiting). Vượt mức này, thiết bị đang cố tình spam.

    Cấu Hình DHCP Snooping Trên Switch SW1

    SW1# configure terminal
    
    ! 1. Bật tính năng DHCP Snooping toàn cục  áp dụng trên VLAN 1
    SW1(config)# ip dhcp snooping
    SW1(config)# ip dhcp snooping vlan 1
    
    ! (Lưu ý: Tùy chọn rất quan trọng trên giả lập IOL/GNS3/PnetLab để tránh lỗi DHCP Client không nhận được IP qua Switch)
    SW1(config)# no ip dhcp snooping information option
    
    ! 2. Cấu hình cổng Trust (Cổng e0/0 nối lên DHCP Server thật  R1)
    SW1(config)# interface ethernet 0/0
    SW1(config-if)# ip dhcp snooping trust
    SW1(config-if)# exit
    
    ! 3. Cấu hình Rate Limit (Giới hạn tốc độ) chống DHCP Starvation trên các cổng Access
    SW1(config)# interface range ethernet 0/1 - 2
    SW1(config-if-range)# ip dhcp snooping limit rate 10 
    ! (Quy định: Chỉ cho phép tối đa 10 gói DHCP/giây. Nếu vượt quá, cổng sẽ rơi vào trạng thái lỗi err-disabled)
    SW1(config-if-range)# exit

    Lệnh kiểm tra cấu hình DHCP Snooping trên Switch:

    ! Xem trạng thái hoạt động của DHCP Snooping (Cổng nào Trust, cổng nào Untrust, Rate Limit bao nhiêu)
    SW1# show ip dhcp snooping

    5. Giai Đoạn 4: Kiểm Tra Hiệu Quả Phòng Thủ (Verification)

    Bây giờ, hãy thử tiến hành các kỹ thuật tấn công lại một lần nữa để xem Switch Cisco bảo vệ mạng lưới của chúng ta như thế nào.

    1. Kiểm tra khả năng chống Rogue DHCP (Spoofing):

    • Trên Kali Linux, vẫn để tiến trình dnsmasq chạy (Fake DHCP).
    • Trên VPC1, gõ lại lệnh ip dhcp để xin IP.
    • Kết quả: Bạn sẽ thấy VPC1 nhận lại được IP chuẩn từ DHCP thật của R1 (192.168.1.x, GW 192.168.1.254). Các gói tin giả mạo chứa DHCP Offer xuất phát từ Kali đi vào cổng e0/2 của Switch đã bị bắt giữ và Drop (loại bỏ)e0/2 được coi là cổng Untrust.

    2. Kiểm tra khả năng chống cạn kiệt IP (Starvation):

    • Trên Kali Linux, chạy lại công cụ Yersinia: yersinia dhcp -attack 1 -interface eth0.
    • Quan sát trên cửa sổ Console của SW1.
    • Kết quả: Hệ thống lập tức phát hiện lưu lượng DHCP bất thường vượt quá 10 gói/giây và sẽ tự động tắt (shutdown) cổng kết nối của kẻ tấn công:
    %PM-4-ERR_DISABLE: dhcp-rate-limit error detected on Et0/2, putting Et0/2 in err-disable state
    %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/2, changed state to down
    • Sử dụng các lệnh kiểm tra trạng thái lỗi trên SW1:
    ! Xem trạng thái vật  của cổng e0/2
    SW1# show interface ethernet 0/2 status
    ! Cột Status sẽ hiển thị "err-disabled".
    
    ! Xem nguyên nhân khóa cổng
    SW1# show interfaces status err-disabled 

    Mẹo: Phục hồi cổng bị khóa tự động (Err-disable Recovery)

    Trong thực tế, quản trị viên có thể vào cổng bị khóa, gõ shutdown rồi no shutdown để mở lại cổng. Hoặc tối ưu hơn, bạn cấu hình cho Switch tự động khôi phục kết nối sau một khoảng thời gian nhất định (ví dụ 30 giây):

    errdisable recovery cause dhcp-rate-limit
    errdisable recovery interval 30

    Kiểm tra thời gian phục hồi:

    show errdisable recovery

    Chúc mừng bạn! Bạn đã hoàn thành xuất sắc bài thực hành Lab DHCP Snooping trên PnetLab. Việc hiểu rõ cơ chế của DHCP Attack và nắm vững cách cấu hình Switch để phòng thủ là kỹ năng sống còn của các Network/Security Engineer hiện nay.

    Chia sẻ:
    Zalo
    phongdh

    phongdh

    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 cho bài viết này

    * Địa chỉ email của bạn sẽ được bảo mật và không hiển thị công khai.

    Chưa có bình luận nào

    Hãy là người đầu tiên chia sẻ góc nhìn của bạn về bài viết này nhé!

    Zalo

    Nhập từ khóa để tìm kiếm...

    0 kết quả

    CHUYÊN MỤC LIÊN QUAN