본문 바로가기
프로그래밍/NETWORK HACKING

[네트워크 보안] DHCP 동작 및 역이용 스니핑 / DNS 개념

by B T Y 2017. 7. 20.
반응형

 

 DHCP 동작 및 역이용 스니핑 / DNS 개념에 대해서 정리한다.

 

 

※ DHCP

 

 

출처: https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol

 

( 서버와 클라이언트 사이의 DHCP 동작 방식은 위 그림처럼 4단계를 거쳐서 진행이 된다 )


 

  - DHCP 클라이언트 포트는 68번 서버 포트는 67번을 사용한다.

 

  - DHCP를 wireshark에서 분석할때 트랜잭션 아이디가 같아야한다.

 

  - UDP에서는 내 요청이 맞는지 확인을 할때 어플리케이션층에서 트랜잭션 아이디를 이용해서 구별한다.
    ( UDP 자체로는 구별할 방법이 없기 때문에 대부분 이 부분을 어플리케이션층에서 해결해준다 )

 

  - 클라이언트는 Offer로 받은 ip를 사용하기 위해서 DHCP Request로 한번더 자신이 사용할 ip를

    내부 네트워크 사용자들에게 브로드캐스트로 알려준다.
    ( Request로 자신이 사용할 ip를 알려주므로써 서로간의 ip 충돌을 방지해준다 )

 

 

 

  - DHCP 프로토콜을 역이용하면 불특정 다수를 대상으로해서 손쉽게 스니핑이 가능하다.
    ( fragrouter도 같이 이용해 통신이 정상적으로 되게 해준다 )
      * DHCP 서버가 여러대일 경우 확률적으로 가장 가까이 있는 서버에서 DHCP 서비스를 제공 받게될 확률이 높다.

 

 

( 리눅스로 DHCP 서버를 운영할때 게이트웨이를 내 아이피로 지정 해놓으면 해당 리눅스 서버에서

서비스를 제공 받는 호스트들은 외부 통신을 할때 내 리눅스 서버로 통신을 보내게 되고 Fragrouter를 이용해서

정상적인 통신이 되게하면 약간의 설정으로 간단하면서도 효과적인 하나의 스니핑 방식이 될 수 있다 )

 


 

 

※ DNS( Domain Name System )

 

 

ip -> mac / mac -> ip: ARP
ip -> domain: DNS

 

 

  - 역질의 구조( 하위 도메인을 표시할때는 .으로 표시 )

    예) www.google.com에 대한 주소를 물어볼때 Root DNS에게 com의 DNS 서버 주소를 얻어오고 

        com에게 google의 DNS 서버 주소를 얻어오는식으로 뒤에서부터 역순으로 진행이 된다.

 

출처: https://en.wikipedia.org/wiki/Domain_Name_System

 

 

  - DNS는 리눅스 파일 디렉터리처럼 트리 구조의 형태를 가지고 있고 그 최상위에는 Root DNS가 존재한다.

   ( 그 하위는 .com , .net , .gov , .edu , ...가 있고 그 하위에는 naver , google , daum , ...이 있다 )

 

 

출처: https://en.wikipedia.org/wiki/Domain_Name_System

 


  - 우리가 보통 사용하는 DNS Server는 Cache Server를 이용한다.

    ( 예를들면 KT에서 제공하는 168.126.63.1과 같은 DNS 서버 )

 

   * Cache Server를 이용하는 이유는 네트워크를 사용하는 모든 사용자가 매번 주소를 물어볼때마다

     Root DNS에 물어보게 되면 너무 많은 요청이 들어오기도 하고 Cache Server를 이용해

     더 빠른 응답을 받을수 있기 때문이다.


 

반응형

댓글