[Network] ARP Spoofing

Kioreo·2022년 11월 28일
0

Network

목록 보기
3/3
post-thumbnail

ARP Spoofing

MITM( Man In The Middle ) 기법의 하나로 로컬 네트워크(LAN)에서 사용하는 ARP 프로토콜의 허점을 이용하여 자신의 MAC(Media Access Control) 주소를 다른 컴퓨터의 MAC인 것처럼 속이는 공격이다. ARP Cache Posisoning 공격을 통해 피해자에게 잘못된 MAC 주소가 담긴 ARP Reply를 보내 ARP Cache 테이블을 조작함으로써 정보를 빼낸다.

ARP(Address Resolution Protocol)

네트워크상에서 논리적 주소인 IP 주소(L3, 네트워크 계층)를 물리적 주소인 MAC 주소(L2, 데이터링크 계층)로 시키기 위해 사용되는 프로토콜이다.

APR 동작 과정

  1. 특정 IP주소만을 알고 MAC 주소를 모를 때, 먼저 자신의 ARP 테이블을 먼저 검사한다.
  2. 자신의 ARP Cache 테이블에 특정 IP주소의 MAC 주소가 없다면, ARP Request 패킷에 자신의 IP 주소와 MAC 주소, 알고 싶은 디바이스의 IP 주소를 넣어 자신의 동일 네트워크상에 있는 모든 호스트에게 모두 전송한다. (Broadcast, 브로드캐스트)
  3. 동일 네트워크상에 있는 모든 호스트는 ARP Request 패킷을 확인하고, 보낸 사람의 IP 주소와 MAC 주소를 자신의 ARP Cache 테이블에 저장한다.
  4. 만약 ARP Request 패킷 안에 주소와 자신의 IP 주소가 맞다면 ARP Reply 패킷을 만들어, 그 안에 자신의 MAC 주소를 넣고 패킷을 보낸 호스트에게 답장한다. (Unicast, 유니캐스트)
  5. 답장을 받은 호스트는 ARP Reply 패킷을 열어보고 특정 IP를 가진 디바이스의 MAC 주소를 자신의 ARP Cache 테이블에 저장한다.

ARP 동작 과정에서 치명적인 단점이 있는데, ARP Reply 패킷에 담긴 MAC 주소를 검증하지 않는다.

RARP

ARP와는 반대로 MAC 주소를 가지고 IP 주소를 알아내는 프로토콜이긴 한데, ARP의 반대 동작을 하는 것은 아니다. ( 요즘은 잘 사용되지 않는다. )

실습

실습 환경

윈도우 7 (피해자, VM)
칼리 리눅스 (공격자, VM)

전체 동일 네트워크상에 존재해야 한다.

실습 준비

kali에서 실습에 필요한 dsniff, fragrouter 패키지를 설치해 준다.

sudo apt update
sudo apt install -y diniff
sudo apt install -y fragrouter

fragrouter는 Kali linux에 기본적으로 설치되어 있음.

fragrouter

  • 스니핑을 보조해주는 툴로 받은 패킷을 다시 전달해주는 역할을 한다.
  • 스니핑을 하거나 세션을 가로챘을 때 공격자에게 온 패킷을 정상적으로 전달하려면 패킷 릴레이가 필요하다.

dsniff

  • 자동화된 스니핑툴.
  • 암호화된 통신도 읽어내는 능력이 있다.

실습 진행

1. 피해자와 공격자의 네트워크 주소를 확인합니다.

Kali : ifconfig

win7 : arp -a

공격자
IP 주소 : 192.168.100.106
MAC 주소 : 00-0c-29-73-b3-64

피해자
IP 주소 : 192.168.100.102
MAC 주소 : 00-0c-29-ff-2c-62

게이트웨이
IP 주소 : 192.168.100.2
MAC 주소 : 00-50-56-f8-c7-f1


2. MAC 주소 위조
1) ettercap을 이용한 변조
2) arpspoof를 이용한 변조

ettercap

(1) ettercap 을 그래픽으로 실행한다.
-G : 그래픽

ettercap -G

(2) 호스트를 스캔하고 호스트 목록을 본다.

(3) 피해자는 Target 1, 게이트웨이는 Target 2로 지정한다.

(4) MITM( Man In The Middle ) 메뉴에서 ARP poisoning을 진행한다.

피해자(win 7)의 게이트웨이와 공격자의 MAC 주소가 일치한 것을 볼 수 있다.

arpspoof

(1) 패킷 포워딩
arpspoof만을 이용할 경우 피해자가 보내는 데이터들이 공격자에게 넘어오지만, 공격자가 게이트웨이로 데이터를 전송하지 않아 피해자가 서비스를 제공 받지 못한다.

이 경우 피해자가 이상함을 느낄 가능성이 있다.

-B1 : 송수신 데이터의 변조 없이 그대로 데이터를 포워딩

fragrouter -B1

(2) 공격자와 게이트웨이의 MAC 주소를 동일하게 만든다.
데이터를 전송할 때 Broadcast(브로드캐스트)를 통해서 목적지를 검색 후 게이트웨이를 통해 DNS 서버에서 목적지를 찾기 때문에 내부 네트워크에 속한 피해자에게 데이터가 전송된다.

다음 명령어는 피해자(192.168.100.102)에게 게이트웨이(192.168.100.2)는 자신이라고 속인다.

arpspoof -i eth0 -t 192.168.100.102 192.168.100.2

다음 명령어는 게이트웨이(192.168.100.2)에게 피해자(192.168.100.102)는 자신이라고 속인다.

arpspoof -i eth0 -t 192.168.100.2 192.168.100.102

(터미널 3개)
1. fragrouter
2. arpspoof (피해자IP) (게이트웨이)
3. arpspoof (게이트웨이) (피해자IP)

피해자(win 7)의 게이트웨이와 공격자의 MAC 주소가 일치한 것을 볼 수 있다.

결과 ( 패킷 확인 )

tcpdump

tcpdump를 이용하여 패킷 확인

tcpdump src 192.168.100.102

출발지가 피해자인 패킷만 필터링하여 확인

wireshark

wireshark(와이어샤크)를 이용하여 패킷 확인

wireshark

검색창에 피해자 IP를 입력하여 피해자 패킷만 필터링하여 확인

ARP Spoofing으로 피해자가 주고받는 모든 패킷을 확인 가능

ARP Spoofing 한계

  • HTTPS, TLS, SSH 등이 암호화되어 있으면 불가능하다.
  • 같은 네트워크가 아니면 불가능하다.
  • MAC 주소가 정적으로 등록되어 있다면 불가능하다.

ARP Spoofing 대응

  • VLAN으로 네트워크를 논리적으로 나누어 같은 네트워크에 소속되지 않도록 한다.

    VLAN 계념과 설정 : https://velog.io/@kio0207/Network-VLAN-%EA%B0%9C%EB%85%90

  • ARP 테이블의 유형을 동적이 아닌 정적으로 설정
  • IDS/IPS를 이용해 MAC 주소가 변경되었을 때 탐지 및 이에 따른 조치 방법
  • ARP watch 등 보안솔루션을 이용해 스푸핑 탐지
  • 패킷 필터링
  • 암호화 네트워크 프로토콜 사용
profile
Layer7 23rd

0개의 댓글