블로그 내의 모든 예시와 실습은 VMware workstation16.2.3, Kali Linux 2022.03, Window XP, Window 2003을 활용 합니다.
DNS Attack
- 특정 Domain 주소로 전달되는 요청을 공격자가 원하는 목적지로 전달하게 한다.
- 주로 parming 공격을 수행하기 위해 준비한 서버로 유인하기 위한 목적으로 사용한다.
DNS 취약점
- 질의에 대한 응답을 Cache에 저장한 후 Cache 저장된 정보를 재 사용 한다.
- Cache가 한번 감염되면 지속적으로 공격이 수행 된다.
- UDP를 이용하여 일반적인 질의를 수행함 → 비 신뢰성, 비 연결성
- DNS 자체에 인증 메커니즘이 없다.
- Transaction ID, Client Port의 일치 여부만 확인 한다.
- Transaction ID, Client Port의 일치 여부만 확인 한다.
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)
DNS Spoofing(Client) 공격 조건
- DNS 자체의 인증 메커니즘은 없지만 요청과 응답을 연결하기 위한 Transaction ID를 정확히 알아야 한다. -Sniffing공격으로 Client가 전송하는 요청을 획득하여 Transaction ID를 획득 해야 한다.
- UDP 자체의 인증 메커니즘은 없지만 요청과 응답을 연결하기 위한 Source Port를 정확히 알아야 한다.
- Sniffing공격으로 Client가 전송하는 요청을 획득하여 UDP의 Client port를 획득 해야 한다.
- DNS 질의에 대한 응답이 여러 개가 전달되는 경우 먼저 도착한 응답만 수용 한다.
- 정상 DNS Server보다 응답을 먼저 전달해야 한다.
- 정상 DNS Server보다 응답을 먼저 전달해야 한다.
DNS Spoofing(Client) 공격 순서
- 공격 대상이 정상 DNS Server로 전달하는 DNS Query를 Sniffing 한다.
- XID(Transaction ID), Source Port 획득
- 변조된 DNS응답을 전달할 Tool 동작 → dnsspoof
- hosts 파일 형식으로 변조된 정보를 전달할 파일을 생성
- 지정된 Domain 요청을 감지하면 지정된 IP로 DNS 응답을 피해자에게 전송 한다.
DNS Spoofing 한계
- 클라이언트가 생성한 XID(Transaction ID)와 Source Port를 획득하기 위해 Sniffing 공격이 선행되어야 한다.
- 한 공격 당 하나의 대상만 공격할 수 있다.
Kali에서 fragrouter 실행
icmp redirect 공격 실행
xp 확인
Kali에서 spoof 에 응답할 파일을 작성(파일명:/root/dnsspoof.txt)
Kali에서 WireShark 실행 후 DNS Sfoof 공격
XP에서 Kali에서 등록한 주소로 접속
Wire Shark 확인
203.248.252.2의 MAC주소가 Kali의 주소로 나온다.
DNS Spoofing 공격은 항상 성공하는 것이 아니기 때문에 조심해야한다.