★DNS 개념 설명이 필요하다면 아래 링크를 클릭!★
https://peemangit.tistory.com/52
DNS Spoofing 이란?
- 웹(Web) Spoofing 이라고도 불린다.
- Target의 DNS Query가 발생하면 DNS Server보다 공격자가 먼저 응답하여 Attacker가 의도한 IP를 넘겨준다.
- 해당 공격이 진행되면 Client 사용자들은 홈페이지에 접속을 시도했을 때 Attacker가 설정한 페이지로 이동하게 된다.
- 공격자가 Client의 DNS Query 패킷을 가로채기 위해서는 ARP Spoofing 등의 공격이 선행되어야 한다.
- Attacker가 설정한 페이지는 암호화되어있지 않아서 패킷을 가로채서 사용자의 아이디 비밀번호 신용카드 정보 등을 탈취할 수 있다.
공격 원리
- DNS는 UDP를 사용한다. (UDP는 Stateless 한 프로토콜이다.)
- Session이 존재하지 않고 또한 먼저 도착한 패킷을 신뢰하며 다음에 도착한 정보는 버려진다.
- DNS query문을 분석했을 때 인증할 수 있는 수단이 Transaction ID 밖에 존재하지 않는다.
- 공격자는 Local에 존재하므로 실제 DNS Server보다 빨리 응답할 수 있다.
- 클라이언트는 DNS Query를 보낸 후 먼저 도착한 응답을 수용한다
- Transaction ID, 사용된 Local Port, 네임서버 주소 등의 정보를 알아야 하므로 주로 Local에서 공격이 행해진다.
네트워크 구성
네트워크 설명
- Target PC(Window7)의 IP 주소는 10.1.10.4이다.
- Attacker PC(Kali Linux)의 IP 주소는 10.1.10.100이다.
- DNS Server(Window Server 2012)의 IP 주소는 10.1.250.1이다.
- Web Server(Window Server 2012)의 IP 주소는 10.1.250.3이다.
- Attacker PC가 DNS Spoofing을 통해서 Target PC가 Web 서버에 접속할 때 자신의 사이트를 보여 주려고 한다.
동작 과정
1. Target PC가 Web Browser에서 www.ictsec.com(Web 서버)로 접속한다.
2. Target PC가 DNS 서버한테 www.ictsec.com의 주소를 알아 오기 위해 질의를 수행한다.
3. Attacker PC는 DNS 서버가 응답하기 이전에 먼저 DNS Reply를 보내 Target PC가 Web 서버의 주소가 Attacker PC의 IP로 등록하게 된다.
4. DNS Reply는 먼저 보낸 패킷이 우선시됨으로 DNS 서버에서 보낸 DNS Reply 패킷을 무시하게 된다.
5. Target PC는 www.ictsec.com에 들어가기 위해서 Attacker PC에 접근하게 된다.
6. Attacker PC는 포워딩을 통해 Target PC가 웹서버에 접근할 때 정상적인 서버인 것처럼 동작하게 수행한다.
Attacker(Kali Linux) DNS Spoofing 공격
1. Target PC에게 ARP Spoofing을 수행한다.
- arpspoof -t 10.1.10.4 10.1.10.254 명령어를 통해 ArpSpoofing을 수행한다.
- Client(10.1.10.4)가 Gateway(10.1.10.254)로 통신을 할 때 이 정보가 Gateway로 가지 않고 Attacker PC에게로 이동하게 된다.
- Attacker PC에서 응답 처리를 해주기 위해서 fragrouter -B1 명령어를 이용해 Client가 정상적으로 통신이 되게 설정한다.
2. Attacker PC에서 WebServer(apache2)를 실행한다.
- Target PC가 Web브라우저를 통해 접속할 경우 자신이 설정한 웹 페이지를 보여주기 위해서 자신이 임의로 만든 웹 서버를 실행한다.
3. Target PC에서 잘 동작하는지 확인
- Client PC에서 Attacker PC IP 주소를 입력한 후 Attacker PC의 웹 페이지가 잘 접속되는지 확인한다.
4. Attacker PC에서 hosts 파일을 생성한다.
- Target PC에서 Attacker PC가 원하는 주소를 입력할 때 자신의 사이트를 띄우기 위해 hosts 파일을 작성한다.
- Client가 www.naver.com으로 접속할 경우 10.1.10.100으로 이동하게 설정한다.
5. Attacker PC에서 DNS Spoofing을 수행한다.
- dnsspoof 명령어를 사용하여 www.naver.com에 대한 DNS Query 패킷이 위조된 웹 서버인 10.1.10.100으로 이름이 해석되도록 설정한다
- dnsspoof - i [인터페이스] -f [DNS 조회할 파일] 명령어를 입력해 53번 포트를 리스닝 상태로 만든다.
6. Target PC에서 잘 동작하는지 확인한다.
- DNS 조회를 하기 이전에 이전 DNS 조회 기록을 지우기 위해서 ipconfig /flushdns 명령어를 입력한다.
(이전 기록들이 남아있을 수 있으므로)
- hosts 파일에 설정한 주소를 입력하면 해당 사이트로 이동하는 것을 확인할 수 있다.
- Client는 www.naver.com을 입력했지만 사이트는 공격자가 임의로 작성한 페이지에 접속이 되었다.
- Attacker PC에서 확인하면 Target PC에서 DNS 요청을 하는 것을 알 수 있다.
'Hacking & Security > Kali Linux' 카테고리의 다른 글
[Kali Linux] DHCP(Dynamic Host Configuration Protocol) 공격과 방어(2/2) (0) | 2019.11.07 |
---|---|
[Kali Linux] DHCP(Dynamic Host Configuration Protocol) 공격과 방어(1/2) (0) | 2019.11.07 |
[Kali Linux] ARP(Address Resolution Protocol) Spoofing 공격과 방어(2/2) (0) | 2019.11.06 |
[Kali Linux] ARP(Address Resolution Protocol) Spoofing 공격과 방어(1/2) (0) | 2019.11.06 |
[Kali Linux] macof 공격 (0) | 2019.11.05 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊