진진리 2024. 4. 19. 13:08
728x90

DHCP 스푸핑

  • DHCP: 네트워크 상에 동적으로 IP 정보를 할당하여 사용자에게 편의를 제공하기 위한 프로토콜
    • 서버로부터 IP 주소, IP 만료 기한, subnet netmask, gateway, dns 서버를 자동으로 할당받는 서비스
    • UDP로 동작하므로 인증이 불가능
    • UDP 자체가 비신뢰성/비연결지향성 프로토콜이기 때문에 인증된 DHCP인지 판별 불가능
  • DHCP 스푸핑: DHCP 프로토콜이 제공하는 정보를 변조해 타깃 PC를 속이는 공격 방법
    • 실제 IP 할당을 하기 전에 공격자가 할당
    • 공격자는 타깃 PC를 대상으로 ARP 스푸핑을 통해 스니핑(Sniffing)을 해야 함

정상적인 DHCP 동작 과정

  • DHCP 패킷의 동작 순서: DISCOVER - OFFER - REQUEST - ACK
    1. DISCOVER: DHCP 서버를 찾음
    2. OFFER: 패킷을 받은 DHCP 서버는 DISCOVER를 보낸 PC에 OFFER를 전달(Windows에서만 broadcast)
    3. REQUEST: boradcast로 REQUEST 패킷 전송
    4. ACK

DHCP 스푸핑 공격 과정

  • ettercap 툴을 사용하여 MITM 공격을 시도해 타깃 PC의 IP를 해제하고 재할당
    • Gateway의 주소가 공격자의 주소로 할당됨
    • 하지만 DHCP Server의 주소는 정상적인 주소로 할당되어 있음
  • DISCOVER: 이전에 사용했던 IP주소를 포함시켜서 패킷을 보냄(재할당 요청 - IP 주소 101)
  • OFFER
    • 공격자가 가짜 DHCP OFFER 패킷을 보냄 (IP주소가 50) - 101을 요청했으므로 보류
    • 실제 DHCP 서버는 IP 주소 101번 할당 - 나중에 들어왔지만 101이므로 제안 승낙
  • REQUEST: DHCP 서버에서 보낸 제안을 승낙하여 Broadcast로 패킷 전송, 공격자도 해당 패킷을 전달받음
  • ACK: 공격자 PC에서 가짜 DHCP ACK를 전달
    • Source Address가 DHCP 서버 주소
    • Gateway 주소만 공격자 PC로 바뀌어 있음
    • 변조된 정보임에도 불구하고 DHCP 서버의 주소는 실제 서버 주소로 설정됨
  • 공격이 성공하게 되면, 자신이 원하는 사이트에 접속하도록 할 수 있으며 모든 패킷의 스니핑이 가능해짐

DHCP 스누핑

DHCP 서버를 보호하기 위해 사용되는 기능

스위치가 DHCP 메시지의 내부까지 확인하는 기능

  • DHCP 스누핑 동작원리
    • 스위치에서 신뢰할 수 있는 인터페이스와 신뢰하지 않는 인터페이스를 설정
      • Trusted Port: DHCP 서버 or DHCP Relay Agent
      • Untrusted Port: DHCP 클라이언트가 접속한 포트
    • 비신뢰성 포트에서 DHCP 서버, DHCP Relay Agent가 보내는 메시지는 가짜로 판단해 무조건 차단
    • 또한 DHCP 클라이언트가 보내는 메시지를 검사하여 이더넷 프레임의 소스 MAC 주소와 DHCP 메시지의 클라이언트 MAC 주소를 비교해 같으면 정상, 다르면 공격 메시지로 판단해 차단
    • 비신뢰성 포트으로부터의 DHCP 요구 및 서버로부터의 DHCP 응답을 도청하여 각종 정보를 데이터베이스화

 

*vlan (virtual lan): 하나의 스위치 내에서도 네트워크를 쪼갤 수 있음

*IP Source Guard: DHCP 서버에 의해 IP 주소를 할당받지 않은 장비들을 통신을 못하게 막는 기능