400 likes | 624 Views
8. 스니핑. 학습목표 스니핑 공격을 이해한다 . 스니퍼를 설치하고 실행할 수 있다 . 스니핑 공격을 실행할 수 있다 . 스니핑 내용을 이해한다 . 스니퍼를 탐지할 수 있다 . 스니퍼의 공격에 대해 적절한 대책을 세울 수 있다 . 내용 스니핑 공격 스니핑 공격 툴 스위칭 환경에서의 스니핑 스니핑 공격의 대응책. 스니핑 공격. 스니핑 공격 sniff 의 사전적 의미는 ‘ 코를 킁킁거리다’ 스니핑은 코를 킁킁거리듯 데이터 속에서 정보를 찾는 것
E N D
8 스니핑
학습목표 • 스니핑 공격을 이해한다. • 스니퍼를 설치하고 실행할 수 있다. • 스니핑 공격을 실행할 수 있다. • 스니핑 내용을 이해한다. • 스니퍼를 탐지할 수 있다. • 스니퍼의 공격에 대해 적절한 대책을 세울 수 있다. • 내용 • 스니핑 공격 • 스니핑 공격 툴 • 스위칭 환경에서의 스니핑 • 스니핑 공격의 대응책
스니핑 공격 • 스니핑 공격 • sniff의 사전적 의미는 ‘코를 킁킁거리다’ • 스니핑은 코를 킁킁거리듯 데이터 속에서 정보를 찾는 것 • 랜 카드로 들어오는 모든 전기 신호를 읽어 들여 다른 이의 패킷을 관찰 • 아무 것도 하지 않고 조용히 있어도 충분하므로 수동적(passive) 공격이라고도 함
스니핑 공격 • 프러미스큐어스(Promiscuous) 모드 • 모든 패킷은 2계층 정보인 MAC 주소와 3계층 정보인 IP 주소를 가지고 있음 • 네트워크에서각 PC는 패킷에 기록된 MAC 주소와 IP 주소를 통해 자신에게 제대로 전달됐는지 여부를 알 수 있음 • 네트워크 카드로 흘러 들어온 패킷이 PC의 IP 주소, MAC 주소와 일치하면 패킷을 분석하여 운영체제에 해당 패킷을 넘겨주고, 다르면 버리는 것이 정상 • 이와 달리, 패킷의 MAC 주소와 IP 주소와 관계없이 모든 패킷을 스니퍼에 넘겨주는 모드가 프러미스큐어스 모드 • 기본적으로 소프트웨어적인 제어지만 하드웨어적으로 처리하는 것도 있음. • bypass 모드라고 부름
실습 8-1 랜 인터페이스를 프러미스큐어스 모드로 전환하기 • 랜 카드 확인 ifconfig • 프러미스큐어스 모드로 변경과 확인 ➊ ifconfig eth0 promisc ➋ifconfig 실습환경 • 공격자 시스템 : 리눅스 페도라 12 1 2
스니핑 공격 툴 • TCP Dump • 네트워크 관찰 및 관제에도 사용하는 가장 일반적인 스니핑 툴 • TCP Dump는 법원에서 인정하는 툴이라 이 툴을 통해 획득한 증거 자료는 법적 효력이 있음 • 하지만 위조나 변조가 아주 쉽고, 위조와 변조 여부를 알아내기 너무 어려워 컴퓨터로 취득한 자료는 재판 과정에서 직접적인 증거로 인정받기 어려움
실습 8-2 TCP Dump를 이용해 계정과 패스워드 스니핑하기 • TCP Dump 설치와 실행➊ yum list tcpdump ➋ tcpdump –Xx • 텔넷 접속 telnet 192.168.0.2 실습환경 • 클라이언트 시스템 : 윈도우 XP • 텔넷 서버 시스템 : 리눅스 페도라 12 • 필요 프로그램 : tcpdump 1 2
실습 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가 클라이언트에서 서버로 한 번, 서버에서 클라이언트로 한 번 전송되었다.
실습 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가 보내진다.
스니핑 공격 툴 • fragrouter • 스니핑한 패킷을 원래의 주소지로 다시 보내주는 툴로 받은 패킷을 릴레이해줌
실습 8-3 fragrouter 설치하기 • fragrouter 설치 1-1원격 압축 풀고 ./configure 명령 실행 ➊ tar xvzf fragrouter-1.6.tar.gz ➋ ./configure 1-2make 실행 make 실습환경 • 공격자 시스템 : 리눅스 페도라 12 • 필요 프로그램 : fragrouter 1.6 1
실습 8-3 fragrouter 설치하기 • fragrouter 실행 ./fragrouter 2
스니핑 공격 툴 • 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
실습 8-4 DSniff를 이용해 다양하게 공격하기 • dsniff의 설치 ➊ yum list dsniff ➋ yum install dsniff.i686 실습환경 • 클라이언트 시스템 : 리눅스 페도라 12 • FTP, 텔넷 서버 시스템 : 리눅스 페도라 12 • 필요 프로그램 : dsniff 패키지 1
실습 8-4 DSniff를 이용해 다양하게 공격하기 • dsniff를 이용한 FTP, 텔넷 패스워드 스니핑 dsniff ⓐ192.168.0.12에서 192.168.0.2로 텔넷을 통해 전달되는 모든 패킷이 보인다. ⓑ 192.168.0.12에서 192.168.0.2로 FTP 연결을 시도했으며 계정과 패스워드가 명시되어 출력된다. ⓐ 2 ⓑ
실습 8-4 DSniff를 이용해 다양하게 공격하기 • urlsnarf를 이용한 웹 세션 스니핑 urlsnarf • tcpkill을 이용한 세션 강제 종료 ➊ tcpkill ➋ tcpkill -i eth0 -4 tcp 3 4
스위칭 환경에서의 스니핑 • 스위치 • 모든 포트에 무조건 패킷을 보내 네트워크 대역폭을 낭비하는 것을 막기 위해 개발되었으나 결과적으로 스니퍼를 저지하는 치명적인 장비가 되었음 • ARP 리다이렉트 • 공격자가 라우터라고 속이는 것. 2계층에서 MAC 주소를 속임으로써 패킷 흐름을 바꿈 • 위조된 ARP Reply 패킷을 보내는 방법 사용 • 자신의 MAC 주소가 라우터라며 주기적으로 브로드캐스트 함 • ARP 스푸핑은 호스트 대 호스트 공격이며, ARP 리다이렉트는 랜의 모든 호스트 대 라우터라는 점 외에는 큰 차이가 없음 • 공격자 자신은 원래 라우터의 MAC 주소를 알고 있어야 하며 받은 패킷을 모두 라우터로 다시 릴레이해줘야 함
실습 8-5 ARP 리다이렉트 공격하기 • 공격 전 공격 대상 시스템 상태 정보 확인 arp –a • ARP 리다이렉트 공격 수행 2-1fragrouter 실행 ./fragrouter -B1 실습환경 • 공격자 시스템 : 리눅스 페도라 12 • 공격 대상 시스템 : 윈도우 XP • 필요 프로그램 : fragrouter, dsniff 패키지 1 2
실습 8-5 ARP 리다이렉트 공격하기 2-2fragrouter 실행 arpspoof -i eth0 -t 192.168.0.201 192.168.0.1 2-3fragrouter 실행 결과 확인
실습 8-5 ARP 리다이렉트 공격하기 • ARP 리다이렉트 공격 수행 결과 확인arp -a 3
스니핑 환경에서의 스니핑 • 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로 전달한다.
실습 8-6 ICMP 리다이렉트를 이용해 스니핑하기 • ICMP 리다이렉트 공격 툴 컴파일 ➊ gcc -o icmp_redir icmp_redir.c ➋ ./icmp_redir 실습환경 • 공격자 시스템 : 리눅스페도라12 • 공격 대상 시스템 : 윈도우 XP • 필요 프로그램 : icmp_redir.c 1
실습 8-6 ICMP 리다이렉트를 이용해 스니핑하기 • 공격 전 피공격 시스템 라우팅 테이블 확인 route PRINT 2
실습 8-6 ICMP 리다이렉트를 이용해 스니핑하기 • 패킷 릴레이 실행 ./fragrouter -B1 3
실습 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 ⓐ ⓑ ⓒ ⓓ
실습 8-6 ICMP 리다이렉트를 이용해 스니핑하기 • 공격 후 피공격자 시스템 확인 route PRINT • ICMP 리다이렉트 패킷 분석 tcpdump -xX host 192.168.0.201 5 6
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로 설정되어 있다.
스위칭 환경에서의 스니핑 • 스위치 재밍 • 스위치 저장 용량 이상의 MAC 주소를 보내스위치 기능을 잃고 더미 허브처럼 작동하게 만듦. • MAC 테이블을 위한 캐시 공간에 버퍼 오버플로우 공격 실시. MAC 테이블 저장 용량을 넘으면 스위치는 원래 기능을 잃어 더미 허브처럼 작동. Fail Close 기능이 적용되지 않기 때문 • SPAN 포트 및 태핑 • 스위치에서 스니핑을 하기 위해 특별히 설정하고 장치 • SPAN(Switch Port Analyzer)은 포트 미러링(Port Mirroring)을 이용 • 포트 미러링은 각 포트에 전송되는 데이터를 미러링하고 있는 포트에도 똑같이 보내주는 것 • 주로 IDS를 설치할 때 많이 사용 • 하드웨어적으로 해결하는 방법은 태핑. 허브와 같이 포트를 모니터링하기 위한 장비로 Splitter(스플리터)라고 부르기도 함
실습 8-7 macof로 스위치 재밍시키기 • macof 사용법 확인 macof /? 실습환경 • 공격자 시스템 : 리눅스 페도라 12 • 공격 대상 시스템 : 스위치 • 필요 프로그램 : macof(dsniff를 설치하면 자동으로 설치됨) 1
실습 8-7 macof로 스위치 재밍시키기 • macof 공격 macof ⓐ 출발지의MAC 주소다. ⓑ목적지의MAC 주소다. ⓒ, ⓓ출발지의 IP 주소와 포트 번호, 목적지의 IP 주소와 포트 번호다. 여기서는 출발지와 목적지의 주소가 모두 0.0.0.0으로 설정되어 있다. ⓐ ⓑ ⓒ ⓓ 2
스니핑 공격의 대응책 • 스니퍼 탐지 • 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를 사용하기 때문에 이를 쉽게 탐지할 수 있음
스니핑 공격의 대응책 • 암호화 • 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 사용
스니핑 공격의 대응책 • 암호화 • SSH(Secure Shell) • 텔넷과 같은 서비스의 암호화 • 텔넷과 같은 서비스의 암호화를 위해 사용, 이미 설치한 OpenSSL 라이브러리가 지원 • DSniff를 이용해 공격하면 SSH를 이용하더라도 공격당할 수 있음. 그러나SSH를 이용한 암호화 프로토콜이 계속 발전하고 있으며 텔넷보다는 훨씬 더 안전 • VPN(Virtual Private Network) • 원래 T1과 같은 사설 네트워크를 설치하는 데 많은 비용이 들기 때문에 한 회선을 여러 회사가 공유하여 비용을 절감하려는 목적으로 개발 • 전송되는 데이터들이 각 회사의 사내 정보며 기밀성이 요구되어, VPN은 자연스레 암호화된 트래픽을 제공 • 그러나 VPN을 제공하는 시스템이 해킹당할 경우 암호화되기 이전에 데이터가 스니핑될 수 있음
실습 8-8 스니퍼 찾아보기 • hunt 설치 ➊ yum list hunt ➋ yum install hunt 실습환경 • 스니퍼 시스템 : 리눅스 페도라 12 • 탐지 시스템 : 리눅스 페도라 12 • 필요 프로그램 : hunt 1
실습 8-8 스니퍼 찾아보기 • 스니퍼의 실행 tcpdump -v -X • hunt를 이용한 스니퍼 탐지 ➊ hunt ➋ [u]입력 2 3
실습 8-8 스니퍼 찾아보기 • ARP 패킷을 통한 스니핑 탐지 패킷 확인 [그림 8-37]hunt가 보낸 ARP 패킷 4 [그림 8-38] 프러미스큐어스 시스템이 보낸 ARP 응답 패킷
실습 8-8 스니퍼 찾아보기 • ICMP 패킷을 통한 스니핑 탐지 패킷 확인 4 [그림 8-39]hunt가 보낸 ICMP 패킷 [그림 8-40] 프러미스큐어스 시스템이 보낸 ICMP 응답 패킷