Shine's dev log

[네트워크보안] Sniffing(스니핑) - ARP Redirect 본문

보안

[네트워크보안] Sniffing(스니핑) - ARP Redirect

dong1 2020. 8. 27. 19:01

1. Sniffing(스니핑) 이란?

 

[snif : 코를 킁킁거리다] 라는 뜻에서 알 수 있듯이 스니핑은 네트워크 상에서 다른 컴퓨터들의 패킷 교환을 도청하는 행위이다.

 

스니핑과 비교되는 공격으로는 스푸핑(Spoofing) 이 있는데, 스푸핑은 실제 거짓 패킷을 전송하거나 패킷을 변조하는 등의 행위이다. 스니핑은 패킷을 변조하거나, 거짓 패킷을 송신하는 스푸핑 공격에 비해 조용히 도청만 한다는 점에서 소극적인 공격이라고 볼 수 있다. 

 

 

 

2. ARP Redirect

 

오늘은 스니핑 공격의 대표적인 예시인 ARP Redirect를 알아보자. 그러려면, 먼저 ARP 에 대하여 알아봐야 할 것이다.

 

  2.1. ARP

 

ARP는 Address Resolution Protocol의 약자로, 네트워크 상의 IP주소(3계층)를 물리적 MAC 주소(4계층)로 bind 하기 위해 사용하는 프로토콜이다.

 

송신된 패킷의 목적지 IP주소는 알지만 대응하는 MAC주소는 모른다면, 라우터는 목적지가 어딘지 모른다. (라우터는 IP주소 이해 못하기 때문) 따라서 라우터는 다음과 같은 단계로 MAC주소를 알아낸다.

 

arp 과정

1) 라우터가 IP주소에 해당하는 MAC주소를 알기 위해 ARP Request를 broadcast한다.

2) broadcast를 받은 호스트 중 해당하는 IP주소를 가진 호스트는 자신의 MAC주소를 라우터에게ARP Reply 하여 보낸다.

3) ARP Reply를 통해 알게된 정보를 통해 라우터가 올바른 호스트에게 패킷을 전달할 수 있다.

 

 

  2.2 ARP Redirect

ARP Redirect는 공격자가 ARP Table를 조작하여 사용자와 라우터 사이에 개입한 뒤, 패킷을 수집하는 공격이다.

 

arp redirect

 

앞서 말했듯이 라우터가 ARP Request를 보낼때는 broadcast 해서 보낸다. 이를 악용하여 ARP Reply를 자신의 MAC주소로 위조하여 응답하는 것이다.

 

주기적으로 ARP Reply를 조작하여 공격대상의 ARP Table을 조작할 수 있다.

 

다만, 이렇게 Redirect 해서 받게되는 패킷들은 원래의 목적지 호스트로 릴레이 해주어야 한다. 만약 이렇게 릴레이 해주지 않으면, 통신이 차단되므로 스니핑이 아니라 스푸핑이 되버린다.

 

 

 

3. ARP Redirect 실습

 

Kali Linux에는 ARP Redirect를 위한 툴들이 설치되어 있다. (우분투에서도 설치하면 쓸 수 있다.)

 

먼저 패킷들을 원래의 목적지로 릴레이 해주기 위해 fragrouter 를 사용하고, 데이터를 도청하기 위해 dsniff라는 프로그램을 사용할 것이다.

 

arpspoof 툴을 이용한 MAC주소 조작

 

먼저 양쪽 위에 보이는 가상머신이 피해자들이고 아래쪽의 가상머신이 공격자이다.

arpspoof 라는 툴을 통해 피해자의 MAC주소를 공격자의 MAC주소와 같아지도록 만들었다.

 

fragrouter 툴을 이용해 패킷 릴레이

 

fragrouter 툴을 통해 자신에게 redirect된 패킷을 원래 목적지로 릴레이 해주었다.

 

 

disniff 툴을 활용하여 피해자의 가상머신끼리 telnet으로 아이디 친 것, 비밀번호 친 것, 명령어 친 것들이 모두 공격자의 컴퓨터에 표시된다. 이것이 바로 arp redirect를 이용한 스니핑이다.

 

 

오늘 배운 내용을 정리해보면,

 

1. 스니핑은 사용자들의 패킷 교환을 도청하는 행위이다.

 

2. ARP는 IP주소에 해당하는 MAC주소를 bind하기 위한 프로토콜이다.

 

3. ARP Redirect 공격을 통해 피해자들의 패킷 교환을 몰래 도청할 수 있다.

 

본 내용은 공부하며 정리한 것으로, 오류가 있을 수 있습니다.