본문 바로가기

전공 공부/네트워크 해킹과 보안 : 정보보안 개론과 실습

ch07 - 스푸핑 / 연습문제 7장

728x90

01 스푸핑 공격

02 ARP 스푸핑

03 IP 스푸핑

04 DNS 스푸핑

05 E-Mail 스푸핑

 

01 - 스푸핑 공격에 대한 이해

스푸핑(Spoofing) - '속이다'는 뜻으로 네트워크에서 속여서 정보를 획득하는 공격이다.

 

  1.2 스푸핑 공격 대비책

 - MAC 주소를 확인하여 테이블로 만들고 인터넷이 마비되면 브로드캐스트 ping을 로컬 네트워크로 뿌리거나, 앞서 사용한 fping이나 hunt와 같은 툴을 이용해도 된다.

브로드캐스트 ping을 네트워크에 뿌리면 그에 답하는 모든 시스템에 대한 MAC 주소 값이 시스템 캐시에 기록된다. 이때 arp -a로 현재 IP 주소 값과 MAC 주소의 대칭 값을 확인하는데 엉뚱한 MAC 주소로 맵핑되어 있는 항목을 발견하고 해당 MAC 주소의 소유자를 미리 만들어둔 MAC 주소 테이블에서 찾아서 잡는다.

 

#실습 7-1 시스템의 IP와 MAC 주소 수집하기

실습 환경 - 리눅스

 

- 브로드캐스트 ping 보내기

fping을 이용해 해당 ip의 1부터 255까지 ping을 보낸다.

fping -a -g IP

 

 - MAC 주소 확인하기

arp -a //해당 네트워크의 MAC 주소 목록을 확인

 

02 - ARP 스푸핑

 1. ARP 스푸핑에 대한 이해

ARP(Address Resolution Protocol) : IP 주소 값으로 MAC 주소 값을 알아내는 프로토콜이며, RARP(Reverse ARP)는 MAC 주소 값으로 IP 주소 값을 알아내는 프로토콜이다.

ARP[IP --> MAC]

RARP[MAC --> IP]

 

ARP 스푸핑은 MAC 주소를 속이는 것으로 2계층에서 작동하므로 공격 대상이 같은 랜에 있어야 한다.

 

  1.1 ARP 스푸핑의 개념

EX)

  • 1) 명호는 철수에게 영희(10.0.0.3)의 MAC 주소가 명호 자신의 MAC 주소인 CC라고 알린다.
  • 2) 명호는 철수와 영희로부터 패킷을 받는다.
  • 3) 명호는 각자에게 받은 패킷을 읽은 후에 철수가 영희에게 보내려던 패킷을 영희에게 보내주고, 영희가 철수에게 보내려던 패킷을 철수에게 정상적으로 보내준다.

 

#실습 7-2 ARP 스푸핑으로 스니핑하기

실습환경

공격 : 칼리 리눅스

텔넷 서버 : 우분투

텔넷 클라이언트 : 우분투

프로그램 : fake

fake 툴 : 서버 시스템에 오류가 발생했을 때 데이터의 흐름을 백업 서버로 보내기 위한 툴

 

  •  1) fake 설치
apt-get install fake //send_arp 명령을 실행하면 사용법

 

  •  2) 공격 전에 시스템의 MAC 주소 테이블 확인

각각의 ping을 보낸 후 arp 테이블 확인

ping -c ip //-c는 ping 패킷을 하나만 보내라는 옵션

 

  •  3) 패킷 릴레이와 TCP Dump 수행

ARP 스푸핑 공격이 성공하면 패킷이 바로 공격자에게 유입된다. 텔넷 서버와 클라이언트 간의 통신이 끊어지지 않도록 클라이언트에서 패킷을 받으면, 이를 다시 서버로 보내주는 릴레이가 필요하다.

fragrouter -B1 //으로 패킷이 원래 목적한 곳으로 가도록 패킷 릴레이 작동
tcpdump -xX //다른 창을 하나 열어 지나가는 패킷을 스니핑할 수 있도록 TCP Dump 실행

 

  •  4) ARP 스푸핑 공격 수행
send_arp 서버IP 공격자의 MAC주소 //텔넷 서버의 MAC 주소가 공격자의 MAC 주소라고 텔넷 클라이언트에게 알린다.

 

  •  5) 공격 후 시스템의 MAC 주소 테이블 확인

공격 수행후 텔넷 클라이언트에서 테이블 확인(서버의 MAC 주소가 바뀐것 확인)

 

  •  6) 텔넷 연결하기

 

  •  7) 스니핑한 패킷 확인

tcp dump로 스니핑한 패킷 확인

 

  •  8)  ARP 스푸핑 패킷 분석

 - wireshark로 ARP 스푸핑 패킷의 구조를 캡쳐해서 분석

 - 각 부분을 이더넷 프레임 기본구조에 매칭

 -> 최초 Preamble과 Start Delimiter 부분은 wireshark에서 저장하지 않고 있어서 패킷의 목적지 MAC 주소와 출발지 MAC 주소가 3행에 걸쳐 있다.여기서 출발지 MAC 주소 부분이 위조되었다.

 

 

 - ARP 패킷 부분

 Hardware Type의 값은 1로 이더넷임을 가리키고, PRO는 0800으로 IPv4임을 알린다.

HLN은 MAC 주소의 길이인 8바이트가 되고, PLN은 IP 주소의 길이인 6바이트가 된다. OPcode는 1로 ARP 스푸핑을 하는 프로토콜이 ARP Request 패킷임을 나타낸다.

 

  1.2 ARP 스푸핑에 대한 보안 대책

 - IP와 MAC 주소를 static으로 고정하면 스푸핑 공격이 들어와도 변하지 않는다.

하지만모든 시스템에 이런 작업을 할 수 없고 리부팅하면 옵션이 사라져 배치 파일 형태로 만들어두고 자동으로 수행되도록 설정해야 한다.

또 랜카드를 바꿔 끼우면 MAC 주소 테이블을 고쳐야해서 네트워크가 꼬일 수 있다.

 

03 - IP 스푸핑

 1. IP 스푸핑에 대한 이해

IP 스푸핑 : IP를 속이는 것

 

  1.1 IP 스푸핑의 개념

한 시스템이 여러 시스템에 로그인할 경우 각 시스템마다 계정이 필요한데 너무 많으면 힘들다. 그리고 보안되지 않은 ftp나 텔넷을 쓰면 스니핑 공격에 당하기 좋다.

때문에 트러스트라는 대책으로 자신의 IP 주소로 인증하면 로그인 없이 접속 가능하게 만드는데(원격지 접속 서비스 중 r(remote)로 시작하는 rsh, rcp 등 명령이 IP 주솔르 기반으로 인증하는 서비스다) IP 만 일치하면 다른 인증은 우회하는 문제가 있다.

 

 - 트러스트 관계를 형성하기 위한 파일

  • ./etc/hosts.equiv - 시스템 전체에 영향을 미친다
  • .$HOME/.rhost - 사용자 한 사람에 귀속하는 파일

/etc/hosts.equiv파일에 ++라고 쓰여 있으면 인증 없이 모든 시스템의 로그인을 허용한다는 의미

 

  1.2 IP 스푸핑의 보안 대책

 - 트러스트 관계를 이용한 IP 스푸핑이므로 제로 트러스트를 하는 것이다.

 - ssh 같이 보안된 포트 사용

 

04 - DNS 스푸핑

 1. DNS 스푸핑에 대한 이해

-DNS 서버를 공격하여 해당 사이트에 접근하지 못하게 만들면 DoS 공격이 되지만 조금 응용하면 웹 스푸핑이 된다.

ex)

  • 자신의 웹 서버를 만들고, 공격 대상이 자주 가는 사이트를 가져와 같은 프로그램으로 해당 사이트를 긁어와서 계정과 패스워드를 입력받아 원래 사이트로 전달해주는 스크립트를 간단히 프로그래밍
  • 공격 대상은 사이트 주소를 입력하고 들어가면 사이트가 다른 것을 눈치 못채고 계정에 들어가면 약간 느리게 로그인된다.
  •  

 

 

 

  1.1 DNS 스푸핑의 개념

 

 

  1.2 DNS 서비스와 DNS 스푸핑

 

 

  1.3 DNS 스푸핑의 보안 대책

 

 

 

 

05 - E-Mail 스푸핑

 

 

 1. E-Mail 스푸핑에 대한 이해

 

 

  1.1 E-Mail 스푸핑의 개념

 

 

  1.2 E-Mail 스푸핑의 보안 대책

   

 

 

 

연습문제