11. 해킹기술 (4) - hacking & security -
1. 스니핑 개요 스니핑 “sniff’는 사전에서 ’코를 킁킁거리다‘라는 의미다 스니핑 공격은 막는 것도 어려우며, 탐지 역시 쉽지 않다 스니핑 공격은 수동적(Passive) 공격 랜에서의 스니핑은 프러미스큐어스(Promiscuous) 모드에서 작동한다. 스니핑은 자신의 주소 값을 무시하고 모든 패킷을 받아들이는 상태를 프러미스큐어스 모드라고 한다. 2
2. 스니핑 공격 도구 2.1 TCP Dump 가장 일반적으로 쓰이는 스니핑 도구다. 스니핑은 네트워크 관리를 위해 개발된 툴이다. Snort라는 IDS의 기반 프로그램이기도 하다. TCP Dump는 법적 효력이 있다. 하지만 위-변조는 쉽고 위-변조 여부확인 어렵기 때문에 증거로 인정 받지 못한다. 3
2.1 TCP Dump Telnet Login 시 TCPDump 결과 계정 : wishfree의 경우 4
2.1 TCP Dump Telnet Login 시 TCPDump 결과 패스워드 : qwer1234의 경우 5
2.2 Fragrouter Fragrouter 받은 패킷을 릴레이해주기 위한 도구다 스니핑에서 패킷을 정상적인 전달을 위한 패킷 릴레이가 필요 세션이 끊어지면 스니핑을 계속할 수는 없다. 6
2.3 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 7
2.3 DSniff DSniff 설치 시 설치되는 툴 툴 기 능 filesnarf 기 능 filesnarf NFS 트래픽에서 스니프한 파일을 현재 디렉토리에 저장한다. macof 스위치를 허브와 같이 작동하게 하기 위하여 임의의 MAC 주소로 스위치의 MAC 테이블을 오버플로우(Overflow)시킨다. mailsnarf SNMP와 POP 을 스니프하여 이메일을 볼 수 있게 해준다. msgsnarf 채팅 메시지를 스니핑한다. tcpkill 탐지할 수 있는 TCP 세션을 모두 끊는다. tcpnice ICMP source quench 메시지를 보내 특정 TCP 연결을 느리게 만든다. 속도가 빠른 네트워크에서 스니프할 때 arpspoof ARP 스푸핑 공격을 실행한다. dnsspoof DNS 스푸핑 공격을 실행한다. urlsnarf CLF(Common Log Format)에서 HTTP 트래픽을 스니핑하여 선택된 URL을 알려준다. 8
2.3 DSniff 1) Dsniff를 이용한 패스워드 스니핑 Root# dsniff 9
2.3 DSniff 2) Tcpkill을 이용한 세션 끊기 R(eset) 패킷을 보내 tcp 세션을 끊는다 Root# tcpkill 10
2.3 DSniff 3) Tcpnice를 이용한 트래픽 속도 느리게 만들기 탐지된 연결에 수신 버퍼의 크기를 8로 알려 송신자의 송신 속도를 느리게 만든다. Root# tcpnice 11
2.3 DSniff 4) URLSNARF를 이용한 웹 서핑 감시 인터넷 사용자가 접속한 서버와 시간 등의 정보를 볼 수 있다. Root# urlsnarf 12
2.3 DSniff 5) MAILSNARF를 메일 스니핑 sendmail 등으로 메일을 보내면 그 메일을 가로채서 내용을 읽을 수 있다. Root# mailsnarf 13
2.3 DSniff 6) MSGSNARF를 이용한 메신저 통신 내용 스니핑 MSN 메신저로 얘기하는 내용를 가로채서 스니핑한다. Root# msgsnarf 14
2.4 Sniffer Pro (Window) Sniffer Pro (Window) 윈도우에서는 프러미스큐어스 모드가 지원되지 않는다 WinPCAP과 같은 라이브러리를 이용해서 스니핑이 가능하다. 윈도우 스니퍼는 네트워크 상태를 점검, 패킷의 통계 목적으로 이용. 15
3. 스위칭 환경에서의 스니핑 허브는 랜에서 들어오는 모든 신호를 복사해서 모든 포트에 다시 뿌려주는 역할을 한다. 스니핑을 이용한 공격은 간단하다. 스위치는 포트별로 MAC 주소 값이 기록하여 브로드캐스트 패킷을 제외한 모든 패킷은 그 패킷이 목적하는 장비에만 보낸다. 스위치는 스니퍼를 저지하는 치명적인 장비가 되었다. 3.1 ARP 스푸핑, ARP/ICMP 리다이렉트 3.2 스위치 재밍(MACOF) 3.3 SPAN 포트 태핑(Tapping) 16
3.1 ARP 스푸핑, ARP/ICMP 리다이렉트 ARP 리다이렉트 ARP 리다이렉트 공격은 위조된 ARP reply 패킷을 보내는 방법을 사용한다. 자신의 MAC 주소가 라우터라며 브로드캐스트를 주기적으로 하는 것이다. ARP 스푸핑는 호스트 대 호스트 공격이며 ARP 리다이렉트는 랜의 모든 호스트 대 라우터 17
3.1 ARP 스푸핑, ARP/ICMP 리다이렉트 ICMP 리다이렉트 두 개 이상의 라우터나 게이트웨이 운영에서 로드밸런싱(Load balancing)을 한다. ICMP 리다이렉트를 사용하기도 한다. ICMP 공격은 공격자가 네트워크에 존재하는 또 다른 라우터 임을 각 호스트에게 알리게 된다. ARP 스푸핑은 모든 트래픽에 대한 리다이렉트를 가능 ICMP 리다이렉트는 특정한 목적지 주소를 가진 패킷만을 리다이렉트 18
3.1 ARP 스푸핑, ARP/ICMP 리다이렉트 ICMP 리다이렉트 동작 원리 1. 호스트 A가 원격의 호스트 B로 데이터를 보낼 때 라우터 A가 디폴트(Default) 라우터로 설정되어 있기 때문에 호스트 A는 원격으로 보내는 모든 패킷을 라우터 A로 보낸다. 2. 라우터 A는 호스트 B로 보내는 패킷을 수신하고 라우팅 테이블을 검색하여 라우터 B가 호스트 B에 도달하는데, 좀더 효율적으로 호스트 A가 보낸 패킷을 라우터 B로 보낸다. 3. 라우터 A는 다시 호스트 A가 호스트 B로 향하는 패킷을 자신에게 전달하지 않도록 호스트 A에게 ICMP 리다이렉트 패킷을 보내 호스트 A가 호스트 B로 보내는 패킷이 라우터 B로 바로 향하도록 한다. 4. 호스트 A는 라우팅 테이블에 호스트 B에 대한 값을 추가하고, 호스트 B로 보내는 패킷은 라우터 B로 전달한다. 19
3.1 ARP 스푸핑, ARP/ICMP 리다이렉트 ICMP 리다이렉트를 이용해서 스니핑 20
3.1 ARP 스푸핑, ARP/ICMP 리다이렉트 ICMP Redirect로 변환된 라우팅 테이블을 확인 Root# route -C 21
3.2 스위치 재밍(Switch Jamming) 스위치 재밍(MACOF)은 스위치를 직접 공격한다. 오버플로우(Buffer Overflow) 공격은 버퍼를 공격해서 시스템을 다운시키기거나 오작동을 유발하기도 하며, 루트(Root) 권한을 얻어내는 데 쓰이기도 한다. 스위치 CPU와 같은 연산자가 있으며 MAC 테이블을 저장하기 위한 저장 공간이 있다. 스위치 재밍은 MAC 테이블을 위한 캐시 공간에 버퍼 오버플로우 공격을 한다 MAC 테이블이 저장 용량을 넘으면 스위치는 원래의 기능을 잃게 되어 더미 허브와 똑같이 작동한다. 22
3.3 SPAN 포트 태핑(Tapping) SPAN(Switch Port Analyzer)은 포트 미러링(Port Mirroring)을 이용 포트 미러링이란 각 포트에 전송되는 데이터를 미러링하고 있는 포트에도 똑같이 보내주는 것이다. 주로 IDS를 설치할 때 많이 사용한다. SPAN은(시스코 용어) 다른 벤더들은 ‘Port Roving’ 허브와 같이 포트를 모니터링 위한 장비로서 ‘Splitter’라고 한다. 23
4. 스니핑 공격의 대응책 스니퍼 탐지 암호화 Ping을 이용한 방법 ARP를 이용하는 방법 DNS 방법 유인(Decoy)방법 ARP watch 암호화 SSL(Security Sockets Layer) SSH(Secure Shell) VPN (Virtual Private Network) PGP와 PEM, S/MIME 24