DHCP Attack

justugi·2025년 6월 3일

네트워크 보안

목록 보기
6/13

DHCP Attack

  • DHCP : 네트워크 설정 (IP 주소, netmask, GW 주소, DNS 주소 등) 을 할당하는 서비스
    • 7 계층 통신 프로토콜
  • 과정
    • 클라이언트 --discover-> 서버 --offer-> 클라이언트 --request-> 서버 --ack-> 클라이언트

1. DHCP starvation (DHCP server 공격)

  • DHCP 기능 마비 -> 정상적인 주소 할당을 못하게 하는 공격 (서버를 마비시켜서 가용성을 침해하는 DOS 공격)
    • 할당할 주소 대역 (scope) 을 전부 할당한 경우 추가 할당이 불가
    • 해커가 의도적으로 해당 대역을 전부 할당하도록 유도하는 공격
      • DHCP 서버는 하나의 클라이언트에게 하나의 주소만 할당
        • DHCP 서버는 discover 요청의 MAC 주소로 클라이언트 구별
      • 한명의 해커가 수많은 주소를 할당 받아야 함
        • 할당 (discover) 요청 할 때 마다 mac 주소 변조 : mac spoofing
        • DHCP 는 DORA 과정 중에 할당할 주소를 다른 사용자에게 제의하지 않음 (예약 기능)
          • 예약 기능을 악용하여 수많은 mac 주소로 변조 후 discover 를 전달하면 DHCP 서버를 각 할당될 주소를 전부 예약하게 되고, 정상적인 사용자가 할당받을 주소가 없어짐

2. DHCP Spoofing (DHCP client 공격)

  • Client 의 gateway 정보를 감염시켜 모든 client 가 외부로 요청하는 데이터를 Sniffing 함

    • client to 8.8.8.8 데이터가 공격자를 거쳐서 8.8.8.8 으로 나가고, 응답은 8.8.8.8 to client 로 바로 감
    • 외부에서 client 로 보내는 응답은 Sniffing 불가 (단방향 Sniffing)
  • client 와 라우터를 다른 네트워크 대역으로 설정한 후 공격자의 PC 에 두 네트워크 대역에 속한 인터페이스를 추가하여 라우터 역할을 하면 모든 통신 과정이 공격자를 거치니까 양방향 Sniffing 가능

    • client 와 라우터가 다른 네트워크에 속하게 하려면??
    • 공격자 PC 역할
        1. 인터페이스 추가 (하나는 client 와 같은 네트워크용 스위치, 나머지 하나는 라우터와 연결)
        1. routing
        1. forwarding
        1. NAT
        • 출발지 IP 주소를 외부로 향하는 인터페이스 주소로 변환
  • DHCP 취약점

    • UDP 사용 -> 비 신뢰성, 비 연결성
    • DHCP 자체의 인증 메커니즘 부재
      • 서버가 MAC 주소만으로 client 구분
  • 보안 대책

    • 서버에서는 서비스를 해야하니까 막기 힘듬
    • DHCP starvation 보안 대책
      • Port Security
        • L2 Switch 에서 지원하는 MAC Filtering 기능
          • 비정상적인 MAC 주소 감지, 차단 함
        • 특정 LAN 포트에서 허용한 MAC address, MAC address 개수 지정
    • DHCP Spoofing 보안 대책
      • DHCP Snooping
        • L2 Switch 에서 지원하는 Filtering 기능
          • 클라이언트와 연결된 포트에서는 Discover & Request, 서버와 연결된 포트에서는 Offer & ACK (NAK) 허용

실습 DHCP starvation

linux 192.168.50.50

  • DHCP server
    kali 192.168.50.200

[linux]

  • DHCP 서버 구축
    • scope : 192.168.50.101 192.168.50.130

[kali]

  • dhcpstarv

    • dhcpstarv -i eth0
      • MAC 주소를 자동으로 변경해서 discover 요청
  • yersinia

    • yersinia -I
      • i : 공격할 인터페이스 ON
      • l : 현재 공격 상태
      • q : 창 닫기
      • g : 공격 모드 설정
        • DHCP 선택 후 enter
      • x : 공격 대상 지정 후 공격 시작

실습 DHCP Spoofing (단방향 Sniffing)

  • VPC
  • kali 10.10.10.3

[kali]

  • DHCP spoofing
    • ettercap -T -M dhcp:할당할IP대역/서브넷마스크/DNS주소
      • GW 주소는 공격자의 주소로 자동으로 설정됨
    • ettercap -T -M dhcp:10.10.10.100-120/255.255.255.0/10.10.10.3

[VPC]

  • DHCP 할당 시 GW 주소가 공격자의 주소로 설정됨
    • 외부 통신 (다른 네트워크와 통신) 시 GW 주소를 향해 데이터를 보내는건 공격자를 거쳐서 Sniffing 가능, 외부 응답이 들어오는건 바로 원래 클라이언트에게 가니까 공격자가 Sniffing 불가

실습 DHCP Spoofing (양방향 Sniffing)

  • VPC
  • kali
    • eth0 : 10.10.10.254 (vmnet2)
    • eth1 : 20.20.20.1 (vmnet3)

[kali]

  • 인터페이스 추가
    • 네트워크 인터페이스 vmnet 추가 후 VPC 와 라우터와 연결된 vmnet 에 맞는 interface 설정
    • /etc/network/interfaces

auto eth0
iface eth0 inet static
address 10.10.10.254
netmask 255.255.255.0
broadcast 10.10.10.255

auto eth1
iface eth1 inet static
address 20.20.20.1
netmask 255.255.255.0
gateway 20.20.20.254
broadcast 20.20.20.255

[kali]

  • DHCP Spoofing
    • ettercap -T -M dhcp:10.10.10.100-120/255.255.255.0/10.10.10.254

[VPC]

  • DHCP 할당 시 GW 주소가 공격자의 주소로 설정됨

[kali]

  • 정상 통신이 목적이니까 kernel forwarding
    • sysctl net.ipv4.ip_forward=1
  • NAT
    • iptables -t nat -A POSTROUTING -s 10.10.10.101 -o eth1 -j MASQUERADE
profile
IT 보안, 관심 있는 것을 공부합니다.

0개의 댓글