C 언어와 libpcap으로 구현한 ARP 스푸핑(ARP Spoofing) 실습 도구입니다. 중간자(MITM) 공격의 원리를 이해하기 위한 네트워크 보안 학습용 프로젝트입니다.
⚠️ 교육 목적 전용: 본인 소유이거나 명시적으로 테스트 허가를 받은 네트워크 환경에서만 사용하세요. 타인의 네트워크에 무단으로 사용하는 것은 불법입니다.
ARP(Address Resolution Protocol)는 인증 절차가 없다는 점을 이용해, 공격자가 조작된 ARP 응답을 뿌려 victim과 서버(gateway) 양쪽의 ARP 캐시를 오염시킵니다. 이후 두 호스트 간 트래픽이 공격자를 거쳐 흐르게 됩니다.
[Victim] <──────────> [Attacker] <──────────> [Server/Gateway]
(정상 경로처럼 보이지만 실제로는 Attacker를 경유)
- Victim에게 "Gateway의 MAC은 나(Attacker)다"라고 위조된 ARP 응답 전송
- Gateway에게 "Victim의 MAC은 나(Attacker)다"라고 위조된 ARP 응답 전송
- 양쪽 ARP 캐시가 오염되어 모든 트래픽이 Attacker를 경유
참고: ARP 스푸핑 - 위키백과
- Linux (Ubuntu 20.04 LTS 기준으로 개발/테스트)
libpcap개발 라이브러리- 관리자 권한 (raw socket 접근)
sudo apt-get install libpcap-devgcc -o arp_spoofing_tool arp_spoofing.c -lpcap -lpthread
sudo ./arp_spoofing_tool [VICTIM_IP]libpcap으로 네트워크 인터페이스에 직접 패킷 캡처/전송- Victim ↔ Gateway 양방향 스푸핑을 각각 별도 스레드(
pthread)로 분리 처리 - ARP 패킷을 바이트 단위로 직접 구성 (Ethernet + ARP 헤더 수동 조립)


