View

DHCP Spoofing

Lute3r 2022. 11. 28. 20:02

 

<DHCP Spoofing>

 

[공격 형태]

 

1. DHCP Starvation (DHCP IP 고갈 공격)

 

2. DHCP Spoofing (가짜 DHCP 서버 공격)

진짜 DHCP 서버 보다 공격자가 DHCP 서버라고 속이고,

게이트웨이와 DNS 서버 주소를 공격자 자신으로 바꿔주고 포워딩 한다.

그럼 일반 유저의 데이터를 공격자를 거쳐서 지나가게 되어 중간자 공격이 가능하다

 

 

[DHCP Starvation 공격]

 

위치

# cd /pentest/enumeration/irpas/

 

양식

# ./dhcpx [-i interface] [-D destination ip] [-t discovery time insecs] [-u arp time in secs]

 

공격

# ./dhcpx -i eth0 -D 10.10.10.250               // DHCP 서버의 IP 자원 고갈

 

[DHCP Spoofing 공격]

 

# ettercap -T -M dhcp:10.10.10.1-200/255.255.255.0/168.126.63.1    // 터미널모드, DHCP 서버 기능 활성화 하고 포워딩 까지

 

[DHCP Spoofing 공격 설명]

IP를 요청한 클라이언트가 Discovery 발생 패킷을 받은 공격자와, DHCP Server는 둘다 Offer 패킷 보냄

여기서 클라이언트가 공격자의 Offer 먼저 받을수도 있고, DHCP 서버의 Offer를 먼저 받을수도 있다

이때 공격자의 Offer를 받았다면 공격 시나리오 대로 성공한것이고,

만약 정상적인 DHCP 서버의 Offer를 받았다면 공격자입장에서는 1차 실패한 것이고,

클라이언트가 Request 패킷 (DHCP 10.10.10.250 / IP 10.10.10.2 / GW 10.10.10.254)을 날릴때

공격자는 Request 패킷을 보고 GW 만 공격자 IP로 수정해서 Ack를 클라이언트에게 보낸다

만약 Ack 마저도 DHCP 서버보다 클라이언트에게 늦게 도착한다면 실패 ~!

 

 

[대응방안]

1. Port Security

2. DHCP Snooping

 

[Port Security]

 - Switch 포트에 허용된 MAC 주소만 접근을 허락한다

 

   만약 허용된 MAC이 아닐 경우 기본적으로 해당 포트를

   Shutdown시켜서 네트워크 접속을 차단한다

 

 - Port-Security로 비활성화 된 인터페이스를 다시 사용하고

   싶은 경우 [Shutdown] -> [no Shutdown] 명령어를 입력한다

 

 - 정적으로 설정된 Switchport(L2)에서만 사용가능

   (Access / Trunk / Tunnel)

 

   L3 포트인 Routed Port, SVI 에서는 사용이 불가능 하다

   Etherchannel도 사용이 불가능하다

 

 - 보안 침해시 아래 3가지 방법중 하나

    => switchport port-security violation [ protect / restrict / shutdown ]

        Protect : 프로텍트 위반된 MAC만 막고 허용된 MAC은 통신 가능하다 (거의 사용안함)

        Restrict : Protect와 같은기능이지만 로그를 띄워서 관리자에게 알려주는기능이 추가되었다

        Shutdown : 무조건 포트를 막고 문제해결후 오픈한다

 

 - 문제점

    DHCP Discovery 패킷의 MAC 주소는 계속 바꾸고, Ethernet 프레임의 MAC 주소는 하나로

    고정해서 DHCP Starvation 공격을 하게되면 막을 방법이 없다.

    (Port Security는 2계층 MAC 주소를 확인해서 차단하는 기능)

 

 - Dynamic / Static / Port Sticky 이렇게 3가지 모드가 존재한다

 

   1. Dynamic : 가장 먼저 학습한 MAC 주소 외에 다른 MAC 주소가 들어오면 해당 포트 차단 (관리자가 학습 개수 지정 가능)

      - 해당 포트에 처음 접속하는 장비의  MAC을 학습

        그 후 해당 포트에 다른 MAC 주소가 감지되면 해당 포트를 Shutdown

 

      - MAC 주소 변조 공격 차단에 효과적이다

 

       # interface ethernet 0/2

       # shutdown

       # switchport mode access

       # switchport port-security                               // port-security 활성화

       # switchport port-security maximum 2               // port-security 최대 학습 2개 설정

       # no shutdown

 

   2. Static : 관리자가 설정한 MAC 주소 외에 다른 MAC 주소가 들어오면 해당 포트 차단

    - Static 으로 해당 LAN 포트에 사용하는 MAC을 입력하여 그외의 MAC 주소가 들어오면 포트를 차단

 

       # interface ethernet 0/1

       # shutdown

       # switchport mode access

       # switchport port-security

       # switchport port-security maximum 2

       # switchport port-security mac-address 0050.562C.BF2A                // 허용할 XP 랜카드 MAC 주소

       # switchport port-security mac-address 0050.56C0.0001                 // 허용할 Host-OS VMNet1 MAC 주소

       # no shutdown

 

   3. Sticky : 기본 Dynamic 처럼 동작한다, running-config에 저장되어 껏다 켜도 학습한 MAC 내용이 유지된다

    - 자동 학습한 MAC 주소를 자동으로 스태틱 입력 된다.

 

       # interface ethernet 0/1

       # shutdown

       # switchport mode access

       # switchport port-security

       # switchport port-security maximum 8         // 각 호스트 개수 + 스위치 + 라우터 (bpdu 또는 cdp 패킷 날라다니기때문)

       # switchport port-security mac-address sticky          // Sticky 설정

 

 

 

[최종 명령어]

    # interface ethernet 0/1                        // 적용할 인터페이스

    # shutdown

    # switchport mode access

    # switchport port-security

    # switchport port-security maximum 2

    # switchport port-security mac-address 0050.562C.BF2A                // 허용할 XP 랜카드 MAC 주소

    # switchport port-security mac-address 0050.56C0.0001                 // 허용할 Host-OS VMNet1 MAC 주소

    # switchport port-security violation [ protect / restrict / shutdown ]      // restrict 로 하면 로그메세지도 뜨고 좋당

    # no shutdown

 

 

[확인]

# show port-security

 

 

# show port-security address

 

 

 

[실습 화면]

 

switchport port-security 명령어로 활성화만 시켜 놓게 되면 Max Count 1로 설정된다

 

 

switchport port-security maximum 2 명령어로 제한 2로 설정하고 해당 공격자가 접속하게 되면

Max Count 2 가 되고 Current Count 가 1이 된다

 

 

공격자가 접속후 반복 DHCP Discovery 를 날리게 되면 제한 2로 설정되어있어서 바로

Security Count 1로 되면서 공격자 차단된다

(꼭 공격이 아니더라도 먼저 학습된 MAC 최대치 를 넘어서 학습한 MAC 주소 이거나, 스태틱 설정이 안된 MAC 주소

가 연결 되더라도 포트는 차단된다)

 

 

 

show ip interface brief 로 확인해보면 down down 되어있는것을 볼수있다

 

 

다시 활성화 해주는 방법은 해당 인터페이스에서 shutdown 했다가 다시 no shutdown 하면

활성화 되고 Port-Security 테이블도 설정값에 맞춰 초기화 된다

 

 

 

[DHCP Snooping]

 

설명

 - Switch에 DHCP Snooping 기능을 활성화시키면 DHCP 메세지의 내부 정보를

   확인한 후 문제 없는 트래픽들만 통과시킨다

 

 - Untrusted Port / Trusted Port 로 구분

    1) Untrusted Port : 스위치에 연결된 클라이언트쪽 포트(비신뢰 포트)

       => End Device가 연결된 포트로 DHCP서버가 발생시키는 메세지(Offer, ACK, NACK)가

           들어오는 경우 해당 트래픽을 차단

       => DHCP Discover 메세지의 경우 Untrusted Port로는 Flooding하지 않고 Trusted Port에게만 전달한다

       => 실제 DHCP 메세지 내부의 Client H/W Address(MAC)주소와 L2헤더(Ethernet)의 So-MAC 주소가

            서로 일치하는지 확인, 다를 경우 트래픽 차단

            (DHCP Starvation 공격 시 Discover 메세지 내부의 요청 장비의 MAC주소만 변조하고,

             L2헤더의 So-MAC을 정상 장비의 MAC을 넣고 공격을 진행할 경우 Port-Security로는 방어가 불가능하다)

    2) trusted Port : 스위치에 연결된 서버쪽 포트(신뢰 포트)

       => DHCP Server 혹은 L3(Gateway) 장비가 연결된 포트로 신뢰할 수 있는 포트 (DHCP 서버에 도달할 수 있는)
       => 모든 DHCP 관련 메세지를 허용(Trusted Port는 DHCP 메세지를 검사하지 않는다)

 

[설정]
# ip dhcp snooping

# ip dhcp snooping vlan 1                                  // 감시할 vlan 여러개 가능함 1, 10 ,20

# no ip dhcp snooping information option              // 옵션 82번을 사용하지 않는다는 명시

# interface ethernet 0/3

# ip dhcp snooping trust                                     // eth0/3 외에는 untrust 됨

 

 - DHCP Snooping이 활성화되면 DHCP Binding Table이 생성된다

    (어떤 포트에 어떤 맥과 어떤 아이피를 쓰는지 다 알고있다)

 

 - DAI와 Source Guard는 DHCP Snooping이 활성화 되어있어야 사용 가능하다

 

 - 이러한 DHCP Snooping Binding Table을 이용하여 다음과 같은 보안설정이 가능하다

 

    1) Dynamic ARP Inspection (DAI)

       => ARP Request 와 Reply 패킷의 ARP 헤더의 Sender-IP 와 Sender-MAC을 Binding Table과 대조하여 검사한다

           (검사 대상이 2계층 Ethernet Des-MAC, Sor-MAC 이 아니라, ARP 헤더의 Sender-IP, Sender-MAC 이다)

       => 사용자가 IP 주소를 임의적으로 할당하는것을 방지

       => ARP 스푸핑 공격에 대한 방어 가능

           전제조건 - ip dhcp snooping 설정이 되어있어야 한다

        [포트에 설정]

           # ip arp inspection vlan 1                                   // ARP 스푸핑 공격 방어 설정 (DAI 활성화)

           # interface ethernet 0/3

           # ip arp inspection trust            // 해당 포트는 ARP 검사 면제(서버나, 게이트웨이쪽 설정) (신뢰할수있는 포트)

        [정책으로 설정]

           # arp access-list GW

           # permit ip host 10.10.10.254 mac host cc01.089c.0000      // 해당 IP에 대한 MAC주소 정적 설정

           # exit

           # ip arp inspection filter GW vlan 1                                // 정책 설정한 IP나 MAC이 들어오면 ARP 검사를 안한다

 

    2) IP Source Guard

       => Binding Table을 확인하여 출발지 IP를 확인한다

       => IP 스푸핑 공격에 대한 방어 가능

           전제조건 - ip dhcp snooping 설정이 되어있어야 한다

        [설정]

          # interface range ethernet 0/1 - 2

          # ip verify source

 

[최종설정]
# ip dhcp snooping

# ip dhcp snooping vlan 1                                  // 감시할 vlan 여러개 가능함 1, 10 ,20

# no ip dhcp snooping information option              // 옵션 82번을 사용하지 않는다는 명시

# interface ethernet 0/3

# ip dhcp snooping trust                                     // 해당 포트 외에는 untrust 됨

# ip arp inspection vlan 1                                   // ARP 스푸핑 공격 방어 설정 (DAI 활성화)

# interface ethernet 0/3

# ip arp inspection trust            // 해당 포트는 ARP 검사 면제(서버나, 게이트웨이쪽 설정) (신뢰할수있는 포트)

 

# interface range ethernet 0/1 - 2

# ip verify source                                             // IP Source Guard 활성화



[확인]

# show ip dhcp snooping binding

 

< MAC Address > -------- < IP Address > -------- < Port > ------ < Type > --------- < VLAN > -- < Interface >

 

# show ip verify source

 

 

[디버그 확인]

# debug ip dhcp snooping event

# debug ip dhcp snooping packet

 

 

반응형

'Network Security' 카테고리의 다른 글

CDP Attack  (0) 2022.11.28
HSRP Attack  (0) 2022.11.28
ARP Spoofing, Fragrouter  (0) 2022.11.28
Switch Jamming  (0) 2022.11.28
Sniffing  (0) 2022.11.28
Share Link
reply