스니핑 영동대학교스마트 IT 학부 : 컴퓨터와해킹 이호준 hjlee@yd.ac.kr
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 a b a 192.168.0.12 에서 192.168.0.2 로텔넷을통해전달되는모든패킷이보인다. b 192.168.0.12 에서 192.168.0.2 로 FTP 연결을시도했으며계정과패스워드가명시되어출력된다. 15/40
실습 8-4 DSniff 를이용해다양하게공격하기 3 urlsnarf를이용한웹세션스니핑 urlsnarf 4 tcpkill을이용한세션강제종료 ➊ 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 d a b c a 192.168.0.1(gwhost) : 원래의게이트웨이다. 패킷이생성되면공격대상이기본게이트웨이로설정된라우터에서패킷을보낸것처럼스푸핑되어전달된다. b 192.168.0.201(targ_host) : 공격대상의 IP 주소다. c 220.73.139.201(dst_host) : 공격대상이접속하고자하는원격지서버의 IP 주소다. d 192.168.0.2(dummy_host) : 공격자의 IP 주소로 ICMP 리다이렉트패킷이전달되면공격대상은패킷을이주소로전달한다. 25/40
실습 8-6 ICMP 리다이렉트를이용해스니핑하기 5 공격후피공격자시스템확인 route PRINT 6 ICMP 리다이렉트패킷분석 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 : TOS(Type of Service) 와네트워크오류에대한리다이렉트 3 : 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 a b c d a 출발지의 MAC 주소다. b 목적지의 MAC 주소다. c, d 출발지의 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 주소를 Inverse- DNS 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 학부 : 컴퓨터와해킹