정보보안/모의해킹

[모의해킹] 스푸핑(Spoofing) ICMP, DNS, DHCP

록스타★ 2024. 6. 12. 14:09
반응형

ICMP
- Internet Control Message Protocol
- 호스트 서버와 인터넷 게이트웨이 사이에서 메시지를 제어하고 오류를 알려주는 프로토콜
- 대표적으로 ping이 ICMP를 사용


1. Type : ICMP 메시지 타입
2. Code : 타입 별 세부적인 값
3. Checksum : 패킷의 무결성을 위한 값
4. Rest of the header : ICMP를 통해 보내는 데이터, 일반적으로 의미 없는 데이터

ICMP 동작 과정
- 송신 측에서 전송 목적지에 ICMP Echo Request 메시지를 송신하고 목적지로부터 ICMP Echo Reply 메시지를 받으면 패킷이 무사히 전송한 것으로 인식

그림(1) ICMP Type 0
그림 (2) ICMP Type 8




DNS
- Domain Name Service
- IP주소와 도메인 이름을 상호 매칭해주는 시스템
- Server/Client 구조로 동작하는 서비스

Domain Name 질의 절차
http://www.abc.com 접속 > DNS Cache > (X) hosts 파일 >(X) DNS 서버에게 질의
http://www.abc.com 접속 > DNS Cache > (O) DNS cache에 존재하는 http://www.abc.com의 IP주소 사용 >(X) DNS 서버에게 질의 
http://www.abc.com 접속 > DNS Cache > (X) hosts 파일>(O) hosts 파일에 존재하는 http://www.abc.com의 IP 주소 사용

DNS 동작과정
1. DNS Query (Local DNS) : hosts 파일에 정보가 없으면 시스템에 설정된 로컬 DNS 서버에 질의
2. 로컬 DNS 서버에 정보가 없으면 Root DNS Server에 질의
3. 루트 DNS 서버에 http://www.abc.com에 대한 정보가 없으면 com을 관리하는 DNS 서버에 대한 정보를 전달
4. 로컬 DNS 서버는 com DNS 서버에 질의
5. 해당 정보가 없을 경우 com DNS 서버는 abc.com DNS 서버에 대한 정보 전달
6. 로컬 DNS 서버는 마지막으로 abc.com의 DNS 서버에 질의
7. abc.com DNS 서버로부터 http://www.abc.com에 대한 IP 주소 전달 받음
8. 해당 IP 주소를 클라이언트에게 전달
www.abc(조직).com (국가,조직체) Root


DNS Spoofing
동작방식
1. 공격자는 클라이언트가 DNS서버로 DNS Query를 보내는 것을 확인
2. 공격자는 DNS 서버보다 빠르게 공격자 웹 서버의 IP 주소 포함한 DNS Response를 클라이언트에 전송
3. 클라이언트는 늦게 온 DNS 서버의 DNS Response는 drop
4. 클라이언트는 http://www.abc.com 접속 시 공격자의 웹 서버로 접속이 됨

ex) DNS Spoofing 패킷을 확인 해보면 위조된 MAC 주소보다 정상적인 MAC 주소가 늦게 도착하여 Response가 확인    

그림(3) DNS Spoofing

 

그림(4) DNS Spoofing

 

그림(5) DNS Spoofing

 


DNS Spoofing 발생 원인
- DNS 패킷은 UDP 패킷이므로 세션이 없기 때문에 먼저 도착한 패킷을 신뢰하고 다음에 도착한 정보는 drop 함
- DNS Response를 전송한 DNS 서버에 대한 인증 메커니즘이 없음
- 클라이언트가 전송하는 DNS Request 패킷의 Transaction ID 값이 평문으로 전송됨

DNS Spoofing 대응 방법
- hosts 파일 : 중요 사이틔 IP 주소와 도메인 네임을 hosts 파일에 등록하여 중요 사이트 접근 시 DNS Query를 생성하지 않도록 하는 방법이 있음

DNSSEC 
- 공개키 암호화방식의 전자서명 기술을 DNS 체계에 도입
- DNS Server는 개인키로 데이터의 해시 값을 서명 처리하여 전자서명 값을 생성
- Client DNS는 전자서명 값을 복호화 한 값과 데이터의 해시 값을 비교하여 일치 여부를 확인


DHCP (Dynamic Host Configuration Protocol)
- 호스트 요청에 따라 네트워크 설정 정보(IP, subnetmask,gateway, dns)를 할당하고 관리하는 프로토콜

DHCP 동작과정
1. Discover : 네트워크 정보를 받기 위해 DHCP 서버를 찾는 패킷을 Broadcast
2. Offer : Discover 패킷을 받은 DHCP 서버는 호스트에게 네트워크 정보에 대해 제안
3. Request : Offer 패킷에 들어온 네트워크 정보 사용 요청
4. Ack : 서버에서 확인했음을 전달, Ack를 받은 클라이언트는 동일 네트워크에 동일 IP가 있는지 확인하기 위해 Gratuitous ARP (GARP)를 Broadcast

DHCP Spoofing 동작방식
1. 공격자는 클라이언트가 DHCP Discover를 보내는 것을 확인
2. 공격자는 DHCP 서버보다 빠르게 DHCP Offer를 클라이언트에게 전송, DHCP Offer로 제안한 네트워크 정보에는 DNS 서버 및 Gateway가 공격자로 설정되어 있음
3. 클라이언트는 늦게 온 DHC 서버의 DHCP Offer를 drop
4. 클라이언트는 공격자가 전달한 네트워크 정보 사용

ex) DHCP Offer 패킷을 확인 해본 결과 라우터 IP와 DNS IP가 동일한 걸 확인

그림(6) DHCP Spoofing


발생원인
- DHCP 패킷은 UDP 패킷이므로 세션이 없기 때문에 도착한 패킷을 신뢰하고 다음에 도착한 정보는 drop 함
- DHCP 서버에 대한 검증 메커니즘이 없음
- 클라이언트가 전송하는 DHCP Discover 패킷의 Trancation ID 값이 평문으로 노출됨

대응방법
- 스위치에 구성하는 보안 기능
- DHCP 서버 또는 DHCP Relay Agent가 접속된 Trusted Prot와 DHCP 클라이언트가 접속된 Untrusted Port로 구분
- DHCP Offer가 Untrusted Prot를 통해 전송되는 경우 drop 함
- DHCP Discover를 수신하면 메시지를 trusted Port로만 포워딩

DHCP Starvation 동작방식
1. 다수의 클라이언트 또는 MAC 주소를 조작하여 DHCP 서버에 DHCP Discover 전송
2. DHCP Offer, DHCP Reqeust, DHCP Ack를 주고 받아 IP를 할당 받음
3. DHCP 서버는 IP가 소진되어 정상적인 클라이언트에게 IP를 할당해줄 수 없게 됨

 

그림(7) DHCP Starvation
그림(8) DHCP Starvation
그림(9) DHCP Starvation


발생원인
- DHCP 서버는 DHCP Discover 패킷의 MAC주소만 보고 호스트를 인식

대응방법
- Port Security
- 스위치 포트에 구성하는 보안 기능, 포트에서 허용할 수 있는 Source MAC 주소의 수를 제한하도록 설정


결론

와이어샤크를 통해 패킷 분석을 오랜만에 해보았는데 어려웠다. 스푸핑 패킷이 아니었다면 혼자서 알아 차리기에는 너무 오래 걸리겠다는 생각이 많이 들었고 더 열심히 해야 할 것 같다.

 

 

참조

두두아이티

 

http://www.duduit.co.kr/

 

www.duduit.co.kr

 

 

 

키사아카데미

 

https://academy.kisa.or.kr/main.kisa

 

academy.kisa.or.kr

 

 

반응형