개요
ARP 스푸핑 공격이란 공격자가 ARP(Address Resolution Protocol) 프로토콜을 사용하여 자신의 MAC주소를 공격 대상자 PC의 IP주소와 매핑하여 마치 공격 피해자의 MAC주소인 것 처럼 속여 패킷을 가로채는 공격입니다.
ARP프로토콜은 IP 주소를 가지고 해당 IP의 MAC주소를 찾는 프로토콜 입니다. 송신자가 ARP Request 패킷을 브로드캐스트로 요청하면, 해당되는 수신자는 자신의 MAC주소를 담아 ARP Reply 패킷을 유니캐스트로 송신자에게 전송합니다.
Ettercap 사용
시작하기
Ettercap은 kali에 기본적으로 설치된 네트워크 보안 도구 입니다. 패킷 스니핑과 중간자 공격을 실행하기 위해 사용되며, LAN에서 호스트 간 통신을 감시하고 조작할 수 있는 기능을 제공합니다.
저는 VMWare에서 Kali 와 Xubuntu를 설치해 실습을 진행하였습니다.
탐색기에서 Ettercap을 찾아 실행합니다. 이후 사용할 인터페이스를 선택하고 accept 버튼을 클릭합니다.
accept 버튼을 누르면 eth0에 대한 정보를 확인할 수 있습니다.
오른쪽 상단의 Ettercap Menu - Hosts - Scan for hosts 메뉴를 사용해 LAN에 접속되어 있는 호스트들을 스캔합니다.
저는 VMWare에서 NAT로 네트워크를 설정하였습니다.
192.168.100.1 | 호스트 PC |
192.168.100.2 | 게이트웨이 |
192.168.100.30 | 피해자 (Xubuntu) |
192.168.100.128 | 공격자 (Kali, 현재 PC) |
ARP Poisoning 공격
분명히 'ARP Spoofing'공격을 진행하고자 Ettercap을 사용하였는데, 정작 Ettercap에서 사용하는 용어는 'ARP Poisoning'이었습니다. 대충 비슷한 공격이라고 생각했지만 정확히 ARP Spoofing과 ARP Poisoning의 차이점에 대해 인지해둘 필요가 있었고, 그에 대한 내용은 이 글의 마지막에 서술하였습니다.
일단 피해자 PC인 Xubuntu에서 arp -a
명령어를 사용해 ARP 캐시 테이블을 확인해보겠습니다.
Gateway의 MAC 주소가 00:50:56:f1:51:86
으로 기록되어 있습니다. 실제 Gateway의 MAC주소와 일치합니다.
Gateway(192.168.100.2)와 Xubuntu(192.168.100.128)를 각각 타켓으로 설정하였습니다.
MitM Menu에서 ARP poisoning 메뉴를 실행합니다.
앞서 설정한 Target 1,2를 대상으로 ARP Poisoning 공격을 실행하고 있음을 알 수 있습니다.
ARP Poisoning 공격 중인 상태에서 다시 피해자 PC로 돌아가 ARP 캐시 테이블을 확인합니다.
원래 Gateway의 MAC 주소는 00:50:56:f1:51:86
이었는데, 공격자인 Kali(192,168.100.128)의 MAC 주소인 00:0c:29:ce:c0:c2
로 바뀌었습니다.
테스트를 위해 웹브라우저에서 외부 예제 사이트(http://testphp.vulnweb.com/login.php) 에 접속해 로그인해보겠습니다.
Ettercap에서 공격에 성공하여 아이디, 비밀번호를 도청한 모습을 확인할 수 있습니다.
ARP 스푸핑 공격의 과정
공격자가 ARP 프로토콜을 사용하여 ARP 스푸핑 공격을 진행하는 과정은 다음과 같습니다.
- 공격자는 자신의 컴퓨터를 타깃으로 선택하고, 네트워크에 있는 모든 호스트들의 ARP 테이블을 감시하기 시작합니다.
- 공격자는 자신의 MAC 주소와 타깃 호스트의 IP 주소를 사용하여 가짜 ARP 응답 패킷을 생성합니다.
- 가짜 ARP 응답 패킷에는 공격자의 MAC 주소가 타깃 호스트의 IP 주소와 연결되어 있음을 나타내는 정보가 포함됩니다.
- 공격자는 가짜 ARP 응답 패킷을 네트워크 상에 전송합니다. 이 패킷은 네트워크에 있는 모든 호스트들에게 브로드캐스트됩니다.
- 타깃 호스트는 가짜 ARP 응답 패킷을 수신하고, 자신의 ARP 테이블을 업데이트하여 공격자의 MAC 주소를 해당 IP 주소와 연결합니다.
- 타깃 호스트는 향후에 통신할 때, 해당 IP 주소로 가는 패킷을 공격자의 MAC 주소로 보냅니다.
- 이제 공격자는 타깃 호스트와 다른 호스트 간의 통신을 가로챌 수 있습니다.
- 공격자가 원하는 작업이 끝나면 '원래의 목적지'로 패킷을 재전송합니다. 이 과정에서 공격자는 피해자가 공격을 인지하지 못하도록 할 수 있습니다.
ARP Spoofing VS ARP Poisoning
ARP poisoning과 ARP spoofing은 네트워크 보안 공격의 형태로서, 비슷한 목적을 가지지만 약간의 차이가 있습니다.
ARP poisoning은 공격자가 네트워크 내에서 ARP 테이블을 변조하여 통신의 경로를 조작하는 것을 말합니다. 일반적으로, 공격자는 네트워크 상에서 자신을 다른 기기의 MAC 주소로 속이고, 통신을 중간에서 가로채거나 조작하여 정보를 도용하거나 변조할 수 있습니다. ARP poisoning은 네트워크 내에 위치한 모든 기기에 대한 ARP 테이블을 변조하는 방식으로 작동합니다.
ARP spoofing은 공격자가 네트워크 상에서 자신을 다른 기기의 MAC 주소로 속이는 것을 의미합니다. 이는 일반적으로 ARP poisoning과 함께 사용되지만, ARP spoofing은 단일 기기를 대상으로 한다는 점에서 차이가 있습니다. 공격자는 일반적으로 특정한 기기를 대상으로 ARP 패킷을 송신하여 해당 기기의 ARP 테이블을 변조하고, 그로 인해 해당 기기의 통신을 가로채거나 조작할 수 있습니다.
ARP poisoning은 네트워크 내의 모든 기기에 대한 ARP 테이블을 변조하는 반면, ARP spoofing은 특정 기기를 대상으로 한 ARP 테이블 변조를 의미합니다.
📌 참고한 자료
- Chat GPT, "ARP 스푸핑의 진행 과정"에 대한 답변 참고
- How to use Ettercap in Kali Linux