Download presentation
Presentation is loading. Please wait.
1
8 스니핑
2
학습목표 내용 스니핑 공격을 이해한다. 스니퍼를 설치하고 실행할 수 있다. 스니핑 공격을 실행할 수 있다.
스니핑 내용을 이해한다. 스니퍼를 탐지할 수 있다. 스니퍼의 공격에 대해 적절한 대책을 세울 수 있다. 내용 스니핑 공격 스니핑 공격 툴 스위칭 환경에서의 스니핑 스니핑 공격의 대응책
3
스니핑 공격 스니핑 공격 sniff의 사전적 의미는 ‘코를 킁킁거리다’ 스니핑은 코를 킁킁거리듯 데이터 속에서 정보를 찾는 것
랜 카드로 들어오는 모든 전기 신호를 읽어 들여 다른 이의 패킷을 관찰 아무 것도 하지 않고 조용히 있어도 충분하므로 수동적(passive) 공격이라고도 함
4
스니핑 공격 프러미스큐어스(Promiscuous) 모드
모든 패킷은 2계층 정보인 MAC 주소와 3계층 정보인 IP 주소를 가지고 있음 네트워크에서 각 PC는 패킷에 기록된 MAC 주소와 IP 주소를 통해 자신에게 제대로 전 달됐는지 여부를 알 수 있음 네트워크 카드로 흘러 들어온 패킷이 PC의 IP 주소, MAC 주소와 일치하면 패킷을 분석 하여 운영체제에 해당 패킷을 넘겨주고, 다르면 버리는 것이 정상 이와 달리, 패킷의 MAC 주소와 IP 주소와 관계없이 모든 패킷을 스니퍼에 넘겨주는 모 드가 프러미스큐어스 모드 기본적으로 소프트웨어적인 제어지만 하드웨어적으로 처리하는 것도 있음. bypass 모드라고 부름
5
실습 8-1 랜 인터페이스를 프러미스큐어스 모드로 전환하기
랜 카드 확인 ifconfig 프러미스큐어스 모드로 변경과 확인 ➊ ifconfig eth0 promisc ➋ifconfig • 공격자 시스템 : 리눅스 페도라 12 실습환경 1 2
6
스니핑 공격 툴 TCP Dump 네트워크 관찰 및 관제에도 사용하는 가장 일반적인 스니핑 툴
하지만 위조나 변조가 아주 쉽고, 위조와 변조 여부를 알아내기 너무 어려워 컴퓨터로 취득한 자료는 재판 과정에서 직접적인 증거로 인정받기 어려움
7
실습 8-2 TCP Dump를 이용해 계정과 패스워드 스니핑하기
TCP Dump 설치와 실행 ➊ yum list tcpdump ➋ tcpdump –Xx 텔넷 접속 telnet • 클라이언트 시스템 : 윈도우 XP • 텔넷 서버 시스템 : 리눅스 페도라 12 • 필요 프로그램 : tcpdump 실습환경 1 2
8
실습 8-2 TCP Dump를 이용해 계정과 패스워드 스니핑하기
텔넷 패킷 분석 4-1 원격 텔넷 로그인 시 계정 Dump 1/2 4 ➊ 패킷 1 : (클라이언트)에서 (서버)의 23번 포트로 wishfree 중 첫 번째 글자인w가 P(acket) 플래그로 전달되었다. ➋ 패킷 2 : (클라이언트)의 23번 포트에서 (서버)로 한 글자가 역시 P 플래그로 전달되었다. ➌ ➍ 패킷 3, 4 : wishfree 중 두 번째 글자인 i가 클라이언트에서 서버로 한 번, 서버에서 클라이언트로 한 번 전송되었다.
9
실습 8-2 TCP Dump를 이용해 계정과 패스워드 스니핑하기
➊ 패킷 1 : (서버)의 텔넷 포트에서 (클라이언트)로 패스워드를 입력하라는 메시지를 보내고 있다. [그림 8-5]의‘Password: ’부분으로 출력된 것이다. ➋ 패킷 2 : (클라이언트)에서 (서버)로 패스워드의 첫 글자인 d가 보내진다. ➌ 패킷 3 : 패스워드는 계정과 달리 서버에서 클라이언트로 패킷이 재전송되지는 않는다. ➍ 패킷 4 : (클라이언트)에서 (서버)로 패스워드의 두 번째 글자인 i가 보내진다.
10
스니핑 공격 툴 fragrouter 스니핑한 패킷을 원래의 주소지로 다시 보내주는 툴로 받은 패킷을 릴레이해줌
11
실습 8-3 fragrouter 설치하기 실습환경 fragrouter 설치
1-1 원격 압축 풀고 ./configure 명령 실행 ➊ tar xvzf fragrouter-1.6.tar.gz ➋ ./configure 1-2 make 실행 make • 공격자 시스템 : 리눅스 페도라 12 • 필요 프로그램 : fragrouter 1.6 실습환경 1
12
실습 8-3 fragrouter 설치하기 fragrouter 실행 /fragrouter 2
13
스니핑 공격 툴 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
14
실습 8-4 DSniff를 이용해 다양하게 공격하기
➊ yum list dsniff ➋ yum install dsniff.i686 • 클라이언트 시스템 : 리눅스 페도라 12 • FTP, 텔넷 서버 시스템 : 리눅스 페도라 12 • 필요 프로그램 : dsniff 패키지 실습환경 1
15
실습 8-4 DSniff를 이용해 다양하게 공격하기
dsniff를 이용한 FTP, 텔넷 패스워드 스니핑 dsniff ⓐ 에서 로 텔넷을 통해 전달되는 모든 패킷이 보인다. ⓑ 에서 로 FTP 연결을 시도했으며 계정과 패스워드가 명시되어 출력된다. 2 ⓐ ⓑ
16
실습 8-4 DSniff를 이용해 다양하게 공격하기
urlsnarf를 이용한 웹 세션 스니핑 urlsnarf tcpkill을 이용한 세션 강제 종료 ➊ tcpkill ➋ tcpkill -i eth0 -4 tcp 3 4
17
스니핑 환경에서의 스니핑 스위치 ARP 리다이렉트
모든 포트에 무조건 패킷을 보내 네트워크 대역폭을 낭비하는 것을 막기 위해 개발되었 으나 결과적으로 스니퍼를 저지하는 치명적인 장비가 되었음 ARP 리다이렉트 공격자가 라우터라고 속이는 것. 2계층에서 MAC 주소를 속임으로써 패킷 흐름을 바꿈 위조된 ARP Reply 패킷을 보내는 방법 사용 자신의 MAC 주소가 라우터라며 주기적으로 브로드캐스트 함 ARP 스푸핑은 호스트 대 호스트 공격이며, ARP 리다이렉트는 랜의 모든 호스트 대 라 우터라는 점 외에는 큰 차이가 없음 공격자 자신은 원래 라우터의 MAC 주소를 알고 있어야 하며 받은 패킷을 모두 라우터 로 다시 릴레이해줘야 함
18
실습 8-5 ARP 리다이렉트 공격하기 실습환경 공격 전 공격 대상 시스템 상태 정보 확인 arp –a
2-1 fragrouter 실행 ./fragrouter -B1 • 공격자 시스템 : 리눅스 페도라 12 • 공격 대상 시스템 : 윈도우 XP • 필요 프로그램 : fragrouter, dsniff 패키지 실습환경 1 2
19
실습 8-5 ARP 리다이렉트 공격하기 2-2 fragrouter 실행 arpspoof -i eth0 -t fragrouter 실행 결과 확인
20
실습 8-5 ARP 리다이렉트 공격하기 ARP 리다이렉트 공격 수행 결과 확인 arp -a 3
21
스니핑 환경에서의 스니핑 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로 전달한다.
22
실습 8-6 ICMP 리다이렉트를 이용해 스니핑하기
ICMP 리다이렉트 공격 툴 컴파일 ➊ gcc -o icmp_redir icmp_redir.c ➋ ./icmp_redir • 공격자 시스템 : 리눅스 페도라 12 • 공격 대상 시스템 : 윈도우 XP • 필요 프로그램 : icmp_redir.c 실습환경 1
23
실습 8-6 ICMP 리다이렉트를 이용해 스니핑하기
공격 전 피공격 시스템 라우팅 테이블 확인 route PRINT 2
24
실습 8-6 ICMP 리다이렉트를 이용해 스니핑하기
패킷 릴레이 실행 ./fragrouter -B1 3
25
실습 8-6 ICMP 리다이렉트를 이용해 스니핑하기
4-1 외부 웹 사이트에 대한 ping 결과 ping 4-2 ICMP 리다이렉트 공격 ./icmp_redir ⓐ (gwhost) : 원래의 게이트웨이다. 패킷이 생성되면 공격 대상이 기본 게이트웨이로 설정된 라우터에서 패킷을 보낸 것처럼 스푸핑되어 전달된다. ⓑ (targ_host) : 공격 대상의 IP 주소다. ⓒ (dst_host) : 공격 대상이 접속하고자 하는 원격지 서버의 IP 주소다. ⓓ (dummy_host) : 공격자의 IP 주소로 ICMP 리다이렉트 패킷이 전달되면 공격 대상은 패킷을 이 주소로 전달한다. 4 ⓐ ⓑ ⓒ ⓓ
26
실습 8-6 ICMP 리다이렉트를 이용해 스니핑하기
공격 후 피공격자 시스템 확인 route PRINT ICMP 리다이렉트 패킷 분석 tcpdump -xX host 5 6
27
ICMP 패킷
28
ICMP 패킷
29
ICMP 패킷 • Type : ICMP 패킷의 종류를 나타내며, 5번은 ICMP 리다이렉트 패킷임을 의미한다.
• Code : ICMP 리다이렉트에 대한 코드다. 각 코드의 의미는 다음과 같다. 0 : 네트워크 오류에 대한 리다이렉트 1 : 호스트 접근 오류에 대한 리다이렉트 2 : TOS(Type of Service)와 네트워크 오류에 대한 리다이렉트 3 : TOS와 호스트 접근 오류에 대한 리다이렉트 • Checksum : 패킷의 오류 존재 여부를 확인하기 위한 것이다. • IP Address : 리다이렉트할 다른 라우터의 IP다. 여기서는 공격자의 IP가 된다. • IP Header + 64비트 : IP 헤더의 128비트와 64비트의 데이터그램의 앞부분이 들어간다. • 목적지 IP 주소 : 리다이렉트할 패킷의 목적지 주소가 들어간다. 여기서는 로 설정되어 있다.
30
스니핑 환경에서의 스니핑 스위치 재밍 SPAN 포트 및 태핑
스위치 저장 용량 이상의 MAC 주소를 보내 스위치 기능을 잃고 더미 허브처럼 작동하 게 만듦. MAC 테이블을 위한 캐시 공간에 버퍼 오버플로우 공격 실시. MAC 테이블 저장 용량을 넘으면 스위치는 원래 기능을 잃어 더미 허브처럼 작동. Fail Close 기능이 적용되지 않 기 때문 SPAN 포트 및 태핑 스위치에서 스니핑을 하기 위해 특별히 설정하고 장치 SPAN(Switch Port Analyzer)은 포트 미러링(Port Mirroring)을 이용 포트 미러링은 각 포트에 전송되는 데이터를 미러링하고 있는 포트에도 똑같이 보내주는 것 주로 IDS를 설치할 때 많이 사용 하드웨어적으로 해결하는 방법은 태핑. 허브와 같이 포트를 모니터링하기 위한 장비로 Splitter(스플리터)라고 부르기도 함
31
실습 8-7 macof로 스위치 재밍시키기 실습환경 macof 사용법 확인 macof /?
• 공격자 시스템 : 리눅스 페도라 12 • 공격 대상 시스템 : 스위치 • 필요 프로그램 : macof(dsniff를 설치하면 자동으로 설치됨) 실습환경 1
32
실습 8-7 macof로 스위치 재밍시키기 ⓐ ⓑ ⓒ ⓓ macof 공격 macof 2 ⓐ 출발지의MAC 주소다.
ⓒ, ⓓ 출발지의 IP 주소와 포트 번호, 목적지의 IP 주소와 포트 번호다. 여기서는 출발지와 목적지의 주 소가 모두 으로 설정되어 있다. 2 ⓐ ⓑ ⓒ ⓓ
33
스니핑 공격의 대응책 스니퍼 탐지 ping을 이용한 방법 ARP를 이용한 방법 DNS 방법 ARP watch
대부분의 스니퍼는 일반 TCP/IP에서 동작하기 때문에 Request를 받으면 Response를 전달 의심이 드는 호스트에 ping을 보내는데, 네트워크에 존재하지 않는 MAC 주소를 위장하여 보냄 ICMP Echo Reply를 받으면 해당 호스트가 스니핑을 하고 있는 것 ARP를 이용한 방법 위조된 ARP Request를 보냈을 때 ARP Response가 오면 프러미스큐어스 모드로 설정되어 있는 것 DNS 방법 일반적으로 스니핑 프로그램은 사용자의 편의를 위해 스니핑한 시스템의 IP 주소를 Inverse- DNS lookup 수행 원격과 로컬에서 모두 사용할 수 있는 방법으로, 테스트 대상 네트워크로 Ping Sweep을 보내고 들어오는 Inverse-DNS lookup을 감시하여 스니퍼 탐지 ARP watch 초기에 MAC 주소와 IP 주소의 매칭 값을 저장하고 ARP 트래픽을 모니터링하여 이를 변하게 하는 패킷이 탐지되면 관리자에게 메일로 알려주는 툴 대부분의 공격 기법이 위조된 ARP를 사용하기 때문에 이를 쉽게 탐지할 수 있음
34
스니핑 공격의 대응책 암호화 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 사용
35
스니핑 공격의 대응책 암호화 SSH(Secure Shell) VPN(Virtual Private Network)
텔넷과 같은 서비스의 암호화 텔넷과 같은 서비스의 암호화를 위해 사용, 이미 설치한 OpenSSL 라이브러리가 지원 DSniff를 이용해 공격하면 SSH를 이용하더라도 공격당할 수 있음. 그러나SSH를 이용한 암호화 프로토콜이 계속 발전하고 있으며 텔넷보다는 훨씬 더 안전 VPN(Virtual Private Network) 원래 T1과 같은 사설 네트워크를 설치하는 데 많은 비용이 들기 때문에 한 회선을 여러 회사가 공 유하여 비용을 절감하려는 목적으로 개발 전송되는 데이터들이 각 회사의 사내 정보며 기밀성이 요구되어, VPN은 자연스레 암호화된 트래 픽을 제공 그러나 VPN을 제공하는 시스템이 해킹당할 경우 암호화되기 이전에 데이터가 스니핑될 수 있음
36
VPN VPN: virtual private network, 가상 사설망 > 공중망
가상의 전용선을 구축하는 기술 - 인터넷과 같은 공용망에서 터널링과 암호화기법을 사용하여 VPN 구성 - 대표적인 VPN 프로토콜 : IPsec, SSL
37
실습 8-8 스니퍼 찾아보기 실습환경 hunt 설치 ➊ yum list hunt ➋ yum install hunt
• 스니퍼 시스템 : 리눅스 페도라 12 • 탐지 시스템 : 리눅스 페도라 12 • 필요 프로그램 : hunt 실습환경 1
38
실습 8-8 스니퍼 찾아보기 스니퍼의 실행 tcpdump -v -X
hunt를 이용한 스니퍼 탐지 ➊ hunt ➋ [u]입력 2 3
39
실습 8-8 스니퍼 찾아보기 ARP 패킷을 통한 스니핑 탐지 패킷 확인 4 [그림 8-37] hunt가 보낸 ARP 패킷
40
실습 8-8 스니퍼 찾아보기 ICMP 패킷을 통한 스니핑 탐지 패킷 확인 4 [그림 8-39] hunt가 보낸 ICMP 패킷
Similar presentations