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라고 알려줍니다.
이글이 도움이 되셨다면,
공감♥ 버튼 부탁드립니다. 잇츠밍 티스토리의 큰힘이 됩니다.
감사합니다.
'CERTIFICATE' 카테고리의 다른 글
[모의해킹] EP.07 : 은닉채널 (0) | 2019.10.04 |
---|---|
[모의해킹] EP.06 : 터널링(Tunneling) (0) | 2019.10.01 |
[모의해킹] EP.04 ICMP Redirect (0) | 2019.09.23 |
[모의해킹] EP.03 : ARP Spoofing (0) | 2019.09.19 |
[모의해킹] EP.02 : ARP Redirect (0) | 2019.09.18 |