DNS Attack

justugi·2025년 6월 3일

네트워크 보안

목록 보기
5/13

DNS Attack

  • 특정 Domain 주소로 전달되는 요청을 공격자가 원하는 목적지로 전달되게 함
    • 피해자 클라이언트 웹 브라우저의 주소창엔 원래 접속하고자 했던 정상적인 도메인 주소로 표시됨
  • 주로 파밍 공격을 수행하기위해 공격자가 준비한 서버로 유인하기 위해 사용
  • DNS 취약점
    • 질의에 대한 응답을 Cache 에 저장한 후 재사용함
    • UDP 를 이용한 일반 질의 : 비 신뢰성, 비 연결성
    • DNS 자체에 인증 메커니즘이 없음
      • Transaction ID, Client Port 의 일치 여부만 확인 (둘 다 랜덤)
        • Transaction ID (XID) : 어느 질의에 대한 응답인지 알려주는 식별값
  • DNS Attack 분류
    • DNS Spoofing
      • DNS Client 의 Cache 를 공격 -> 한번의 공격으로 하나의 Client 만 공격
      • 재귀질의로 공격
    • DNS Cache Poisoning
      • DNS Server 의 Cache 를 공격 -> 한번의 공격으로 다수의 Client 공격
      • 반복질의로 공격
      • 사실상 공격 힘듬

DNS Spoofing (Client 공격)

  • Client 의 DNS Cache 에 특정 도메인 주소에 해당하는 IP 를 공격자가 원하는 IP 로 변조하는 공격

  • 한 번 DNS Cache 를 감염시키면 DNS Cache Table 이 만료되기 전까지 지속적인 공격 가능

  • DNS Client 의 Domain 해석 순서

    • Domain 해석 요구 -> Hosts 파일 확인 -> DNS Cache 확인 -> 질의 (Query)
    • 첫 Domain 해석 요구만 웹 브라우저, 나머지는 resolver
  • DNS Spoofing 공격 조건

    • DNS 자체의 인증 메커니즘은 없지만 요청과 응답 연결을 위한 Transaction ID (XID) 를 정확히 알아야 함
      • Sniffing 공격으로 Client 가 전송하는 요청을 획득하여 Transaction ID (XID) 를 획득 해야 함
    • DNS 자체의 인증 메커니즘은 없지만 요청과 응답 연결을 위한 Source Port 를 정확히 알아야 함
      • Sniffing 공격으로 Client 가 전송하는 요청을 획득하여 UDP 의 Client Port 를 획득 해야 함
    • DNS 질의에 대한 응답이 여러 개 전달되는 경우 가장 먼저 도착한 응답만 수용
      • 정상 DNS Server 보다 응답을 먼저 전달해야 함
  • DNS Spoofing 공격 과정

    • 공격 대상이 정상 DNS server 로 전달하는 DNS Query 를 Sniffing
      • Transcation ID (XID), Source Port 획득
    • 번조된 DNS 응답을 전달할 Tool 사용 (dnsspoof)
      • hosts 파일 형식으로 변조된 정보를 전달할 파일을 생성
      • 지정된 Domain 요청을 감지하면 지정된 IP 로 DNS 응답을 피해자에게 전송
  • DNS Spoofing 한계

    • 클라이언트가 생성한 Transcation ID (XID), Source Port 를 획득하기위해 Sniffing 공격이 선행되어야 함
    • 한 공격당 하나의 대상만 공격 가능
    • 현대 웹 브라우저를 사용하면 공격이 힘듬
        1. 암호화된 사이트가 아니라서 경고 등 알림
        1. 암호화를 강제하는 사이트에 접속해도 암호화가 안되어있음
        • 클라이언트 입장에선 암호화 여부나 브라우저 경고창이 뜨면 접속 안하는것이 좋음
      • 최신 웹 브라우저는 HSTS 라는 보안 설정이 되어있기 때문에 해당 공격이 안되는 경우도 있음
        • HSTS (http strict transport security) : 사용자의 브라우저가 HTTPS 연결만 허용하도록 클라이언트의 웹 브라우저 프로그램이 연결을 강제하는 기능
          • 처음 특정 사이트 접속 시 서버에서 클라이언트에게 앞으로 접속 시 HTTPS 로만 접속하라는 명령 -> 웹 브라우저 HSTS 설정에 해당 사이트가 등록됨 -> 이후 해당 사이트 접속시 https 로만 접속 시도함
          • 크롬의 chrome://net-internals/#hsts 에서 설정 가능
  • 보안 대책

    • GW 의 MAC 주소를 static 으로 설정하여 arp spoofing 방지
    • TTL 을 짧게 운영
    • DNSSEC
      • 기존 DNS 질의 시 해당 응답이 DNS server 가 한 응답인지, 해커가 한 응답인지 구분이 불가능
      • 응답 데이터 안에 전자서명을 같이 전달 -> 해당 응답 데이터의 신뢰성 보장
        • DNS 서버가 본인의 사설키를 통한 암호화로 전자서명을 만들어서 클라이언트에게 전달
        • 클라이언트가 서버의 공개키로 복호화 성공하여 DNS 서버가 암호화 했음을 검증 가능
      • 키와 zone 파일 전부 준비하여 RR 에 전자서명을 포함한 새로운 zone 파일을 생성함
      • 클라이언트 : 전자서명을 확인하여 신뢰할 수 있는 DNS 정보인지 확인
        • 일반적으로 클라이언트가 사용하는 일반 리졸버 (스텁 리졸버) 는 직접 자동으로 검증 안함
          • 클라이언트는 검증하고 싶으면 추가적인 툴이나 프로그램을 설치
        • 재귀 리졸버 (= 공용 DNS (1.1.1.1, 8.8.8.8, KT DNS 등) 서버) 는 검증 수행함
  • bailiwick 취약점

    • 과거 bind 버전에서는 응답자의 영역 (domain) 을 확인하지 않고 모든 DNS 정보를 신뢰해서 문제 발생 -> DNS Cache Poisoning 가능
      • 문제점
          1. 권한이 없는 영역에서 응답하는 DNS 정보를 무조건 신뢰
          1. XID 같은 식별 번호를 쉽게 유추 가능
          • 생일 역설로 유추
            • 값의 범위가 N 일 때, 값이 대략 N^0.5 개 일 때 50% 확률로 중복 발생
              • 동일한 값을 찾는데 필요한 데이터의 수가 생각보다 많이 필요하지 않음
    • 현재 버전에는 해당 취약점 없음

실습 (DNS Spoofing)

XP 192.168.50.100
kali 192.168.50.200

  • XP 의 질의를 kali 로 유도하여 대신 응답하는 형태로 공격
    • 정상 DNS server 로는 질의가 가지 않도록 차단
  • XP 가 WEB 서버 접속 시도 -> DNS 질의 -> kali 가 응답 -> XP 가 응답된 주소 (kali 의 WEB 서버) 로 WEB 접속

[kali]

  • WEB 서버 구축

    • apt -y install apache2
    • dpkg -l | grep apache
    • echo 'hahah'> /var/www/html/index.html
    • service apache2 restart
    • netstat -antup | grep 80
  • DNS 서비스 구현 (dnsspoof)

    • vim domain.txt
      • 192.168.50.200 kh.com
      • 192.168.50.200 google.
    • dnsspoof -i eth0 -f domain.txt
  • arpspoof

    • arpspoof -i eth0 -t 192.168.50.100 192.168.50.2

[XP]

  • kh.com 등 접속하면 kali 가 설정한 DNS 를 따라 kali 가 구축한 웹 서버로 접속하게 됨

※ kali 에서 arpspoof -i eth0 -t 192.168.50.2 192.168.50.100, fragrouter -B1 실행 시 XP 에서 ping 8.8.8.8 과 같은 다른 통신 가능해짐

profile
IT 보안, 관심 있는 것을 공부합니다.

0개의 댓글