DNS Spoofing

estar987·2023년 9월 13일
0

Security

목록 보기
23/43
- 개요
    ● DNS에서 전달되는 IP 주소를 변조하거나 DNS의 서버를 장악하여 사용자가 의도하지 
       않는 주소로 접속하게 만드는 공격 기법
    ● 사용자로부터 입력받은 도메인 주소 (URL, 주소 입력창)는 DNS 서버에 의해서
       IP 주소로 변환한 후 서비스한다. 
    ● 이때 DNS 주소로 UDP 프로토콜을 이용하여 질의하는 과정에서 중간자 공격을 
       이용한 공격 (MITM) 또는 DNS 주소의 변조가 되었을 경우를 이용한 공격을 행한다

- 기본 실습
    ● 시스템 환경설정(NAT)
       → Attacker(kali)	
         : 192.168.10.128	    C Class	192.168.10.2	192.168.10.2
       → Victim (Win 10)
         : 192.168.10.129    C Class	192.168.10.2	192.168.10.2
    ● Victim의 웹 브라우저에서 www.naver.com 창을 띄운다
    ● Kali 와 Win10에서 IP 주소, GW 주소 Mac 주소 확인

(kali) # ip link show eth0

(kali) # arp –a

       (kali) # ifconfig
       00:0c:29:7b:ca:fb	: win 10의 Mac 주소
       00:50:56:e1:37:52	: G/W Mac Add
       
       (win) ipconfig /all
       00-0C-29-7B-CA-FB	: 시스템 Mac Add
       (win) arp -a
       00:0c:29:dd:53:67	: G/W Mac Add
    ● 패키지 설치 및 개요
       (kali) # dsniff
       (kali) # arpspoof -i(I/F) eth0(Attacker의 이더넷) -t 192.168.10.129(victim의 IP) 192.168.10.2(Victim의 G/W)
       (kali) # arpspoof -i eth0 -t 192.168.10.129 192.168.10.2
    ● 실습 1

→ kali 에서 명령어 입력하기 전 window10 상태

→ kali 에서 명령어 입력한 후 window10 상태

       → 결과
         : kali에서 네이버 창이 나오지 않는다
         : 공격이 멈추면 다시 win10에서 웹 브라우저가 나온다
         : G/W의 맥 주소가 Kali의 맥주소로 변경된다
         : G/W의 주소가 이상한 주소로 변하면서 인터넷이 안되게 되버림
         

실전 테스트

    ● 시나리오
       → DNS Server 구축한 후 Kali에서 ARP Spoofing 후 Windows 10에서 확인
    ● 실습 환경(NAT)
       → Attacker(Kali)
          192.168.10.128   C class   192.168.10.2   192.168.10.130
       → 확인(Windows 10)
          192.168.10.129   C class   192.168.10.2   192.168.10.130
       → Victim(CentOS)
          192.168.10.130   C class   192.168.10.2   192.168.10.130
    ● 결론
       → 시스템들끼리는 ping이 나간다 하지만 외부(게이트웨이)로 ping이 나가지 않는다
       → G/W의 Mac 주소 변경 확인(arp –a)


조별 실습

    ● 실습 환경(Bridge)
       → kali 		10.10.10.21
       → Win10 	10.10.10.71
       → CentOS1 	10.10.10.11
       → CentOS2 	10.10.10.61
    ● 시나리오
       → DNS Server를 두 개 구축한다. 그리고 그  DNS들은 서로 아래 그림과 같이 
          연동시킨다
       → index.html 로 
       <div id="write_btn">
          <a href="www.a.com/a.html"><button>버튼</button></a>
       </div>
       → CentOS1 에서 www.samadal.com 으로 접속해서 
          버튼을 누르면 www.gusiya.com으로 넘어가게 index파일을 만든다

       → Kali로 DNS 하나를 공격한다 그러면 다른 연결된 링크가 제대로 창이 나오지 
          않는다
          

테스트 2

    ● 시나리오
       → DNS Server 구축한 후 Kali에서 ARP Spoofing 후 Windows 10에서 확인
    ● 실습 환경(NAT)
       → Attacker(Kali)
         : 192.168.10.128	C class	192.168.10.2	192.168.10.130
       → 확인(Windows 10)
         : 192.168.10.129	C class	192.168.10.2	192.168.10.130
       → Victim(CentOS)
         : 192.168.10.130	C class	192.168.10.2	192.168.10.130
    ● 네임 서버 조회
       → ns.gusiya.com
       → www.gusiya.com
       → attack.gusiya.com
         : kali에 새로운 호스트(attack)를 부여(Linux에서 rev, zone파일 수정)
    ● Kali 작업
       → (kali)# vi /etc/network/interfaces
       → 아래 내용 추가한다      


● CentOS 에서 kali(128)로 호스트 부여하고 네임서버 조회해 본다
● (kali)# service apache2 restart
● Windows 10 에서 attack.gusiya.com 을 검색하면 아래 화면 처럼 나온다
● 이것이 피싱사이트의 기본이다.

테스트 3

    ● 실습 환경(NAT)
       → Kali
         : GW와 nameserver를 모두 동일(192.168.10.2)하게 수정
         : host 파일 수정
              192.168.14.100	www.naver.com
              192.168.10.128	www.google.com
       → Windows 10
         : nameserver를 google Default DNS(8.8.8.8)로 변경
    ● 테스트
       → Spoofing을 실행하지 않은 경우
         : Windows 10에서 두 개가 사이트 출력된다
         : MAC address의 변화가 없다(Windows 10 자신 꺼 그대로 출력)
       → Spoofing을 실행한 경우
         : Windows 10에서 두 개가 사이트 출력되지 않는다
         : MAC address의 변화가 있다(Kali의 주소로 바뀜)
    ● 결론
       → ARP Spoofing 만으로는 사이트에 어떠한 변화도 줄 수가 없다
       → 다만 GW 주소만 변경될 뿐이다
       
       

테스트 4

    ● 실습 환경(NAT)
       → Kali
         : GW와 nameserver를 모두 동일(192.168.10.2)하게 수정
         : host 파일 수정
              192.168.14.100	www.naver.com
              192.168.10.128	www.google.com
       → Windows 10
         : nameserver를 google Default DNS(8.8.8.8)로 변경
    ● 작업
       → Kali에서 Packet Forwarding을 실행한다
          (kali)# arpspoof -i eth0 -t 192.168.10.129 192.168.10.2
       → 터미널 창을 하나 더 띄운다
          (kali)# fragrouter -B1
         : 패키지 다운로드 후 실행

    ● 결론
       → 앞의 실습처럼 Kali에서 Win10으로 공격을하면 Mac 주소는 동일하게 바뀐다 
       → 앞의 실습과 다른 점은 이번엔 Win10에서 웹 브라우저가 나타난다
       

조별 실습

    ● 실습 환경(Bridge)
DNS 1   10.10.10.28   C class   10.10.10.2
DNS 2   10.10.10.29   C class   10.10.10.2
Kali      10.10.10.21   C class   10.10.10.2    10.10.10.28, 10.10.10.29
Win10    10.10.10.71   C class   10.10.10.2    10.10.10.28, 10.10.10.29
Web 1    10.10.10.78   C class   10.10.10.2	10.10.10.28, 10.10.10.29
Web 2    10.10.10.79   C class   10.10.10.2	10.10.10.28, 10.10.10.29
    ● 작업 결과
       → Spoofing 공격 하기 전
       ![](https://velog.velcdn.com/images/yoondonggyu/post/deb198fb-7f76-4ac1-bf26-0e3c5c8c9a8f/image.png)
       → Spoofing 공격 후(G/W의 MAC 주소)
       ![](https://velog.velcdn.com/images/yoondonggyu/post/bf48fbd8-bac3-49cd-87b8-f8e7faf8f17f/image.png)

실습

    ● 실습 환경(NAT)
       → Kali
         : 192.168.10.128	  C class	 192.168.10.2	192.168.10.2
       → win 10
         : 192.168.10.129	  C class	 192.168.10.2	8.8.8.8
    ● 작업
       → (kali)# arpspoof -i eth0 -t 192.168.10.129 192.168.10.2
       → (kali)# fragrouter -B1
       → kali에서 wireshark 키고 win 10에서 네이버 실행 
       → kali 에서 실행한 명령어들 중지 시키고 wireshark 확인

Source Destination Protocol Length Info
192.168.10.129 210.102.55.92 HTTP 1040 POST /index.php?act=procMemberLogin HTTP/1.1
(application/x-www-form-urlencoded)

실전 테스트

    ● 작업 환경 (NAT)
       → Linux(php 압축 풀기)
         : db연동까지 되어있어야함
         : 192.168.10.130	          C class	   192.168.10.2	192.168.10.130
       → Win10
         : 192.168.10.129  	C class	   192.168.10.2	192.168.10.130
       → Kali	
         : 192.168.10.128	          C class	   192.168.10.2	192.168.10.2
    ● 작업
       → (kali)# arpspoof -i eth0 -t 192.168.10.129 192.168.10.2
       → (kali)# fragrouter -B1
       → kali에서 wireshark 키고 win 10에서 네이버 실행 
       → kali 에서 실행한 명령어들 중지 시키고 wireshark 확인

조별 실습

    ● 시스템 구성(Bridge)
       → DNS / WEB 	X 2
       → WEB 		X 4
    ● 작업 환경
       → 각자 php 게시판을 만든다
       → 각자 만든 php WEB 서버에 DNS 서버에서 호스트를 부여해준다
         : a.samadal.com
         : b.samadal.com
         : www.samadal.com
         : kms.gusiya.com
         : kdj.gusiya.com
         : shs.gusiya.com
    ● 작업
       → Kali 에서 악성 코드 PUTTY.exe 실행 파일을 만들고 WEB 사이트에서 
          실행파일을 실행 시킬 수 있도록 만든다 
       → 이 악성코드 exe 파일은 index파일이 있는 var/www/html 경로로 이동한다
       → php 서버에서는 악성코드를 심을 링크를 만든다
       ![](https://velog.velcdn.com/images/yoondonggyu/post/00058f84-a30d-468a-9eb8-b59f27d6755b/image.png)


→ 다람쥐 클릭 시 실행파일이 실행된다

→ msf로 공격당한 시스템을 크래킹 한다
→ arpspoof -i eth0 -t 192.168.10.224(win) 192.168.10.114(dns)
: 앞의 실습에서는(kali)# arpspoof -i eth0 -t 192.168.10.129 192.168.10.2
입력을 했는데 뒤에는 GW 주소인데 조별 실습에서는 실습 환경이 Bridge이므로
GW주소가 필요 없다
따라서 무조건 거쳐야하는 DNS 주소(숫자로 된 아이피 주소를 문자로 된 도메인
주소로 바꾸는 역할)를 입력해서 확인한다

실습

    ● 시스템 구성(NAT)
       → Kali
         : 192.168.10.128	  C class	 192.168.10.2	192.168.10.2
       → win 10
         : 192.168.10.129	  C class	 192.168.10.2	8.8.8.8
    ● 작업
       → 명령어(터미널창 3개 띄워서 작업)
         # fragrouter -B1
         # arpspoof -i eth0 -t 192.168.10.129 192.168.10.2
         # tcpdump src 192.168.10.129 and port 80
       → 위의 3개의 명령어를 실행 시킨 후에 창을 하나 더 띄워서 아래 작업
         # driftnet -i eth0(일반사용자에서 명령을 해야됨)
         : 패키지 설치 후 동작
       → 루트에서 하면 작동 안됨


→ samadal 사용자 창에서 실행(관리자가 아닌 일반 사용자에서 실행해야한다)
$ sudo driftnet –i eth0

→ 위의 창이 나오면 win10(129)에서 웹 브라우저 실행 후 이미지들을 클릭한다
: 해상도가 높으면 빠르기 안 나올 수 있다

→ 덤핑한 이미지는 /tmp/driftnet-it41C4 디렉터리에 저장되어 있다
: cd /tmp 하고 drif로 시작하는 디렉터리를 들어가면 파일들이 있다

profile
System / Cloud / DevOps Engineer

0개의 댓글

관련 채용 정보