본문 바로가기

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

ch06 - 스니핑 / 연습문제 6장

728x90

part03 - 6 [스니핑],7 [스푸핑],8 [터널링],9 [세션 하이재킹],10 [무선 랜 보안],11 [DoS와 DDoS 공격]

01 스니핑 공격

02 스니핑 공격 툴

03 스위칭 환경에서의 스니핑

04 스니핑 공격의 대응책

 

01 - 스니핑 공격

 1. 스니핑에 대한 이해

 스니핑(sniff) : 코를 킁킁거리다는 뜻으로 데이터 속에서 정보를 찾는 일이라고 한다.

- 해킹 기법으로 네트워크 상에서 자신이 아닌 다른 상대방들의 패킷 교환을 엿듣는 것으로 간단히 도청이다.

- 대표적으로 패킷에 대한 암호화, 인증 등을 고려하지 않았기 때문에 데이터 통신의 보안의 기본 요소 중 기밀성을 해치며 패킷이 송수신될 때, 여러 개의 라우터를 거치면서 중간 ISP 라우터에 접근 권한을 가지는 사람이라면 해당 패킷을 쉽게 잡아낼 수 있다. (안랩 전문가 칼럼 - 스니핑)

 

  1.1 스니핑의 개념

 ex) 전화선이나 UTP에 탭핑(Tapping)해서 전기 신호를 분석하여 정보를 찾아내는 일, 전기 신호(Emanation)를 템페스트 장비를 이용해 분석 등등..

 

  1.2 프러미스큐어스 모드

프로미스큐어스(Promiscuous Mode) : 스니핑을 하기 위해 랜 카드를 스니핑이 가능한 모드로 변경하는 것.

 - 모든 패킷은 2계층 MAC 주소와 3 계층 IP 주소를 가지는데 정상적인 경우 자신의 MAC 주소와 IP 주소가 PC의 것과 일치하면 패킷을 분석하여 운영체제에 해당 패킷을 넘겨주고 다르면 버린다.(브로드 캐스팅 방식)

 

 -> 여기서 스니퍼가 패킷을 버리지 않게 설정하면 그 패킷을 엿볼 수 있게 된다! 이처럼 MAC 주소와 IP 주소에 관계없이 모든 패킷을 스니퍼에 넘겨주는 것을 프러미스큐어스 모드라고 한다.

 

바이패스 모드(bypass) : 하드웨어적으로 처리하는 것으로 패킷에 대한 분석까지 하드웨어로 구현되어 있는 랜카드(비싸고 기가바이트 단위의 백본 망에서 스니핑을 하기 위한 장비이다)

 

#실습 6-1. 프러미스큐어스 모드 설정하기

1) 리눅스 환경에서 ifconfig 명령으로 랜카드 확인

2) ifconfig eth0 promisc 명령으로  eth0 장치를 프러미스큐어스 모드로 바꾼다.

 

02 - 스니핑 공격 툴

 1. TCP Dump

 - 리눅스에서 사용하는 스니핑 툴로 획득한 증거 자료는 법적 효력이 있다.

 

#실습 6-2. TCP Dump로 계정과 패스워드 스니핑 하기

실습 환경 : 클라이언트 리눅스 시스템, 텔넷 서버 시스템 , tcp dump 사용

 

 1) TCP Dump 설치

 (sudo) apt-get install tcpdump

 

 2) TCP Dump 실행

(sudo) tcpdump -i eth0 -xX host 호스트 ip

 - 옵션

  • -i eth0 : 패킷을 수집할 인터페이스를 eth0으로 선택
  • -xX : 각 패킷의 값을 헥사코드와 아스키 형태로 모두 출력
  • host ip주소 : 호스트와의 통신 패킷을 수집

 

 3) 텔넷 접속

telnet ip

 

 4) 텔넷 패킷 분석

 - 텔넷과 FTP 등 초기의 서비스들은 계정과 패스워드가 암호화되지 않은 평문으로 전달된다.

4개의 패킷을 감지한 것으로

  • 패킷 1 : 로그인을 위해 서버(192.168.0.2)에서 클라이언트(192.168.0.200)에게 아이디 입력을 요청하는 패킷을 전송
  • 패킷 2 : 클라이언트(192.168.0.200)에서 서버(192.168.0.2)에게 확인(ACK) 패킷을 전송
  • 패킷 3 : 아이디의 첫 글자인 w가 클라이언트(192.168.0.200)에서 서버(192.168.0.2)로 전송되었다.
  • 패킷 4 : 아이디의 첫 글자인 w가 서버(192.168.0.2)에서 클라이언트(192.168.0.200)에게 전송되었다.

나머지 패킷은 한 글자씩의 반복이다.

 

 - 비밀번호를 보면 dideodlf를 입력하는 부분이다.

  • 패킷 1 : 서버(192.168.0.2)의 텔넷 포트에서 클라이언트(192.168.0.200)로 패스워드를 입력하라는 메시지를 보낸다.
  • 패킷 2 : 클라이언트(192.168.0.200)에서 서버(192.168.0.2)로 패스워드의 첫 글자인 d를 보낸다.
  • 패킷 3 : 계정과 달리 패스워드는 서버에서 클라이언트로 패킷을 재전송하지 않는다.
  • 패킷 4 : 클라이언트(192.168.0.200)에서 서버(192.168.0.2)로 패스워드의 두 번째 글자인 i를 보낸다.

 

 2. fragrouter

fragrouter : 직접 스니핑을 하기보다 보조해주는 툴로 받은 패킷을 전달하는 역할을 한다.

 

 3. DSniff

DSniff : 스니핑을 위한 자동화 툴로 암호화된 계정과 패스워드까지 읽어내는 능력이 있다.

 - 읽어낼 수 있는 패킷 

 

 

#실습 6-3 Dsniff로 스니핑 하기

실습 환경 : 클라이언트 칼리 리눅스, FTP 텔넷 서버 우분투

 

 1) Dsniff 설치

(sudo) apt-get install dsniff

 

 2) Dsniff를 이용한 ftp와 텔넷의 패스워드 스니핑

 - 다음과 같이 클라이언트에서 스니프를 실행하고, 다른 터미널에서 서버에 FTP와 텔넷을 이용해 로그인하면, 아이디와 패스워드가 잡힌다.

dsniff

  •  1. 192.168.0.201에서 192.168.0.2로 텔넷을 통해 전달되는 패킷 확인
  •  2. 192.168.0.201에서 192.168.0.2로 ftp 연결을 시도(계정과 패스워드가 명시되어 출력)

 

 3) urlsnarf를 이용한 웹 세션 스니핑

 - urlsnarf를 이용하면 인터넷 사용자가 접속한 서버와 접속 후 입력한 내용 등의 정보를 확인할 수 있다.

urlsnarf

 

03 - 스위칭 환경에서의 스니핑

 1. 스위칭 환경과 스니핑

(=포트 스위칭 허브) 스위치는 무조건 패킷을 보내 네트워크의 대역폭을 낭비하는 것을 막기 위해 개발되었다.

스위치 안에는 포트에 대한 MAC 주소 테이블이 존재하는데 포트별로 MAC 주소 값이 할당되면 브로드캐스트 패킷을 제외한 모든 패킷은 목적으로 하는 장비에만 보내진다. 

-> 자신에게 향하지 않은 패킷 외에는 받아볼 수 없어 스니핑을 막는 도구로 용이하다.

 

 2. ARP 리다이렉트와 ARP 스푸핑

ARP 리다이렉트 : 공격자가 자신을 라우터라고 속이는 것이다. (스니핑을 위한 스푸핑으로 ARP 스푸핑과 비슷하다.)

 - 2 계층 공격으로 이 공격은 위조된 ARP Reply 패킷을 보내는 방법을 사용한다. 자신의 MAC 주소가 라우터라며 속이고 주기적으로 브로드캐스트 하는 것이다.

ARP 스푸핑처럼 공격자 자신은 원래 라우터의 MAC 주소를 알고 있어야 하며 받은 모든 패킷은 다시 라우터로 릴레이 해줘야 한다.

 

#실습 6-4 ARP 리다이렉트 공격

 : 로컬 네트워크에서 외부로 접속하려는 시도가 공격자 시스템을 통과하도록 하는 공격

실습 환경

공격자 - 칼리 리눅스(192.168.0.100)

공격 대상 - 윈도 7(192.168.0.1)

 

 1) 공격전에 공격 대상 시스템의 상태 정보 확인

 - ARP 리다이렉트 공격은 위조된 ARP 패킷을 보내 공격 대상의 MAC 주소 테이블을 바꿔서 패킷의 흐름을 변경하는 방식이다. 따라서 공격 전/후 MAC 주소 테이블을 확인할 필요가 있다.

arp -a //ARP 테이블 확인하는 명령어

 

 2) ARP 리다이렉트 공격 수행

 - 공격 대상에서 패킷이 전달되어 오면 바로 세션이 끊어지지 않게 패킷을 원래 목적지로 전달해야 하므로 먼저 릴레이 툴로 fragrouter를 실행

fragrouter -B1

 

 - arpspoof 툴 사용

arpspoof

 

-공격 시작

arpspoof -i eth0 -t 192.168.0.100 192.168.0.1

 

 3) ARP 리다이렉트 공격 수행의 결과 확인

 - 공격자 (192.168.0.1)의 MAC 주소가 공격자 시스템(192.168.0.201)의 MAC 주소로 동일하게 인식된 것을 확인

어디로 패킷을 보내든지 공격자 시스템으로 패킷이 향한다.

arp -a

 

 3. ICMP 리다이렉트

ICMP 리다이렉트 : ICMP 리다이렉트 메시지를 이용해 위조한 메시지를 만들어 라우팅 경로를 변조하는 것으로 ARP 스푸핑과 비슷하다.

일반적으로 라우터나 게이트웨이 하나로 감당할 수 없을 때 2개를 운영해서 로드 밸런싱을 해야 한다. 이때 라우팅 엔트리에 넣어주는 방법도 있고 ICMP 리다이렉트를 사용하기도 한다.

  •  1) 라우터 A가 호스트 A의 기본 라우터로 설정되어 있기 때문에, 호스트 A가 원격 호스트 B로 데이터를 보내면 패킷을 라우터 A로 보낸다.
  •  2) 라우터 A는 호스트 B로 보내는 패킷을 수신하고 라우팅 테이블을 검색하여 자신보다 라우터 B를 이용하는 것이 더 효율적이라고 판단하여 해당 패킷을 라우터 B로 보낸다.
  •  3) 라우터 A는 호스트 B로 향하는 패킷을 호스트 A가 자신에게 다시 전달하지 않도록 호스트 A에게 ICMP 리다이렉트 패킷을 보내어 호스트 A가 호스트 B로 보내는 패킷이 라우터 B로 향하도록 한다.
  •  4) 호스트 A는 라우팅 테이블에 호스트 B에 대한 값을 추가하고, 호스트 B로 보내는 패킷을 라우터 B로 전달한다.

 - 공격 방법은 공격자가 라우터 B가 되는 것이다. ICMP 리다이렉트도 공격 대상에게 패킷을 보낸 후 라우터 라우터 A에 다시 릴레이 시켜주면 모든 패킷을 스니핑 할 수 있다.

 

 4. 스위치 재밍

ARP와 ICMP를 이용한 스니핑은 스위치의 작동을 그대로 놓아두고 공격하지만 스위치 재밍은

스위치 재밍(Switch Jamming) : 스위치를 직접 공격하는 방법으로 MAC 테이블을 위한 캐시 공간에 버퍼 오버플로우 공격을 실시하면 스위치의 MAC 테이블의 저장 용량을 넘어 원래의 기능을 읽고 허브와 같이 브로드캐스팅하게 된다.

이때 Fail Close, Fail Open 기능이 있는데

Fail Open : 스위치 장비의 MAC 주소 테이블이 가득 차면 브로드캐스팅 방식으로 동작한다.(Fail Close는 반대)

 

#실습 6-5 macof로 스위치 재밍시키기

 - macof 공격을 하면 스위치를 허브처럼 작동하게 만들 수 있다.

실습 환경 

공격자 - 칼리 리눅스

공격 대상 - 스위치

 

macof 사용법 확인

 - dsniff 설치 필요

 macof /?

 

macof

1은 출발지의 MAC 주소 / 2는 목적지의 MAC 주소

3,4는 출발지의 IP 주소와 포트 번호, 목적지의 IP 주소와 포트 번호

 

 5. SPAN 포트 태핑

SPAN(Switch Port Analyzer) :(=Port Roving) 각 포트에 전송되는 데이터를 미러링 하는 포트에도 똑같이 보내주는 포트 미러링(Port Mirroring)을 이용한 것이다.

주로 IDS를 설치하 때 많이 사용하며 일부 스위치는 오류나 VALN 정보를 필터링해서 모니터 포트에 오류나 VLAN 정보가 나타나지 않기도 한다.

문제가 많아서 태핑(허브와 같이 포트를 모니터링하기 위한 장비[=Splitter])을 이용해서 효과적인 모니터링 한다.

 

04 - 스니핑 공격의 대응책

 1. 스니핑 대응책

 - 크게 능동적 수동적으로 나뉜다.

  1.1 능동적인 대응책 - 스니퍼 탐지

 - 스니핑 공격을 인지하기 어려워 보안 철저 후 프러미스큐어스 모드에서 작동하는 패킷에 대한 IP 주소와 MAC 주소에 따른 탐색

 

  • 1. ping을 이용한 탐지

의심이 가는 ping을 보낼 때 네트워크에 존재하지 않는 MAC 주소를 위장하여 보내는데 ICMP Echo Reply를 받으면 해당 호스트가 스니핑을 하고 있는 것

 

  • 2. ARP를 이용한 탐지

ping과 유사한 방법으로 위조된 ARP Request를 스니퍼임을 확인하고자 하는 시스템에 보내면 응답으로 Response를 보내게 되고 이를 통해 프러미스큐어스 모드로 동작 중인 스니퍼임을 확인

 

  • 3. DNS를 이용한 탐지

스니핑 프로그램은 스니핑 한 시스템의 IP 주소에 Inverse-DNS lookup을 수행하는데 이는 원격과 로컬에서 모두 사용할 수 있는 방법으로 테스트 대상 네트워크로 Ping Sweep을 보내고 들어오는 Inverse-DNS lookup을 감시하여 탐지

 

  • 4. 유인을 이용한 탐지

스니퍼는 계정과 패스워드의 획득이 주된 목적이며 이를 이용해 관리자가 가짜 계정과 패스워드를 계속 뿌려 스니퍼가 이를 이용해 가짜 계적에 접속하면 이를 탐지

 

  • 5. ARP watch를 이용한 탐지

초기에 MAC 주소와 IP 주소의 매칭 값을 저장하고 ARP 트래픽을 모니터링하여 이를 변하게 하는 패킷이 탐지되면 관리자에게 메일로 알려주는 툴이다.

 

nmap을 이용하면 특정 시스템이 스니퍼로 동작하고 있는지 확인 가능

nmap --script=sniffer-detect 192.168.0.1

 

  1.2 수동적인 대응책 - 암호화

  • 1) SSL

SSL(Secure Socket Layer) : 암호화된 웹 서핑을 가능하게 해 준다. 40비트, 128비트, 256비트 암호화를 사용하며 한국 금융 거래 사이트의 대부분은 128비트 암호화 방법을 사용하고 있다.

 

  • 2) PGP, PEM, S/MIME : 모두 이메일을 전송할 때 사용하는 암호화방법
  • 3) SSH(Secure SHell) : 텔넷과 같은 서비스 암호화를 위해 사용하는 것
  • 4) VPN(Virtual Private Network) : 원래 T1과 같은 사설 네트워크를 설치하는데 많은 비용이 들기 때문에 한 회선을 여러 회사가 공유하여 비용을 절감하려는 목적으로 개발됨. 시스템이 해킹을 당할 경우 암호화되기 이전에 데이터가 스니핑 될 수 있다.

 

연습문제

1. 다음 중 스니핑 툴이 아닌 것은 무엇인가? 3 Ethereal

 

2. 다음 중 패킷의 흐름을 바꾸기 위한 공격이 아닌 것은 무엇인가? 4 SPAN 포트 및 태핑

 

3. ARP 스푸핑은 몇 계층 공격에 해당하는가? 2 2 계층

 

4. 스니핑에 대한 대책으로 가장 올바른 것은 무엇인가? 1 특수문자 등을 사용하여 패스워드를 설정한다.

 

5. 스위칭 환경에서 스니핑을 하기 위한 방법이 아닌 것은? 4 ICMP source Rrouting

 

6. 스니퍼를 탐지하는 방법이 아닌 것은? 4 TCP 이용

 

7. SSL은 몇 비트와 몇 비트의 암호화 비트를 사용하는가? 2, 4 (40, 128)

 

8. 텔넷 대신 암호화된 세션을 사용하는 것은? 3 SSH

 

9. 프리미스큐어스 모드에 대해 설명하라.

스니핑을 위한 모드 위쪽

 

10. ICMP 리다이렉트에 대해 설명하라.

위쪽

11~13번 위쪽