본문 바로가기

IT Security/HACKABLE

[Two Greedy] ARP & DNS Spoofing (Ettercap)

가상으로 구축된 환경 외에 시도하는 것은 엄연히 불법입니다. 모든 책임은 개개인에게 있으니 조심해주세요

안녕하세요 Retain0입니다. 이번 시간에 배워볼 것은 " ARP Spoofing " 과 " DNS Spoofing " 공격입니다. 실습하기 앞서 " ARP " 와 " DNS "라는 것부터 좀 간단히 설명하고 들어가겠습니다.

ARP " 란

  • Adderss Resolution Protocol의 약자로 IP 주소 --> MAC 주소로 변환해주는 프로토콜입니다. MAC 주소는 하드웨어 또는 물리적인 주소를 의미하는데요. 지금 제가 작성하고 있는 노트 북안에도 내장된 랜카드에 고유번호 즉 MAC 주소가 적혀있을 겁니다. 우리는 LAN 구간 안에서 IP와 이 고유한 MAC 주소를 가지고 서로 간에 통신을 하는 것입니다. IP 주소만으로는 내가 통신하고자 하는 대상이 맞는지 확신하기 어렵기 때문입니다.

그럼 " ARP Spoofing " 이란

  • 사용자가 정상적인 통신을 하고 있는 중에 공격자가 중간에 사용자의 통신을 훔쳐서 사용자의 MAC 주소를 공격자도 같이 사용함으로써 원래 같았으면 두 단말끼리만 통신을 해야 하지만 공격자가 중간에 " 나도 사용자의 MAC 주소와 같으니까 나도 같이 통신하게 해줘 "라고 하게 됩니다. 이런 형태는 " MITM " 즉 Man - In - The - Middle이라는 중간자 형태의 공격이라고 보시면 되겠습니다.

DNS " 란

  • Domain Name System 또는 Domain Name Server 라고도 하며 이는 네트워크 상에서 사람이 기억하기 쉽게 문자로 만들어진 도메인을 --> 컴퓨터가 IP 주소로 바꿔주는 시스템이라고 볼 수 있습니다. 예를 들어 우리가 URL 폼에다가 네이버라는 문자를 치면 각 사이트가 운영하는 서버에서 DNS라는 것을 통해 인식을 해서 IP 주소로 바꿔 접속하게 도와주는 역할이라고 보시면 되겠습니다.

그럼 " DNS Spoofing " 이란 예를 들어 사용자가 www.daum.net이라는 곳으로 이동을 하려고 하지만 공격자가 DNS를 변조 또는 해킹을 미리 해둬서 www.daum.net 에 해당하는 ip주소로 바꿔서 접속시키지 않고 사용자를 악의적인 사이트로 이동시키거나 피싱사이트로 유도시켜서 사용자의 ID, Pawword 등 각종 정보를 훔쳐 갈 수 있는 공격 기법입니다.

우리는 ARP Spoofing 을 통해 사용자가 서로 간에 통신을 할 때 중간에 공격자를 거치도록 하고 그다음 DNS Spoofing으로 연계해서 사용자가 www.daum.net으로 접속을 하고자 할 때 --> 공격자가 준비해둔 사이트로 이동시키도록 실습을 해보도록 하겠습니다.

실습 구성도

① ARP Spoofing Attack / DNS Spoofing Attack

사진 1 공격자의 mac 주소
사진 2 사용자의 mac 주소

우선 서로 간의 MAC 주소를 확인해보도록 하자. (사진 1) 과 (사진 2)를 보면 서로 간에 고유 MAC 주소가 있는 것을 확인할 수 있습니다. 여기서 공격자는 사용자의 MAC 주소와 동일하게 매치시킴으로써 마치 나도 정상적인 사용자야라고 할 것입니다, 이때 GUI(graphical User Interface) 기반의 " ettercap "이라는 공격툴을 사용할 것입니다.

사진 3 ettercap의 설정 파일 변경

사진 3 우리는 먼저 사용자를 어느 사이트로 돌려버릴 것인지를 정해둬야 합니다. Kali에서는 ettercap 이 이미 내장되어 있기 때문에 위의 경로로 들어가 설정 파일을 좀 변경해주도록 하겠습니다.

사진 4 설정 사항 변경

사진 4 우리는 사용자가 daum 사이트로 접속 또는 * 란 모두를 해당한다. 즉 daum 으로 된 어느 사이트든 접속하게 되면 자동으로 공격자가 준비해둔 페이지로 리다이렉션이 되도록 할 것입니다, 192.168.0.20 은 공격자가 준비해둔 사이트 주소

사진 5 공격자의 웹서버 시작
사진 6 " ettercap " 실행

-G GUI 버전으로 실행

사진 6 위처럼 입력하면 ettercap 이 실행될 것입니다. 

사진 7

사진 7 우선 사용자를 찾기 위해 Sniffing 해보도록 하겠습니다.

사진 8

이런 창이 뜰 것이다. 보통은 eth0로 선택해두면 됩니다.. " ifconfig "를 해보면 좌측에 어떤 이름으로 된 인터페이스를 사용하는지 확인할수 있습니다.

사진 9 " 호스트 탐색 "

이제 우리의 LAN 구간에 어떤 호스트들이 있는지 확인해 보도록 하겠습니다. 하단에 Scan for hosts를 클릭 후 어떤 호스트들이 출력됐는지 Hosts list를 클릭

사진 10 " 호스트 검색 "

(사진 10) 혹시 ettercap 이 에러가 가끔씩 생겨 호스트 리스트가 출력이 안되면 " netdiscover " 을 통해서도 LAN 구간 호스트들을 출력할 수가 있음

사진 11 " ARP Spoofing " 실행

리스트가 정상적으로 출력됐다면 " mitm " --> " ARP Spoofing " 을 실행하도록 하겠습니다.

사진 12 " 체크 "
사진 13 mac 주소 변경 확인

사진 13 " ARP Spoofing " 후 사용자의 pc에서 arp -a 를 통해 확인해본 결과 192.168.0.1 --> gateway 주소 즉 192.168.0.255 대역대의 단말들은 192.168.0.1이라는 게이트웨이를 거쳐서 통신을 하게됩니다.

192.168.0.20 --> 공격자의 주소입니다. 하지만 사진을 보면 게이트웨이의 mac 주소(물리적 주소) 와 공격자의 mac 주소가 동일한 것을 확인할수 있습니다. 그럼 어떻게 될까?? 정상적인 사용자도 같은 대 역대이기 때문에 무조건 게이트웨이를 거칠 텐데 게이트웨이의 mac 주소가 공격자의 것으로 되어 있으니 사용자 --> 게이트웨이/공격자 --> 통신을 거쳐서 통신하게 될 것입니다.

사진 14 " DNS Spoofing " 준비

사진 14 ARP Spoofing 은 실행 중이니 이제 " DNS Spoofing "으로 연계해보도록 하겠습니다.

사진 15 더블클릭

(사진 15) dns_spoof 란이 보일텐데. 더블클릭을 해주면 좌측에 * 모양이 생길 것입니다.

사진 16 start sniffing

사진 16 dns_spoof 을 더블클릭 후 좌측에 " start sniffing " 을 하면 우리가 daum --> 공격자가 준비해 둔 주소로 이동시키게 했던 설정 파일을 기반으로 실행될 것입니다.

사진 17 사용자의 화면

사진 17 ARP Spoofing 및 DNS Spoofing까지 된 상태에서 사용자는 이제 평소대로 daum 사이트로 가서 서비스를 즐기려고 입력하였지만 이미 사용자는 통신을 하기 위해서라면 공격자를 거쳐야만 하고 DNS 조차 변조시켜두었기 완전 꼭두각시가 된 것이나 다름없음. 만일 사이트를 피싱사이트로 위장( Naver, facebook, instagram) 하여 유인하게 되면 해당 사이트에 입력한 id, passowrd 같은 민감 정보도 공격자도 확인할 수 있게 되는 것이다. 아니면 전 시간에 말했던 것처럼 daum 을 들어갔지만 warning 사이트로 이동이 가능하다. 참고로 " HTTPS 검열 "의 경우 해당 서버의 DNS 자체를 장악해서 한 것이며 지금 실습한 거는 같은 네트워크 구간대의 타깃들을 대상으로 이동시킬 수가 있다.


◆ 대응 방안

(1) 중요 통신 암호화 즉 개인 정보가 담긴 내용을 서로 간에 통신할 때는 " SSL " Secure Socket Layer이라는 방식을 통해 암호화를 해야 한다.

(2) ARP Table 정적(static) 설정을 통해 공격자가 mac 주소를 동적으로 변경할 수 없도록 해야 한다.

arp -a [IP 주소] [MAC 주소]를 통해 정적(static)으로 설정 가능하며 주기적으로 모니터링을 통해 비정상적인 패킷을 검사할 필요가 있다.

ettercap install location : https://www.ettercap-project.org/downloads.html


이번 시간은 여기까지만 해보도록 하겠습니다. ARP Spoofing 과 DNS Spoofing에 대해 좀 알게 되셨나요?? 이 2가지 기법들은 시험 관련해서 자주 출제되었던 기법들이니 숙지해 두시는 게 좋습니다.