공격기법

arp 스푸핑 공격원리 실습 및 대응방안

joseph94 2020. 8. 29. 18:15
반응형

arp 스푸핑 공격원리 및 실습

 

ARP 스푸핑이란?
ARP 캐시테이블을 위조하여 사용자간 주고받는 패킷을 훔쳐보는 것을 말합니다.
arp 스푸핑 공격은 ARP cache poisoning이라고도 불리며 같은 네트워크안에서 공격이 이뤄집니다.
중요한것은 MAC주소를 조작한 arp응답 패킷을 날려 arp 캐시테이블이 업데이트 돼 정상적인 pc들 사이 오고가는 모든 패킷을 도청하는 공격을 말합니다.
 

 

arp 스푸핑 공격 도식화

 

 

MAC주소 변경

- MAC주소를 조작한 ARP 패킷을 날려 서버와 희생자 arp테이블을 조작

- 공격자는 조작된 mac주소를 넘겨 모든 패킷이 공격자를 통해 가도록 설정

- 공격전의 패킷의 흐름 : 클라이언트 <--->웹서버

- 공격 후의 패킷의 흐름 : 클라이언트 <--- 공격자 ----> 웹서버

 

 

 

 

ARP 스푸핑 실습

네트워크 구성

- 정상적인 ip와 mac주소의 네트워크 실습환경

 

 

 

공격 실행

 

- 칼리리눅스의 기본 툴인 ettercap을 이용해 ARP 스푸핑 실행

- 130은 클라이언트 / 164는 웹서버를 타겟으로 정했다

 

 

 

 

 

그럼 이제 와이어샤크를 통해 공격이 어떻게 진행됐는지 분석 해보도록 하겠습니다.

 

 

 

공격자가 보낸 수많은 arp 요청 패킷들

 

 

희생자 PC mac주소 조작

 

 

 

웹서버 mac주소 조작

 

 

1) 공격자는 ARP프로토콜을 이용해 희생자의 mac주소와 웹서버의 mac주소를 알고자 동일 대역에 무차별 적으로 arp패킷을 날립니다.

 

2) 희생자와 웹서버의 mac 주소를 안 공격자는 이를 자신의 arp 테이블에 저장합니다.

 

3)  다음으로 희생자 pc가 웹서버의 arp 요청 프로토콜을 브로드캐스팅하여 동일 네트워크에있는 pc들에게 물어봅니다

 

4) 이에 웹서버는 arp 응답패킷을 보내 웹서버의 mac주소를 보냅니다

 

5) 공격자는 이를 지켜보고 있다가 방금전의 패킷에대하여 다시한번 응답 패킷을 전송합니다.

    물론 여기선 공격자 자신의 mac주소를 보내어 희생자 arp테이블에 공격자의 mac주소가 저장됩니다.

 

6) 이제 웹서버도 희생자 pc의 mac주소를 알기위해 arp 요청 프로토콜을 브로드캐스팅하여 pc들에게 물어봅니다.

 

7) 메시지를 받은 희생자 pc는 자신의 mac주소를 arp프로토콜 응답메시지로 전달합니다.

 

8) 여기서 5번과 같이 공격자는 이를 지켜보고있다가 빠르게 자신의 mac주소를 웹서버에게 전달합니다.

   웹서버의 arp테이블에도 공격자의 mac주소가 저장되었습니다.

 

9) 이제 공격자는 둘사의 통신을 스니핑 할 수있게 되었습니다.

 

 

 

희생자 pc에서 본 정상적인 arp테이블

 

 

희생자pc에서본 조작된 arp테이블

 

 

웹서버에서 본 조작된 arp테이블

 

 

웹서버에서 본 정상적인 arp테이블

 

 

희생자pc, 웹서버의 arp 테이블 전부 공격자의 MAC주소로 변경된 것을 알 수 있습니다.

 

 

 

pc와 웹서버간의 통신

 

 

취약한 웹사이트의 세션쿠키 및 id/pw

 

- arp 스푸핑 공격을 통해 희생자와 웹서버간의 통신을 스니핑 할 수있게 되었습니다

- 취약한 웹사이트라면 위 사진처럼 세션쿠키 및 id/pw 정보가 그대로 패킷에 노출되어 악용될 수있습니다.

 

 

 

ARP 스푸핑 대응 방안
ARP 스푸핑의 대응방안으로는

1. IDS/IPS를 이용해 mac주소가 변경되었을때 탐지 및 이에따른 차단을 하는 방법
2. ARP 테이블의 유형을 동적이 아닌 정적으로 설정
3. arp watch 등 보안솔루션을 이용해 스푸핑 탐지

 

 

 

 

 

 

 

 

 

 

 

반응형