DNS Spoofing (Ettercap)

Casper·2023년 8월 9일
0
post-thumbnail

(간단한 개념 숙지를 위한 과거 포스팅 내용입니다.)

  • DNS Spoofing?
    DNS 스푸핑(DNS spoofing) 또는 DNS 캐시 포이즈닝(DNS cache poisoning)은 변질된 DNS 데이터가 DNS resolver의 캐시에 유입되어 네임 서버가 유효하지 않은 결과 레코드(예: IP 주소)를 반환합니다. 이를 통해 공격자의 컴퓨터(또는 다른 컴퓨터)로 공격 우회를 할 수 있습니다.

  • 실습 환경

    • Web Server : Apache2
    • 공격자 IP : 192.168.1.128
    • 희생자 IP : 192.168.1.130

먼저 공격자 host 쪽에서 웹서버 데몬인 apache2를 실행합니다.

이 후 사용할 LAN구간에서 Man-IN-THE-MIDDLE공격을 하기 위한 무료 Opensource dns spoofing 도구인 
Etter cap의 host 파일(/etc/ettercp/etter.dns)을 위와 같이 수정하여
희생자가 naver나 google로 접속할 시 공격자가 지정해놓은 ip로 들어올 수 있도록hosts파일을 수정합니다.
이렇게 한다면 dns server를 직접적으로 공격하지 않아도 hosts file의 변조를 통해 DNS Spoofing 공격을 실행할 수 있습니다.

공격자 PC에서 'etthercap -G'을 입력하여
ettercap GUI를 실행한 후 Sniff 탭의 unified sniffing을 선택합니다.

Network interface로 eth0을 선택한 후 scan for hosts를 선택하여
같은 LAN구간에 있는 hosts를 스캔한 후
게이트웨이인 192.168.1.2Target 1로,
희생자 ip인 192.168.1.130Target 2로 지정합니다.

Mitm메뉴의 arp posisoning을 선택한 후 Sniff remote connection을 체크하여
이로 인해 공격자가 둘 사이로 들어가 arpspoofing을 할 수 있도록 설정합니다.

마지막으로 Plugin메뉴의 Manage the plugins를 선택한 후 dns-spoof를 활성화합니다.

이로 인해 희생자 pc에서 위와 같이 www.google.com으로 접속을 시도하면
arp spoofing과 dns spoofing으로 공격자의 web server가 표시되게 됩니다.
이렇게 되면 희생자의 DNS Cache table에서 google과 관련된 cache가 공격자 ip로 바뀌어 있기 때문에
cache가 유지되어 있는 동안에는 공격자의 web server가 계속 나타나게 됩니다.

C:\>ipconfig /flushdns (windows) , $ sudo /etc/init.d/nscd restart (Unix/Linux)

등의 명령어로 dns cache table을 초기화합니다.
=>DNS Spoofing의 대응방안으로는 앞에서 위조했던 hosts파일의 무결성을 검사하거나
dns cache의 Poisoning을 보호하는 솔루션을 사용(DNSSEC...) 또는 이전에 다뤄봤던 ARP Spoofing 방지 솔루션을 사용하여 대응할 수 있습니다.

profile
Emotional Developer

0개의 댓글