[ 1) DNS 스푸핑에 대한 이해 ]
{ DNS 스푸핑 }
> 웹(Web) 스푸핑과 비슷
> 인터넷 익스플로러 주소창에 원하는 사이트 이름을 입력 후 키를 눌렀는데,
엉뚱한 사이트로 연결되는 것과 같다
{ 정상적인 DNS 서비스 }
1) Client가 DNS Server에 DNS Query 패킷을 보내 접속하고자 하는 IP 주소를 물어본다.
2) DNS Server가 해당 Domain Name에 대한 IP 주소를 Client에 보내준다.
3) Client는 DNS Server에서 받은 IP 주소를 바탕으로 Web Server를 찾아간다.
{ DNS 스푸핑에서의 DNS 서비스 }
1) Client가 DNS Server로 DNS Query 패킷을 보내는 것을 확인한다.
(스위칭 환경에서는 Client가 DNS Query 패킷을 보내면 이를 받아야 하므로 ARP 스푸핑과 같은 선행 작업이 필요하다)
(허브를 사용중이라면 모든 패킷이 자신에게도 전달되므로 Client가 DNS Query 패킷을 보낼 경우 확인이 가능)
2) 공격자는 Local에 존재하므로 DNS Server보다 지리적으로 가깝다. 따라서 DNS Server가 올바른
DNS Response 패킷을 보내주기 전, 위조된 DNS Response 패킷을 Client에게 보낸다.
3) Client는 공격자가 보낸 DNS Response 패킷을 올바른 패킷으로 인식하고 웹에 접속한다.
지리적으로 멀리 떨어진 DNS Server가 보낸 DNS Response 패킷은 버린다.
[ 실습 - ARP 스푸핑으로 스니핑 ]
> 실습 환경 :
- 공격자 : Kali Linux (Kali GNU/Linux Rolling) / IP : 192.168.100.139
- 공격 대상 : Windows 7 / IP : 192.168.100.135
- 위조된 웹 서버 Windows Server 2012 / IP : 192.168.100.137
1) 웹 서버 구축하기
실제 DNS 스푸핑 공격에서는 공격할 서버와 유사한 보조 사이트를 만들지만,
이번 실습에서는 단순 웹 서버만 동작시키겠습니다.
위조된 웹 서버 (Windows Server 2012)에서 localhost로 접속하여 웹 서버가 동작하는지 확인합니다.
( 아래 사진처럼 Linux 환경에서 Apache Web Server를 열어도 무방합니다 )
2) 웹 사이트의 정상 접속 여부 확인하기
공격 전에 먼저 공격 대상 시스템 (Windows 7)에서 정상적으로 사이트 접속이 되는지 확인합니다.
공격할 웹 사이트는 www.google.co.kr 로 하겠습니다.
3) DNS 스푸핑 파일 설정하기
dnsspoof는 여러 사이트에 대해 DNS 스푸핑 공격을 수행할 수 있습니다.
공격을 하고 싶은 사이트를 임의의 hosts 파일에 등록합니다.
공격자 시스템 (Kali Linux)에서 [파일명].hosts 파일을 생성하여 아래와 같은 형식으로 입력 후 저장합니다.
( 저는 dns.hosts 파일을 생성하여 저장하겠습니다 )
www.google.co.kr 의 DNS Query에 대해 192.168.100.137 (위조된 웹 서버)로
DNS Response를 보내도록 추가하는 설정입니다.
4) ARP 스푸핑
Client에서 Google의 MAC 주소를 알아내기 위해 패킷을 보낼 때 공격자 시스템을 지나도록 ARP 스푸핑을 실행합니다.
DNS Query는 Router로 가기 때문에, Router 장악이 필요합니다.
따라서 공격자 시스템 (Kali Linux)에서 아래의 형식으로 명령을 수행합니다.
arpspoof -t [공격대상 IP] [Router IP]
( Router IP를 찾는 방법은 [네트워크] 스위칭 환경에서의 스니핑(실습) 포스팅을 참고바랍니다. )
arpspoof -t 192.168.100.135 192.168.100.2
5) 패킷 릴레이
arpspoof 명령 후, 새로운 터미널창을 열어서 패킷이 끊어지지 않도록 fragrouter를 실행합니다.
fragrouter -B1
6) DNS 스푸핑 공격 수행하기
dnsspoof -help 명령으로 dnsspoof Tool의 사용법을 확인할 수 있습니다.
dnsspoof Tool로 www.google.co.kr에 에 대한 DNS Query 패킷이
위조된 웹 서버 (Windows Server 2012 / IP : 192.168.100.137)로 이름을 해석하도록 설정합니다.
공격자 (Kali Linux)에서 새로운 창을 열어 다음과 같이 명령을 수행합니다.
dnsspoof -i [인터페이스명] -f [스푸핑파일]
dnsspoof -i eth0 -f dns.hosts
7) 공격 대상에서 www.google.co.kr로 접속해서 위조된 웹 서버로 접속되는지 확인합니다.
[ 위조된 웹 서버 창이 뜨지 않을 경우 ]
1) 공격 대상 (Windows 7)에서 ipconfig /flushdns 명령을 입력하여 DNS Cache Memory를 초기화합니다.
2) fragrouter 명령어를 종료합니다.
'[네트워크] 컴퓨터 네트워크' 카테고리의 다른 글
[네트워크] VPN (2) | 2022.10.07 |
---|---|
[네트워크] E-Mail 스푸핑 (실습) (0) | 2022.10.05 |
[네트워크] IP 스푸핑 (0) | 2022.10.03 |
[네트워크] ARP 스푸핑 (실습) (0) | 2022.10.02 |
[네트워크] 스푸핑 공격 (실습) (2) | 2022.10.01 |