Transcript 스니핑

스니핑
IT CookBook, 정보 보안 개론과 실습 : 네트워크 해킹과 보안(개정
판)
Contents
 학습목표
 스니핑 공격을 이해한다.
 스니퍼를 설치하고 실행할 수 있다.
 스니핑 공격을 실행할 수 있다.
 스니핑 내용을 이해한다.
 스니퍼를 탐지할 수 있다.
 스니퍼의 공격에 대해 적절한 대책을 세울 수 있다.
 내용
 스니핑 공격
 스니핑 공격 툴
 스위칭 환경에서의 스니핑
 스니핑 공격의 대응책
2/40
스니핑 공격
 스니핑 공격
 sniff의 사전적 의미는 ‘코를 킁킁거리다’
 스니핑은 코를 킁킁거리듯 데이터 속에서 정보를 찾는 것
• 랜 카드로 들어오는 모든 전기 신호를 읽어 들여 다른 이의 패킷을 관찰
• 아무 것도 하지 않고 조용히 있어도 충분하므로 수동적(passive) 공격이라고도 함
3/40
스니핑 공격
 프러미스큐어스(Promiscuous) 모드
 모든 패킷은 2계층 정보인 MAC 주소와 3계층 정보인 IP 주소를 가지고 있음
 네트워크에서 각 PC는 패킷에 기록된 MAC 주소와 IP 주소를 통해 자신에게 제대로 전
달됐는지 여부를 알 수 있음
 네트워크 카드로 흘러 들어온 패킷이 PC의 IP 주소, MAC 주소와 일치하면 패킷을 분석
하여 운영체제에 해당 패킷을 넘겨주고, 다르면 버리는 것이 정상
 이와 달리, 패킷의 MAC 주소와 IP 주소와 관계없이 모든 패킷을 스니퍼에 넘겨주는 모
드가 프러미스큐어스 모드
 기본적으로 소프트웨어적인 제어지만 하드웨어적으로 처리하는 것도 있음.
 bypass 모드라고 부름
4/40
실습 8-1 랜 인터페이스를 프러미스큐어스 모드로 전환하기
실습환경
• 공격자 시스템 : 리눅스 페도라 12

1 랜 카드 확인
ifconfig
2 프러미스큐어스 모드로 변경과 확인


➊ ifconfig eth0 promisc ➋ifconfig

5/40
스니핑 공격 툴
 TCP Dump
 네트워크 관찰 및 관제에도 사용하는 가장 일반적인 스니핑 툴
 TCP Dump는 법원에서 인정하는 툴이라 이 툴을 통해 획득한 증거 자료는 법적 효력이
있음
 하지만 위조나 변조가 아주 쉽고, 위조와 변조 여부를 알아내기 너무 어려워 컴퓨터로
취득한 자료는 재판 과정에서 직접적인 증거로 인정받기 어려움
6/40
실습 8-2 TCP Dump를 이용해 계정과 패스워드 스니핑하기
실습환경
• 클라이언트 시스템 : 윈도우 XP
• 텔넷 서버 시스템 : 리눅스 페도라 12
• 필요 프로그램 : tcpdump
1 TCP Dump 설치와 실행

➊ yum list tcpdump ➋ tcpdump –Xx


2 텔넷 접속 telnet 192.168.0.2

7/40
실습 8-2 TCP Dump를 이용해 계정과 패스워드 스니핑하기
4 텔넷 패킷 분석

4-1 원격 텔넷 로그인 시 계정 Dump 1/2




➊ 패킷 1 : 192.168.0.12(클라이언트)에서 192.168.0.2(서버)의 23번 포트로 wishfree 중 첫 번째 글
자인w가 P(acket) 플래그로 전달되었다.
➋ 패킷 2 : 192.168.0.12(클라이언트)의 23번 포트에서 192.168.0.2(서버)로 한 글자가 역시 P 플래
그로 전달되었다.
➌ ➍ 패킷 3, 4 : wishfree 중 두 번째 글자인 i가 클라이언트에서 서버로 한 번, 서버에서 클라이언트
로 한 번 전송되었다.
8/40
실습 8-2 TCP Dump를 이용해 계정과 패스워드 스니핑하기
4-2 원격 텔넷 로그인 시 패스워드 Dump 2/2




➊ 패킷 1 : 192.168.0.2(서버)의 텔넷 포트에서 192.168.0.12(클라이언트)로 패스워드를 입력하라는
메시지를 보내고 있다. [그림 8-5]의‘Password: ’부분으로 출력된 것이다.
➋ 패킷 2 : 192.168.0.12(클라이언트)에서 192.168.0.2(서버)로 패스워드의 첫 글자인 d가 보내진다.
➌ 패킷 3 : 패스워드는 계정과 달리 서버에서 클라이언트로 패킷이 재전송되지는 않는다.
➍ 패킷 4 : 192.168.0.12(클라이언트)에서 192.168.0.2(서버)로 패스워드의 두 번째 글자인 i가 보내
진다.
9/40
스니핑 공격 툴
 fragrouter
 스니핑한 패킷을 원래의 주소지로 다시 보내주는 툴로 받은 패킷을 릴레이해줌
10/40
실습 8-3 fragrouter 설치하기
실습환경
• 공격자 시스템 : 리눅스 페도라 12
• 필요 프로그램 : fragrouter 1.6
1
 fragrouter 설치
1-1 원격 압축 풀고 ./configure 명령 실행
➊ tar xvzf fragrouter-1.6.tar.gz ➋ ./configure

1-2 make 실행
make
11/40
실습 8-3 fragrouter 설치하기
2 fragrouter 실행

./fragrouter
12/40
스니핑 공격 툴
 Dsniff
 계정 및 패스워드 스니핑 자동화 툴
 dsniff가 읽어낼 수 있는 패킷
• ftp, telnet, http, pop, nntp, imap, snmp, ldap, rlogin, rip, ospf, pptp, ms-chap, nfs, yp/nis+,
socks, x11, cvs, IRC, ATM, ICQ, PostageSQL, Citrix ICA, Symantec pcAnywhere, M S SQL,
auth, info
13/40
실습 8-4 DSniff를 이용해 다양하게 공격하기
실습환경
• 클라이언트 시스템 : 리눅스 페도라 12
• FTP, 텔넷 서버 시스템 : 리눅스 페도라 12
• 필요 프로그램 : dsniff 패키지
1 dsniff의 설치

➊ yum list dsniff
➋ yum install dsniff.i686


14/40
실습 8-4 DSniff를 이용해 다양하게 공격하기

2 dsniff를 이용한 FTP, 텔넷 패스워드 스니핑
dsniff
ⓐ
ⓑ
ⓐ 192.168.0.12에서 192.168.0.2로 텔넷을 통해 전달되는 모든 패킷이 보인다.
ⓑ 192.168.0.12에서 192.168.0.2로 FTP 연결을 시도했으며 계정과 패스워드가 명시되어 출력된다.
15/40
실습 8-4 DSniff를 이용해 다양하게 공격하기

3 urlsnarf를 이용한 웹 세션 스니핑

4 tcpkill을 이용한 세션 강제 종료
urlsnarf
➊ tcpkill ➋ tcpkill -i eth0 -4 tcp


16/40
스위칭 환경에서의 스니핑
 스위치
 모든 포트에 무조건 패킷을 보내 네트워크 대역폭을 낭비하는 것을 막기 위해 개발되었
으나 결과적으로 스니퍼를 저지하는 치명적인 장비가 되었음
 ARP 리다이렉트
 공격자가 라우터라고 속이는 것. 2계층에서 MAC 주소를 속임으로써 패킷 흐름을 바꿈
 위조된 ARP Reply 패킷을 보내는 방법 사용
• 자신의 MAC 주소가 라우터라며 주기적으로 브로드캐스트 함
 ARP 스푸핑은 호스트 대 호스트 공격이며, ARP 리다이렉트는 랜의 모든 호스트 대 라
우터라는 점 외에는 큰 차이가 없음
 공격자 자신은 원래 라우터의 MAC 주소를 알고 있어야 하며 받은 패킷을 모두 라우터
로 다시 릴레이해줘야 함
17/40
실습 8-5 ARP 리다이렉트 공격하기
실습환경
• 공격자 시스템 : 리눅스 페도라 12
• 공격 대상 시스템 : 윈도우 XP
• 필요 프로그램 : fragrouter, dsniff 패키지
1 공격 전 공격 대상 시스템 상태 정보 확인

arp –a
2 ARP 리다이렉트 공격 수행

2-1 fragrouter 실행 ./fragrouter -B1
18/40
실습 8-5 ARP 리다이렉트 공격하기
2-2 fragrouter 실행 arpspoof -i eth0 -t 192.168.0.201 192.168.0.1
2-3 fragrouter 실행 결과 확인
19/40
실습 8-5 ARP 리다이렉트 공격하기

3 ARP 리다이렉트 공격 수행 결과 확인
arp -a
20/40
스니핑 환경에서의 스니핑
 ICMP 리다이렉트
 3계층에서 스니핑 시스템이 네트워크에 존재하는 또 다른 라우터라고 알림으로써 패킷
의 흐름을 바꿈. 아래 개념도에서 공격자가 라우터 B가 되는 것.
 ICMP 리다이렉트 패킷도 공격 대상에 보낸 후 라우터 A에 다시 릴레이시켜주면 모든
패킷을 스니핑할 수 있음
 3계층 공격이므로 로컬 랜이 아니더라도 가능
➊ 호스트 A에 라우터 A가 기본 라우터로 설정
되어 있기 때문에, 호스트 A가 원격 호스트
B로 데이터를 보낼 때 패킷을 라우터A로
보낸다.
➋ 라우터 A는 호스트 B로 보내는 패킷을 수신
하고 라우팅 테이블을 검색하여 자신을 이
용하는 것보다 라우터B를 이용하는 것이 더
효율적이라고 판단하여 해당 패킷을 라우터
B로 보낸다.
➌ 라우터 A는 호스트 B로 향하는 패킷을 호스
트 A가 자신에게 다시 전달하지 않도록, 호
스트 A에 ICMP 리다이렉트 패킷을 보내서
호스트 A가 호스트 B로 보내는 패킷이 라
우터 B로 바로 향하도록 한다.
➍ 호스트 A는 라우팅 테이블에 호스트 B에 대
한 값을 추가하고, 호스트 B로 보내는 패킷
은 라우터B로 전달한다.
21/40
실습 8-6 ICMP 리다이렉트를 이용해 스니핑하기
실습환경
• 공격자 시스템 : 리눅스 페도라 12
• 공격 대상 시스템 : 윈도우 XP
• 필요 프로그램 : icmp_redir.c
1 ICMP 리다이렉트 공격 툴 컴파일

➊ gcc -o icmp_redir icmp_redir.c ➋ ./icmp_redir


22/40
실습 8-6 ICMP 리다이렉트를 이용해 스니핑하기
2 공격 전 피공격 시스템 라우팅 테이블 확인

route PRINT
23/40
실습 8-6 ICMP 리다이렉트를 이용해 스니핑하기
3 패킷 릴레이 실행

./fragrouter -B1
24/40
실습 8-6 ICMP 리다이렉트를 이용해 스니핑하기
4 ICMP 리다이렉트 공격 수행

4-1 외부 웹 사이트에 대한 ping 결과
ping www.mk.co.kr

4-2 ICMP 리다이렉트 공격
./icmp_redir 192.168.0.1 192.168.0.201 220.73.139.201 192.168.0.2
ⓐ
ⓑ
ⓒ
ⓓ
ⓐ 192.168.0.1(gwhost) : 원래의 게이트웨이다. 패킷이 생성되면 공격 대상이 기본 게이트웨이로 설정된
라우터에서 패킷을 보낸 것처럼 스푸핑되어 전달된다.
ⓑ 192.168.0.201(targ_host) : 공격 대상의 IP 주소다.
ⓒ 220.73.139.201(dst_host) : 공격 대상이 접속하고자 하는 원격지 서버의 IP 주소다.
ⓓ 192.168.0.2(dummy_host) : 공격자의 IP 주소로 ICMP 리다이렉트 패킷이 전달되면 공격 대상은 패킷
을 이 주소로 전달한다.
25/40
실습 8-6 ICMP 리다이렉트를 이용해 스니핑하기
5 공격 후 피공격자 시스템 확인

6 ICMP 리다이렉트 패킷 분석

route PRINT
tcpdump -xX host 192.168.0.201
26/40
ICMP 패킷
27/40
ICMP 패킷
28/40
ICMP 패킷
• Type : ICMP 패킷의 종류를 나타내며, 5번은 ICMP 리다이렉트 패킷임을 의미한다.
• Code : ICMP 리다이렉트에 대한 코드다. 각 코드의 의미는 다음과 같다.
0
1
2
3
•
•
•
•
:
:
:
:
네트워크 오류에 대한 리다이렉트
호스트 접근 오류에 대한 리다이렉트
TOS(Type of Service)와 네트워크 오류에 대한 리다이렉트
TOS와 호스트 접근 오류에 대한 리다이렉트
Checksum : 패킷의 오류 존재 여부를 확인하기 위한 것이다.
IP Address : 리다이렉트할 다른 라우터의 IP다. 여기서는 공격자의 IP가 된다.
IP Header + 64비트 : IP 헤더의 128비트와 64비트의 데이터그램의 앞부분이 들어간다.
목적지 IP 주소 : 리다이렉트할 패킷의 목적지 주소가 들어간다. 여기서는 192.168.0.201로 설정되어 있다.
29/40
스위칭 환경에서의 스니핑
 스위치 재밍
 스위치 저장 용량 이상의 MAC 주소를 보내 스위치 기능을 잃고 더미 허브처럼 작동하
게 만듦.
 MAC 테이블을 위한 캐시 공간에 버퍼 오버플로우 공격 실시. MAC 테이블 저장 용량을
넘으면 스위치는 원래 기능을 잃어 더미 허브처럼 작동. Fail Close 기능이 적용되지 않
기 때문
 SPAN 포트 및 태핑
 스위치에서 스니핑을 하기 위해 특별히 설정하고 장치
 SPAN(Switch Port Analyzer)은 포트 미러링(Port Mirroring)을 이용
• 포트 미러링은 각 포트에 전송되는 데이터를 미러링하고 있는 포트에도 똑같이 보내주는 것
 주로 IDS를 설치할 때 많이 사용
 하드웨어적으로 해결하는 방법은 태핑. 허브와 같이 포트를 모니터링하기 위한 장비로
Splitter(스플리터)라고 부르기도 함
30/40
실습 8-7 macof로 스위치 재밍시키기
실습환경
• 공격자 시스템 : 리눅스 페도라 12
• 공격 대상 시스템 : 스위치
• 필요 프로그램 : macof(dsniff를 설치하면 자동으로 설치됨)

1 macof 사용법 확인
macof /?
31/40
실습 8-7 macof로 스위치 재밍시키기

2 macof 공격
ⓐ
macof
ⓑ
ⓒ
ⓓ
ⓐ 출발지의MAC 주소다.
ⓑ 목적지의MAC 주소다.
ⓒ, ⓓ 출발지의 IP 주소와 포트 번호, 목적지의 IP 주소와 포트 번호다. 여기서는 출발지와 목적지의 주
소가 모두 0.0.0.0으로 설정되어 있다.
32/40
스니핑 공격의 대응책
 스니퍼 탐지
 ping을 이용한 방법
• 대부분의 스니퍼는 일반 TCP/IP에서 동작하기 때문에 Request를 받으면 Response를 전달
• 의심이 드는 호스트에 ping을 보내는데, 네트워크에 존재하지 않는 MAC 주소를 위장하여 보냄
• ICMP Echo Reply를 받으면 해당 호스트가 스니핑을 하고 있는 것
 ARP를 이용한 방법
• 위조된 ARP Request를 보냈을 때 ARP Response가 오면 프러미스큐어스 모드로 설정되어 있는
것
 DNS 방법
• 일반적으로 스니핑 프로그램은 사용자의 편의를 위해 스니핑한 시스템의 IP 주소를 InverseDNS lookup 수행
• 원격과 로컬에서 모두 사용할 수 있는 방법으로, 테스트 대상 네트워크로 Ping Sweep을 보내고
들어오는 Inverse-DNS lookup을 감시하여 스니퍼 탐지
 ARP watch
• 초기에 MAC 주소와 IP 주소의 매칭 값을 저장하고 ARP 트래픽을 모니터링하여 이를 변하게 하는
패킷이 탐지되면 관리자에게 메일로 알려주는 툴
• 대부분의 공격 기법이 위조된 ARP를 사용하기 때문에 이를 쉽게 탐지할 수 있음
33/40
스니핑 공격의 대응책
 암호화
 SSL(Secure Socket Layer)
• 웹 서핑이 가능하게 해줌
• 많은 웹 서버 브라우저에 구현되어 있으며 쇼핑몰 사이트에 접속해 물건을 구매하려고 신용카드
정보 등을 보낼 때 사용
• 40비트와 128비트 두 가지 암호화 키가 있는데, 현재 우리나라 금융 거래 사이트 대부분은 40비트
암호화 방법을 사용
 PGP(Pretty Good Privacy)와 PEM(Privacy Enhanced Mail), S/MIME
• 이메일을 전송할 때 사용하는 암호화
• PGP는 내용을 암호화하는 데 IDEA 방법을, IDEA 키와 전자 서명을 암호화하는 데는
RSA(Rivest, Shamir, Addleman) 알고리즘 사용. 기본적으로‘Web of Trust’개념(각 PGP 사용자
가 서로에 대한 신뢰를 가지며, 서로가 서로에 대한 인증을 해주는 제 3자가 되는 것)
• PEM은 PGP와 달리 공개키 암호화 표준(PKCS)을 따르며, CA라는 공인된 인증기관에서 키 관리.
데이터 암호화에는 DES-EDE, 키를 위한 암호화 알고리즘은 RSA, 전자 인증을 위한 해시 함수는
MD2, MD5 사용
• S/MIME은 이메일 표준인 MIME 형식에 암호화 서비스만을 추가한 것. PKCS를 기반으로 만들어
져 있으며, 디지털 인증에 X.509 사용
34/40
스니핑 공격의 대응책
 암호화
 SSH(Secure Shell)
• 텔넷과 같은 서비스의 암호화
• 텔넷과 같은 서비스의 암호화를 위해 사용, 이미 설치한 OpenSSL 라이브러리가 지원
• DSniff를 이용해 공격하면 SSH를 이용하더라도 공격당할 수 있음. 그러나SSH를 이용한 암호화
프로토콜이 계속 발전하고 있으며 텔넷보다는 훨씬 더 안전
 VPN(Virtual Private Network)
• 원래 T1과 같은 사설 네트워크를 설치하는 데 많은 비용이 들기 때문에 한 회선을 여러 회사가 공
유하여 비용을 절감하려는 목적으로 개발
• 전송되는 데이터들이 각 회사의 사내 정보며 기밀성이 요구되어, VPN은 자연스레 암호화된 트래
픽을 제공
• 그러나 VPN을 제공하는 시스템이 해킹당할 경우 암호화되기 이전에 데이터가 스니핑될 수 있음
35/40
실습 8-8 스니퍼 찾아보기
실습환경
• 스니퍼 시스템 : 리눅스 페도라 12
• 탐지 시스템 : 리눅스 페도라 12
• 필요 프로그램 : hunt
1 hunt 설치

➊ yum list hunt ➋ yum install hunt


36/40
실습 8-8 스니퍼 찾아보기
2 스니퍼의 실행

tcpdump -v -X
3 hunt를 이용한 스니퍼 탐지

➊ hunt
➋ [u]입력

37/40
실습 8-8 스니퍼 찾아보기
4 ARP 패킷을 통한 스니핑 탐지 패킷 확인

[그림 8-37] hunt가 보낸 ARP 패킷
[그림 8-38] 프러미스큐어스 시스템이 보낸 ARP 응답 패킷
38/40
실습 8-8 스니퍼 찾아보기
4 ICMP 패킷을 통한 스니핑 탐지 패킷 확인

[그림 8-39] hunt가 보낸 ICMP 패킷
[그림 8-40] 프러미스큐어스 시스템이 보낸 ICMP 응답 패킷
39/40
IT CookBook, 정보 보안 개론과 실습 : 네트워크 해킹과 보안(개정
판)