본문 바로가기

IT보안/네트워크 해킹&보안

[ Kali리눅스 ] DNS스푸핑 실습 #2 및 보안대책 | ettercap(이더캡)



이전 글에선 dnsspoof를 통한 DNS Spoofing 공격을 해봤지만, 

이번엔 Ettercap을 이용해서 공격을 시도해보자.




실습#2 - DNS 스푸핑 공격 (사용툴: ettercap, tomcat, apache)

 ※실습환경 - (실습#1과 같음)

 


 (1) 피싱 웹 서버 구축 - 앞 글과 똑같이 하자 ▶ http://opentogether.tistory.com/27?category=747634 - 공격자

 (2) Ettercap 파일 설정 - 공격자

 etter.conf 파일 수정

root@kali:~# vi /etc/ettercap/etter.conf

▲ Ettercap을 루트 권한으로 실행할 수 있도록 ec_uid, ec_gid 값을 0으로 수정해준다.


▲ 리눅스의 iptables 방화벽 정책을 설정해준다. [if you use iptables #(주석) 삭제]



 etter.dns 파일 수정

root@kali:~# vi /etc/ettercap/etter.dns

▲www.google.com의 주소를 공격자IP인 192.168.1.40으로 설정해준다.


 (3) Ettercap GUI 실행 및 설정 - 공격자

 ① ettercap 실행

 



  [단일 랜카드 및 네트워크 인터페이스 설정] sniff -> Unified sniffing... -> Network interface 선택: eth0




  [LAN구간 호스트 스캔] Hosts -> Scan for hosts



  [타겟 설정] Hosts -> Hosts list



 Add to Target1: 192.168.1.2(GateWay)

 Add to Target2: 192.168.1.30(Client:공격할 타겟)

 




 ⑤ [MITM양방향 공격 실행] Mitm -> ARP poisoning... -> Sniff remote connections (Check)



  [플러그인 설정] Plugins -> Manage the plugins -> dns_spoof [더블클릭]





  [Ettercap 시작] Start -> Start sniffing



 (3) 공격이 성공되었는지 클라이언트에서 확인 - 클라이언트

 


▲클라이언트에서 www.google.com으로 ping을 보냈더니 공격자의 주소인 192.168.1.40으로 응답하였다.


※이더캡툴 같은 경우 dnsspoof툴과 달리 성공률이 100%였습니다. 그러나 아래 (4)항목에서 단점을 말씀드리겠습니다.

  (4) 클라이언트에서 웹 사이트로 접속 시도 - 클라이언트

 

▲마이크로소프트엣지 브라우저에서 구글로 접속했더니, 공격자의 웹페이지로 이동되었습니다.



이더캡툴 같은 경우는 공격을 시작했을때, 마이크로소프트 엣지 브라우저는 전 실습과 똑같이 공격자의 웹페이지로 안내했지만, 

크롬브라우저 같은 경우는 구글엔진경로가 내장되어있어, 공격 웹페이지로 안내하지 않았습니다.

또, 크롬이나 마이크로소프트 엣지 같은 브라우저에서 이더캡툴이 발동되고있으면,

브라우저 자체적으로 공격인증을 인식하여 그외 나머지 페이지를 안내해주지 않았습니다. 


정리하자면 브라우저 자체적으로 보안을 강화해 이더캡이 발동되고 있으면 공격자가 

공격한 웹 페이지 그 외인 나머지 페이지에도 인증서 오류로 접속이 되지않는 경우가 발생했습니다.



▲크롬에서 www.naver.com 접속 시 오류


▲크롬에서 www.google.com 접속 시 오류


▲마이크로소프트 엣지에서 www.naver.com 접속 시 오류



※이더캡을 사용해서는 피싱사이트를 이용해, jsp, php같은 동적 웹페이지 구성이 불가능했던 것 같습니다.

왜냐하면, 피싱사이트에서 동적 웹을 불러오는 과정에서 인증서 오류로 제대로 실행이 되지 않기 때문입니다.

그래서 피싱사이트를 구성하기위해선 확률은 낮지만, 동작가능한 dnsspoof를 사용하는 것을 권장해드립니다.



DNS 스푸핑의 보안대책


hosts파일 사용

브라우저에 이름을 입력하면 무조건 DNS Query를 생성하는 것은 아니다. 사이트에 접속하면 MAC처럼 도메인 이름에 대한 IP주소가 캐시에 저장되었다가 다시 접속했을 때 DNS Query를 보내지 않고 캐시에서 읽어들인다. 그런 다음 hosts 파일을 통해 도메인 이름에 대한 IP주소를 해석한다. 따라서 중요사이트의 IP주소를 확인하여 적어두면, 적어도 이 파일에 있는 사이트에 대해서는 DNS 스푸핑 공격을 당하지 않는다.



▲Windows에서 hosts파일 경로: C:\Windows\System32\drivers\etc


DNSSEC 사용

디지털 서명 된 DNS 레코드를 사용하여 쿼리 응답이 합법적인지 확인하는 방법인 DNSSEC를 사용한다.


실시간 모니터링

실시간으로 Packet을 모니터링 하여 비정상적인 Packet에 대해 대응한다.