1 / 40

스니핑

8. 스니핑. 학습목표 스니핑 공격을 이해한다 . 스니퍼를 설치하고 실행할 수 있다 . 스니핑 공격을 실행할 수 있다 . 스니핑 내용을 이해한다 . 스니퍼를 탐지할 수 있다 . 스니퍼의 공격에 대해 적절한 대책을 세울 수 있다 . 내용 스니핑 공격 스니핑 공격 툴 스위칭 환경에서의 스니핑 스니핑 공격의 대응책. 스니핑 공격. 스니핑 공격 sniff 의 사전적 의미는 ‘ 코를 킁킁거리다’ 스니핑은 코를 킁킁거리듯 데이터 속에서 정보를 찾는 것

Download Presentation

스니핑

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 • 네트워크 관찰 및 관제에도 사용하는 가장 일반적인 스니핑 툴 • TCP Dump는 법원에서 인정하는 툴이라 이 툴을 통해 획득한 증거 자료는 법적 효력이 있음 • 하지만 위조나 변조가 아주 쉽고, 위조와 변조 여부를 알아내기 너무 어려워 컴퓨터로 취득한 자료는 재판 과정에서 직접적인 증거로 인정받기 어려움

  7. 실습 8-2 TCP Dump를 이용해 계정과 패스워드 스니핑하기 • TCP Dump 설치와 실행➊ yum list tcpdump ➋ tcpdump –Xx • 텔넷 접속 telnet 192.168.0.2 실습환경 • 클라이언트 시스템 : 윈도우 XP • 텔넷 서버 시스템 : 리눅스 페도라 12 • 필요 프로그램 : tcpdump  1 2 

  8. 실습 8-2 TCP Dump를 이용해 계정과 패스워드 스니핑하기 • 텔넷 패킷 분석 4-1원격 텔넷 로그인 시 계정 Dump 1/2  4    ➊ 패킷 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가 클라이언트에서 서버로 한 번, 서버에서 클라이언트로 한 번 전송되었다.

  9. 실습 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가 보내진다.

  10. 스니핑 공격 툴 • fragrouter • 스니핑한 패킷을 원래의 주소지로 다시 보내주는 툴로 받은 패킷을 릴레이해줌

  11. 실습 8-3 fragrouter 설치하기 • fragrouter 설치 1-1원격 압축 풀고 ./configure 명령 실행 ➊ tar xvzf fragrouter-1.6.tar.gz ➋ ./configure 1-2make 실행 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를 이용해 다양하게 공격하기 • dsniff의 설치 ➊ yum list dsniff ➋ yum install dsniff.i686 실습환경 • 클라이언트 시스템 : 리눅스 페도라 12 • FTP, 텔넷 서버 시스템 : 리눅스 페도라 12 • 필요 프로그램 : dsniff 패키지 1  

  15. 실습 8-4 DSniff를 이용해 다양하게 공격하기 • dsniff를 이용한 FTP, 텔넷 패스워드 스니핑 dsniff ⓐ192.168.0.12에서 192.168.0.2로 텔넷을 통해 전달되는 모든 패킷이 보인다. ⓑ 192.168.0.12에서 192.168.0.2로 FTP 연결을 시도했으며 계정과 패스워드가 명시되어 출력된다. ⓐ 2 ⓑ

  16. 실습 8-4 DSniff를 이용해 다양하게 공격하기 • urlsnarf를 이용한 웹 세션 스니핑 urlsnarf • tcpkill을 이용한 세션 강제 종료 ➊ tcpkill ➋ tcpkill -i eth0 -4 tcp 3 4  

  17. 스위칭 환경에서의 스니핑 • 스위치 • 모든 포트에 무조건 패킷을 보내 네트워크 대역폭을 낭비하는 것을 막기 위해 개발되었으나 결과적으로 스니퍼를 저지하는 치명적인 장비가 되었음 • ARP 리다이렉트 • 공격자가 라우터라고 속이는 것. 2계층에서 MAC 주소를 속임으로써 패킷 흐름을 바꿈 • 위조된 ARP Reply 패킷을 보내는 방법 사용 • 자신의 MAC 주소가 라우터라며 주기적으로 브로드캐스트 함 • ARP 스푸핑은 호스트 대 호스트 공격이며, ARP 리다이렉트는 랜의 모든 호스트 대 라우터라는 점 외에는 큰 차이가 없음 • 공격자 자신은 원래 라우터의 MAC 주소를 알고 있어야 하며 받은 패킷을 모두 라우터로 다시 릴레이해줘야 함

  18. 실습 8-5 ARP 리다이렉트 공격하기 • 공격 전 공격 대상 시스템 상태 정보 확인 arp –a • ARP 리다이렉트 공격 수행 2-1fragrouter 실행 ./fragrouter -B1 실습환경 • 공격자 시스템 : 리눅스 페도라 12 • 공격 대상 시스템 : 윈도우 XP • 필요 프로그램 : fragrouter, dsniff 패키지 1 2

  19. 실습 8-5 ARP 리다이렉트 공격하기 2-2fragrouter 실행 arpspoof -i eth0 -t 192.168.0.201 192.168.0.1 2-3fragrouter 실행 결과 확인

  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 리다이렉트를 이용해 스니핑하기 • ICMP 리다이렉트 공격 수행 4-1외부 웹 사이트에 대한 ping 결과 ping www.mk.co.kr 4-2ICMP 리다이렉트 공격 ./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 리다이렉트 패킷이 전달되면 공격 대상은 패킷을 이 주소로 전달한다.  4 ⓐ ⓑ ⓒ ⓓ

  26. 실습 8-6 ICMP 리다이렉트를 이용해 스니핑하기 • 공격 후 피공격자 시스템 확인 route PRINT • ICMP 리다이렉트 패킷 분석 tcpdump -xX host 192.168.0.201 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 주소 : 리다이렉트할 패킷의 목적지 주소가 들어간다. 여기서는 192.168.0.201로 설정되어 있다.

  30. 스위칭 환경에서의 스니핑 • 스위치 재밍 • 스위치 저장 용량 이상의 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 ⓐ 출발지의MAC 주소다. ⓑ목적지의MAC 주소다. ⓒ, ⓓ출발지의 IP 주소와 포트 번호, 목적지의 IP 주소와 포트 번호다. 여기서는 출발지와 목적지의 주소가 모두 0.0.0.0으로 설정되어 있다. ⓐ ⓑ ⓒ ⓓ 2

  33. 스니핑 공격의 대응책 • 스니퍼 탐지 • ping을 이용한 방법 • 대부분의 스니퍼는 일반 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) • 텔넷과 같은 서비스의 암호화 • 텔넷과 같은 서비스의 암호화를 위해 사용, 이미 설치한 OpenSSL 라이브러리가 지원 • DSniff를 이용해 공격하면 SSH를 이용하더라도 공격당할 수 있음. 그러나SSH를 이용한 암호화 프로토콜이 계속 발전하고 있으며 텔넷보다는 훨씬 더 안전 • VPN(Virtual Private Network) • 원래 T1과 같은 사설 네트워크를 설치하는 데 많은 비용이 들기 때문에 한 회선을 여러 회사가 공유하여 비용을 절감하려는 목적으로 개발 • 전송되는 데이터들이 각 회사의 사내 정보며 기밀성이 요구되어, VPN은 자연스레 암호화된 트래픽을 제공 • 그러나 VPN을 제공하는 시스템이 해킹당할 경우 암호화되기 이전에 데이터가 스니핑될 수 있음

  36. 실습 8-8 스니퍼 찾아보기 • hunt 설치 ➊ yum list hunt ➋ yum install hunt 실습환경 • 스니퍼 시스템 : 리눅스 페도라 12 • 탐지 시스템 : 리눅스 페도라 12 • 필요 프로그램 : hunt  1 

  37. 실습 8-8 스니퍼 찾아보기 • 스니퍼의 실행 tcpdump -v -X • hunt를 이용한 스니퍼 탐지 ➊ hunt ➋ [u]입력  2 3

  38. 실습 8-8 스니퍼 찾아보기 • ARP 패킷을 통한 스니핑 탐지 패킷 확인 [그림 8-37]hunt가 보낸 ARP 패킷 4 [그림 8-38] 프러미스큐어스 시스템이 보낸 ARP 응답 패킷

  39. 실습 8-8 스니퍼 찾아보기 • ICMP 패킷을 통한 스니핑 탐지 패킷 확인 4 [그림 8-39]hunt가 보낸 ICMP 패킷 [그림 8-40] 프러미스큐어스 시스템이 보낸 ICMP 응답 패킷

More Related