겉바속촉

[보안] DNS 캐시 테이블 본문

IT 일기 (상반기)/네트워크 및 시스템 보안

[보안] DNS 캐시 테이블

겉바속촉 2021. 1. 18. 16:44
728x90
반응형

 

이번에는 DNS에 대해 더 자세하게

살펴보도록 할게요.

 

개념에 대해서는 지난 번에

배웠습니다

!!!

 

 

2021/01/18 - [IT 일기 (상반기)/네트워크 및 시스템 보안] - [보안] DNS, DHCP, MAC, ARP, ping 개념

 

[보안] DNS, DHCP, MAC, ARP, ping 개념

지난 번에는 ipconfig명령을 내려서 여러가지 개념들을 배웠습니다 2021/01/18 - [IT 일기 (상반기)/네트워크 및 시스템 보안] - [보안] IP 주소, 서브넷 마스크, 라우터, LAN 개념 [보안] IP 주소, 서브넷 마

2-juhyun-2.tistory.com

 

 

 


 

 

 

DNS 캐시 테이블

 

다음 명령어를 내려보면 DNS 캐시 테이블을 볼 수 있습니다:)

 

C:\Windows\system32>ipconfig /displaydns

Windows IP 구성

    10.0.168.192.in-addr.arpa
    ----------------------------------------
    데이터 이름 . . . . . : 10.0.168.192.in-addr.arpa.
    데이터 유형 . . . . . : 12
    TTL(Time To Live) . : 163375
    데이터 길이 . . . . . : 8
    섹션 . . . . . . . : 응답
    PTR 레코드  . . . . . : host.docker.internal


    데이터 이름 . . . . . : 10.0.168.192.in-addr.arpa.
    데이터 유형 . . . . . : 12
    TTL(Time To Live) . : 163375
    데이터 길이 . . . . . : 8
    섹션 . . . . . . . : 응답
    PTR 레코드  . . . . . : gateway.docker.internal


    1.0.0.127.in-addr.arpa
    ----------------------------------------
    데이터 이름 . . . . . : 1.0.0.127.in-addr.arpa.
    데이터 유형 . . . . . : 12
    TTL(Time To Live) . : 163375
    데이터 길이 . . . . . : 8
    섹션 . . . . . . . : 응답
    PTR 레코드  . . . . . : kubernetes.docker.internal


    gateway.docker.internal
    ----------------------------------------
    유형 AAAA의 레코드가 없습니다.


    gateway.docker.internal
    ----------------------------------------
    데이터 이름 . . . . . : gateway.docker.internal
    데이터 유형 . . . . . : 1
    TTL(Time To Live) . : 163375
    데이터 길이 . . . . . : 4
    섹션 . . . . . . . : 응답
    (호스트) 레코드 . . . : 192.168.0.10


    skin330001250.mshome.net
    ----------------------------------------
    유형 AAAA의 레코드가 없습니다.


    skin330001250.mshome.net
    ----------------------------------------
    데이터 이름 . . . . . : SKIN330001250.mshome.net
    데이터 유형 . . . . . : 1
    TTL(Time To Live) . : 163375
    데이터 길이 . . . . . : 4
    섹션 . . . . . . . : 응답
    (호스트) 레코드 . . . : 192.168.156.17


    17.156.168.192.in-addr.arpa
    ----------------------------------------
    데이터 이름 . . . . . : 17.156.168.192.in-addr.arpa.
    데이터 유형 . . . . . : 12
    TTL(Time To Live) . : 163375
    데이터 길이 . . . . . : 8
    섹션 . . . . . . . : 응답
    PTR 레코드  . . . . . : SKIN330001250.mshome.net


    kubernetes.docker.internal
    ----------------------------------------
    유형 AAAA의 레코드가 없습니다.


    kubernetes.docker.internal
    ----------------------------------------
    데이터 이름 . . . . . : kubernetes.docker.internal
    데이터 유형 . . . . . : 1
    TTL(Time To Live) . : 163375
    데이터 길이 . . . . . : 4
    섹션 . . . . . . . : 응답
    (호스트) 레코드 . . . : 127.0.0.1


    host.docker.internal
    ----------------------------------------
    유형 AAAA의 레코드가 없습니다.


    host.docker.internal
    ----------------------------------------
    데이터 이름 . . . . . : host.docker.internal
    데이터 유형 . . . . . : 1
    TTL(Time To Live) . : 163375
    데이터 길이 . . . . . : 4
    섹션 . . . . . . . : 응답
    (호스트) 레코드 . . . : 192.168.0.10


    google.com
    ----------------------------------------
    데이터 이름 . . . . . : google.com
    데이터 유형 . . . . . : 1
    TTL(Time To Live) . : 48
    데이터 길이 . . . . . : 4
    섹션 . . . . . . . : 응답
    (호스트) 레코드 . . . : 172.217.26.14


    데이터 이름 . . . . . : ns1.google.com
    데이터 유형 . . . . . : 1
    TTL(Time To Live) . : 48
    데이터 길이 . . . . . : 4
    섹션 . . . . . . . : 추가
    (호스트) 레코드 . . . : 216.239.32.10


    데이터 이름 . . . . . : ns2.google.com
    데이터 유형 . . . . . : 1
    TTL(Time To Live) . : 48
    데이터 길이 . . . . . : 4
    섹션 . . . . . . . : 추가
    (호스트) 레코드 . . . : 216.239.34.10


    데이터 이름 . . . . . : ns3.google.com
    데이터 유형 . . . . . : 1
    TTL(Time To Live) . : 48
    데이터 길이 . . . . . : 4
    섹션 . . . . . . . : 추가
    (호스트) 레코드 . . . : 216.239.36.10


    데이터 이름 . . . . . : ns4.google.com
    데이터 유형 . . . . . : 1
    TTL(Time To Live) . : 48
    데이터 길이 . . . . . : 4
    섹션 . . . . . . . : 추가
    (호스트) 레코드 . . . : 216.239.38.10


    데이터 이름 . . . . . : ns1.google.com
    데이터 유형 . . . . . : 28
    TTL(Time To Live) . : 48
    데이터 길이 . . . . . : 16
    섹션 . . . . . . . : 추가
    AAAA 레코드 . . . . . : 2001:4860:4802:32::a


    데이터 이름 . . . . . : ns2.google.com
    데이터 유형 . . . . . : 28
    TTL(Time To Live) . : 48
    데이터 길이 . . . . . : 16
    섹션 . . . . . . . : 추가
    AAAA 레코드 . . . . . : 2001:4860:4802:34::a


    데이터 이름 . . . . . : ns3.google.com
    데이터 유형 . . . . . : 28
    TTL(Time To Live) . : 48
    데이터 길이 . . . . . : 16
    섹션 . . . . . . . : 추가
    AAAA 레코드 . . . . . : 2001:4860:4802:36::a


    데이터 이름 . . . . . : ns4.google.com
    데이터 유형 . . . . . : 28
    TTL(Time To Live) . : 48
    데이터 길이 . . . . . : 16
    섹션 . . . . . . . : 추가
    AAAA 레코드 . . . . . : 2001:4860:4802:38::a

 

 

테이블을 지우고 싶다면 다음과 같이 명령 내려주세요:)

C:\Windows\system32>ipconfig /flushdns

Windows IP 구성

DNS 확인자 캐시를 플러시했습니다.

 

 

ping 명령을 통해 ping google.com을 해보겠습니다.

C:\Windows\system32>ping google.com

Ping google.com [172.217.26.14] 32바이트 데이터 사용:
172.217.26.14의 응답: 바이트=32 시간=38ms TTL=115
172.217.26.14의 응답: 바이트=32 시간=38ms TTL=115
172.217.26.14의 응답: 바이트=32 시간=37ms TTL=115
172.217.26.14의 응답: 바이트=32 시간=38ms TTL=115

172.217.26.14에 대한 Ping 통계:
    패킷: 보냄 = 4, 받음 = 4, 손실 = 0 (0% 손실),
왕복 시간(밀리초):
    최소 = 37ms, 최대 = 38ms, 평균 = 37ms

 

 

google.com 에 해당하는 것을 ip로 전환해야 하기 때문에 query를 날립니다:)

그러면 172.217.26.14 라고 알아오게 되는 거에요.

 

그럼 이 정보를 로컬 DNS 캐시에 정보를 업데이트 합니다

 

다시 ipconfig /displaydns 명령을 주면~ 다음과 같이 google.com 부분에서 확인할 수 있죠.

이제 다시 이렇게 query를 날리지 않고 로컬에 있는 정보를 활용하는 겁니다.

 

 

 

 

 

 

 

 

이제 이름을 ip주소로 변환해가는 과정을 알아볼게요:)

 

 

 


 

 

도메인 네임을 IP 주소로 변환하는 순서

 

 

 

#1 hosts 파일에서 해당 도메인을 검색

 

 

 

 

 

 

 

 

#2 로컬 DNS 캐시 테이블을 검색

 

#3 로컬 DNS 서버 IP 주소로 도메인 네임에 대한 질의를 요청

 

#4 로컬 DNS 서버로부터 도메인 네임에 대한 IP 주소를 응답받으면 해당 내용을 DNS 캐시 테이블에 반영

 

 

 

****여기서 드는 의문*****

우리가 임의로 DNS 캐시 테이블을 수정해버리면... 
즉, 다른 IP주소로 가게 고쳐버린다면 잘못된 주소로 날라가지 않을까요??


그래서 한 번 해봤습니다:)


windows XP 가상머신 내에서 해보도록 하겠습니다


1. 다음과 같은 경로로 hosts 파일을 찾아서 들어가 메모장으로 옮겨서 열어볼게요:)



2. 다음과 같이 127.0.0.1을 google.com이라고 하고 저장


3. google.com:8080/openeg로 확인



4. 다시 지워주고 google.com 접속해보기



확인이 되었습니다 !^^!


 

 

이런식으로 host파일 변조를 통해

사용자 접속을 유도하고 입력을 유도해서 사용자 정보를 빼가기도 하는데요

 

이런 공격기법이 바로 피싱, 즉 dns 스푸핑입니다:)

 

 

 

 

 

 

 

728x90
반응형