(1)에서
ARP Spoofing까지 프로그램을 마무리했다.
그리고 포워딩 기능을 추가하기로 했는데
포워딩을 그냥 윈도우의 라우팅 서비스를 이용할 것이다.
이제 받아온 패킷에서
DNS 패킷을 구별하고
www.naver.com 특정 도메인 네임에 맞는 패킷들을
필터링 할 수 있어야
그 패킷에 대한 응답을 먼저 할 수 있다.
그리고 그래야 DNS Spoofing을 할 수 있다.
먼저 DNS 패킷을 구별해보자.
DNS는 53번 포트를 사용하므로 udp 헤더의 도착지 포트번호를 확인하면 된다.
(DNS 포트 53번 확인)
(DNS 패킷 생성)
(DNS 패킷이 수집된 모습)
DNS 내용이 수집된 화면이다.
맨 앞 두바이트가 Trx ID이고 (DNS Spoofing때 필요한 항목이므로 뽑아낼 수 있어야한다.)
그 다음 2바이트 0x0100 Flag가 보인다.
그 다음 2바이트 Question, Answer, Authority, addional 이 보인다.
그리고 3으로 시작하는 DNS 주소가 보인다.
DNS 패킷이 맞는걸 확인 할 수 있다.
이제 여기서 DNS Question의 주소부분만 떼올 수 있어야한다.
unpack을 사용해서 질문 필드만 떼어내 보았다.
(쿼리 내용 추출)
(내용 화면)
처음에는 출발 포트번호 53번도 적용시켜서 응답까지 봤는데
잠깐 우리가 패킷을 분석하면서 확인해야하므로
목적지 포트 53번만 검사하도록 잠깐 수정했다.
(또, 내 호스트에서 나가는 패킷으로 검사할 것이므로 내 패킷이 보이도록 수정했다.)
(확인을 위한 수정)
(www.naver.com 검색)
(결과화면)
naver 를 검색한 DNS 패킷 내용만 잘 출력되는 것을 볼 수 있다.
여기서 DNS Spoofing에 필요한 정보
1. Src Port Number
2. Transaction ID
3. DNS 물어보는 내용
위 내용을 확인해보도록 하겠다.
(확인 코드)
(결과)
이제 여기서 주소 도메인 네임만 정확히 뽑아내야한다.
그러기 위해 바이트형식으로 되있으니 decode()를 해주었다.
(decode() 코드 추가)
(결과 화면)
www.naver.com이 잘 보인다.
이제 이 것을 문자열로 뽑아내는게 일이다.
(도메인 부분만 뽑아내는 코드)
(결과 화면)
도메인 네임만 잘 보이게 되었다.
이제 다시 src_ip != 100 으로 수정하여 나의 IP를 제외한 다른 패킷들을 볼 것이다.
조건을 수정해주고
ARP Spoofing을 해준다음
아래의 코드를 실행시켰다.
그리고 피해자는 www.naver.com에 접속하였다.
(완성한 코드)
(입력한 naver.com가 보인다.)
피해자가 보낸 패킷의 내용을 덤프 받을 수 있고
확인 할 수 있었다.
여기 까지 했으니 (3)에서는
이 패킷을 받아서 naver.com을 물어보는 패킷에 대해
응답패킷을 만들어서 피해자에게 보낼 것이다.
그렇게 되면 DNS Spoofing 공격에 성공하게 되는데
그 결과를 확인해 볼것이다.
'Hacking > Network Hacking' 카테고리의 다른 글
Network Hacking - TCP SYN Flooding 공격 (0) | 2017.01.20 |
---|---|
Network Hacking - DNS Spoofing 프로그램 만들기(3) (3) | 2017.01.19 |
Network Hacking - DNS 패킷 분석, DNS Spoofing 프로그램 만들기(1) (0) | 2017.01.17 |
Network Hacking - DNS 서버구축(2) (0) | 2017.01.13 |
Network Hacking - DNS, DNS 서버 구축(1) (0) | 2017.01.13 |