1 / 32

RTIS LAB.

18. HTTP 보안 -dsniff. 2004. 11. 02 실시간 정보 시스템 LAB 이 영 주. RTIS LAB. HTTP 란 ?. HTTP 보안 . SSL. Dsniff 란 ?. Dsniff 사용 예. dnsspoof 사용 예. Reference.

luther
Download Presentation

RTIS LAB.

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. 18. HTTP 보안 -dsniff 2004. 11. 02 실시간 정보 시스템 LAB 이 영 주 RTIS LAB.

  2. HTTP란? HTTP 보안 SSL Dsniff 란? Dsniff 사용 예 dnsspoof 사용 예 Reference

  3. WWW(World Wide Web.)에서 쓰이는 프로토콜- 1989년 3월, 스위스의 CERN 연구소(입자물리 연구소)에서 처음 시작한 프로젝트 기존의 텍스트 기반 인터페이스 대신 그래픽 인터페이스를 통해 정보를 교환하기 위해 만들었다. HTTP란? - Client/Sever 구조로 동작(웹브라우저/웹서버)- 비연결 프로토콜: 요청할 때마다 매번 서버에 접속했다가 연결을 끊는 과정 반복 - Client : Ms 익스플로러, netscape, Lynx - Server: Apache, IIS

  4. HTTP란? Web Application의 구조 • 전형적인 웹 어플리케이션 구성 요소 N-tiers SQL Query Web app Request Connector Web Server DB Web client Transport Connector DB Response HTTP Response

  5. HTTP란? • URL의 형식 • 프로토콜:// 서버_주소[:포트번호]/파일_경로 • ex> 야후 사이트의 index.html파일에 접근하고자 할 때 • http://www.yahoo.co.kr/index.html •  포트를 지정하지 않으면 자동으로 TCP 80번 포트 사용 • 특정포트를 사용하고자 할 경우는 포트번호를 지정 • http://www.yahoo.co.kr:9000/index.html

  6. HTTP란? • 웹브라우저가 URL요청을 보낼 때 • 1. Client는 서버에 접속한 뒤 다음과 같은 메시지를 보낸다. • : GET /index.html HTTP/1.0 \r\n • \r\n GET : 자료요청 (ex>POST,PUT,HEAD) /index.html : 자료의 경로 HTTP/1.0 : HTTP 프로토콜의 버전 모든 메시지는 헤더+본문 으로 구성 \r\n : 헤더와 본문을 구분

  7. HTTP란? 2. Sever 응답( 헤더+본문) : 본문 내용을 화면에 보여줌 : HTTP/1.1 200 OK \r\n Server: Apache/1.3.26 (Unix) PHP/4.2.3 \r\n Last-Modified: Tue, 07 Jan 2003 12:57:38 GMT \r\n Connection: Close \r\n Content-Type: text/html \r\n \r\n <html> \r\n Hello, Web Browser! \r\n </html> \r\n

  8. HTTP 보안 • HTTP보안 문제 • - CGI 문제 • - DDoS문제 • - 쿠키 • - 웹 스푸핑 • - 입력 검증

  9. HTTP 보안 문제 – HTTP쿠키 • HTTP쿠키 • - Sever가 Client에게 저장하는 어떤 정보 • -처음 로그인 할 때 사용한 정보를 계속 유지하기 위한 해결책 • ( 로그인 후, 재인증 필요 없음) • - 비연결 프로토콜에서 연결 지향형 프로토콜의 효과 문제 • HTTP쿠키의 문제점 • - Client에서 변경 가능

  10. HTTP 보안 문제 – HTTP쿠키 EX> 웹브라우저를 통해 http://www.google.co.kr에 접속 새로 생성된 쿠키파일

  11. HTTP 보안 문제 – HTTP쿠키 쿠키파일의 내용은 - 두번째 줄에 있는 것이 쿠키이며, 사용자가 내용을 고친후, 다시 www.google.co.kr을 요청하면 - 웹브라우저는 사용자가 변경한 쿠키를 웹서버로 보낸다.

  12. HTTP 보안 문제 – Web spoofing • Web spoofing • - Client에게 가짜 웹페이지를 보내는 공격 • 1. 가짜 웹페이지를 보내주는 방법 • 2. 가짜 서버(공격자의 서버)를 진짜 서버로 믿게 하는 방법 • - DNS spoofing • - ARP spoofing • ※ MITM(man-in-the-middle)공격

  13. HTTP 보안 문제 – Web spoofing • MITM(man-in-the-middle)공격을 이용한 웹 스푸핑 4.내용을 바꿔서 전송 1.웹페이지 요청 2.중간에서 가로챈 뒤,실제 웹서버에 요청 3.요청한 내용 전송

  14. HTTP 보안 문제 – Input validation • 입력검증(Input validation) • - Client가 보낸 입력을 제대로 검사하지 않아서 생기는 문제 • ex) 버퍼오버플로우, 포맷 스트링 버그 등 • 검사 방법 • 1. Sever측 검사 • - 클라이언트가 보낸 입력을 일일이 검사(데이터 포맷 검사) • - 장점: 가장 안전함 • - 단점: 서버측에서 많은 검사코드를 작성하여야 함. • 2. Client 측 검사 • - 클라이언트 웹 브라우저의 스크립트를 이용하여 입력을 제한 • 단점: 클라이언트측 스크립트는 완벽하지 않다.(소스를 읽기 쉬움)

  15. HTTP 보안 문제 – Input validation • 웹 페이지 소스저장 방법 • -Window에서 : 익스플로러의 저장기능 이용 • - Unix에서 : wget, lynx 를 사용 UNIX에서 구글페이지를 읽어오고 싶다면 lynx에서 구글페이지를 읽어오고 싶다면 [bastion]$ wget http://www.google.co.kr/ --17:55:05-- http://www.google.co.kr/ => ‘index.html’ Connectiong to www.google.co.kr:80... Connected! HTTP request sent, awaiting response… 200 OK Length: 3,111 [text/html] OK -> · · · [100%] 17:55:07 (506.35 KB/s) – ‘index.html’saved[3111/3111] [bastion]$ lynx -source http://www.google.co.kr <html><head><meta http-equiv=“content-type” content=“text/html;charset=EUC-KR”><title>Google</title><style><!—body, td,a,p,.h{fonr-family:굴림,돋움,arial,sans-serif;line-height=120%;} .ko{font-size:9pt;} .h{font-size:20px;} .q{text-decoration:none; color:#0000cc;} //--> </style><script><!— Funtion sf(){document.f.q.focus();} // -->(생략)

  16. HTTP 보안 문제 – Input validation • 공격자가 원하는 서버에게 데이터를 보낼 때 • - 스크립트 언어 : cURL, Perl, PHP • - 직접 만든 프로그램 • cURL(Client URL Library Functions ) • - FTP, TELNET, HPPT, HTTPS 등 지원 • - 라이브러리 형태로 제공 Example:   (page located at http://www.formpost.com/getthis/   <form action="post.cgi" method="post"> <input name=user size=10> <input name=pass type=password size=10> <input name=id type=hidden value="blablabla"> <input name=ding value="submit"> </form> curl -d "user=foobar&pass=12345&id=blablabla&ding=submit" (continues) http://www.formpost.com/getthis/post.cgi ID:foobar PW:'12345 curl -F "file=@cooltext.txt" -F "yourname=Daniel"

  17. / Secure Socket Layer SSL • SSL /Secure Socket Layer • - HTTP 에서 동작하며 터널을 형성 • - OSI 중 4계층(트랜스포트)과 5계층(세션) 사이 • - 웹에서 데이터 암호화에 쓰임 • - 암호화 가능하여 기밀성을 제공<공개키 암호화 방식> • : 스니핑을 통한 공격에 안전 문제 • SSL암호화의 문제점 • - SSL-MITM(man-in-the-middle)공격

  18. - MITM 공격 SSL • SSL – MITM 공격 1.google.com요청인증서:attact.com 2.google.com요청인증서:google.com 3.attack.com으로 응답 4.클라이언트에게 응답 클라이언트 Attack.com google.com 1.클라이언트는 SSL을 통해 google.com 요청(DNS 스푸핑: IP착각) => DNS스푸핑공격으로 인해 attack.com에 이 요청이 전송됨. attack.com에서는 클라이언트에게 자신의 인증서를 보여주며 통신.(유효성 판단하지 않아서 생김) 2.Attack.com에 있는 공격자는 클라이언트가 보낸 메시지의 내용을 평문으로 볼 수 있다. 이 내용을 저장한 뒤, 공격자는 같은 요청을 google.com으로 보냄. => google.com의 인증서를 이용하여 통신 3.Google.com에서는 attack.com에 응답 4.Attack.com에서는 google.com에서 보낸 암호화된 메시지를 평문 형태로 변환한 다음 다시 암호화하여 클라이언트에게 보냄.

  19. - MITM 공격 SSL • SSL – MITM 공격을 방지하는 방법 • - 유효하지 않은 인증서를 사용하는 웹 사이트와는 통신을 하지 않는 것 • SSL-MITM 공격에 사용할 수 있는 툴 • - dsniff • (wemitm툴과 dnsspoof를 이용)

  20. Dsniff 란? • Dsniff란? • - 한국계 미국인 송덕준이 개발한 해킹도구. • - 미국 연방수사국(FBI)의 범죄 용의자 추적용인 카니보어(carnivore), • 이 카니보어에 맞서기 위해 해커들이 개발한 알트보어(altvore)와 함께 • 대표적인 스니핑(sniffing) 소프트웨어로 꼽힌다. - 상대방의 암호(ID)·비밀번호·메일 내용 탐지 • - 해커가 원하는 정보를 선택하여 탐지 다운로드 http://www.monkey.org/~dugsong/dsniff/dsniff-2.3.tar.gz

  21. Dsniff 설치 • Dsniff • - 스위치 환경과 SSL, SSH의 사용을 무색하게 만드는 패스워드 스니퍼. • - SSL과 SSH 버전 1의 패스워드를 가로챈다. • * OS : OpenBSD (i386), Redhat Linux (i386), and Solaris (sparc) • - 스위칭 환경에서 효율적인 스니핑을 하기 위한 매우 다양한 유틸들이 포함 • *유틸: Arpspoof, dnsspoof, mailsnarf, filesnarf 등 • dsniff를 사용하기 위해서는 • Berkeley DB, OpenSSL-, libpcap, libnids, libnet 등을 설치 • 설치순서는 • Berkeley DB -> libnet -> libnids -> dsniff • ※ Berkely DB설치 – ver 2.7.7만을 사용하여야 하고, 꼭 ver 1.8.5와의 호환모드로 컴파일 • 되어야 함.

  22. Dsniff 설치 1. Berkeley DB설치 3. Libnids라이브러리 설치 #tar xvfz db-2.7.7.tar.gz #cd /root/lecture/dsniff/db-2.7.7/dist #./configure –enable-compat185 …………….. #make #make install #tar xvfz libnids-1.16.tar.gz #cd libnids-1.16 #./configure ……………… #make #make install 반드시 ver 1.8.5 호환모드로 설치 2. Libnet라이브러리 설치 4. dsniff 설치 #tar xvfz dsniff-2.3.tar.gz #cd dsniff-2.3 #./configure ……. #make #make install #tar xvfz libnet-1.0.2.tar.gz #cd libnet-1.0.2a #./configure ……………. #make #make install

  23. Dsniff 매뉴얼 DSNIFF(8) DSNIFF(8) NAME dsniff - password sniffer SYNOPSIS dsniff [-c] [-d] [-m] [-n] [-i interface] [-s snaplen] [-f services] [-t trigger[,...]]] [-r|-w savefile] [expression] DESCRIPTION dsniff is a password sniffer which handles FTP, Telnet, SMTP, HTTP, POP, poppass, NNTP, IMAP, SNMP, LDAP, Rlogin, RIP, OSPF, PPTP MS-CHAP, NFS, VRRP, YP/NIS, SOCKS, X11, CVS, IRC, AIM, ICQ, Napster, PostgreSQL, Meeting Maker, Citrix ICA, Symantec pcAnywhere, NAI Sniffer, Microsoft SMB, Oracle SQL*Net, Sybase and Microsoft SQL protocols.

  24. Dsniff 에서의 스니핑 방법 ARP Redirect 방법에 의한 1. 네트워크 상에서 패킷이 보내질 때 목적지의 IP 주소를 갖고 해당 목적지가 어떤 MAC 주소를 사용하는지를 요청 2. ARP request는 네트워크 상에 브로드캐스팅되어 모든 호스트가 그 패킷을 받게 되고 해당 IP를 가진 호스트는 그런 IP를 사용하는 것은 나라고 ARP reply를 주게 된다 [그림 1] ARP request 과정 [그림 2] ARP reply 과정

  25. Dsniff 에서의 스니핑 방법 3. 하지만 공격자는 거짓된 ARP reply를 계속하여 보낼 수 있다 아래와 같이 두 개의 Reply를 받게 되는 경우, 패킷이 도달한 순서에 따라 둘 중 하나의 응답을 믿게 된다. 10.1.1.3의 응답을 믿었다면 패킷은 10.1.1.1로 보내지는 것이 아니라 10.1.1.3으로 보내진다. • 문제는, ARP Request가 오기 전에 ARP reply가 위와 같은 식으로 보내지게 되었을 때 • 공격 대상이 되는 시스템의 ARP cache에 그런 내용이 저장이 되고 ARP cache에 10.1.1.1에 대한 정보가 있다면 굳이 ARP request를 하지는 않는다 • 이 점을 이용하여 공격자는 ARP Request가 있기 전부터 거짓 응답을 주기적으로 계속 보냄. 10.1.1.1로 가게 될 패킷은 10.1.1.3으로 가게 된다. • 10.1.1.3은 해당 패킷의 내용을 받고 저장한 후 바로 아무 일 없었다는 듯이 10.1.1.1로 포워딩 하므로 통신에는 문제 없다 (10.1.1.1은 못알아차린다.) [그림 3] 조작된 ARP reply 과정

  26. Dsniff 실행 결과 Applicancedsniff # dsniff Dsniff: listening on eht0 - ----------------- 10/26/04 20:14:21 tcp 168.188.129.184.2454 -> 168.188.130.30.21 (ftp) USER adoregnu PASS smile99 ----------------- 10/26/04 20:14:32 tcp 168.188.129.184.2458 -> 168.188.130.30.21 (ftp) USER adoregnu PASS smile99 ----------------- 10/26/04 20:15:32 tcp 168.188.129.184.2464 -> 168.188.129.2.23 (telnet) adoregnu smile99

  27. Dsniff를 이용한 해킹의 방지 디스니프를 이용한 해킹이 가능한 이유 1. plan text 2. broadcast *arp위조 텔넷의 패스워드가 abc라고 가정하면, 스니퍼를 이용하여 볼 수 있는 내용은 a, b, c 각각 보이지만, 디코드 기능을 이용하면 abc를 모두 조합시켜 보여준다. 수집된 수많은 패킷들을 사용자가 하나하나 찾아서 조합하는 과정을 툴이 자동적으로 해결 디스니프를 이용한 해킹을 막기 위해서는 1.퍼스널컴퓨터용 보안도구들을 사용해 메일에 암호를 건다. ( 다른 사람이 내용을 볼 수 없도록 ) ex>PGP(pretty good privacy)로 메일에 암호를 걸어 다른 사람이 내용을 볼 수 없도록. 2. 웹메일을 이용한 뒤 윈도 시스템 폴더에 있는 캐시폴더의 내용들을 삭제한다. (정보유출방지) ex>캐시분석용 도구를 이용하면 ID 및 패스워드를 외부인이 손쉽게 알아낼 수 있기 때문.

  28. dnsspoof 이용한 MITM dnsspoof.hosts 파일에 써준다.(MITM할 주소를) # $Id: dnsspoof.hosts,v 1.2 2000/08/28 13:28:21 dugsong Exp $## Sample hosts file for dnsspoof - kill web banner ads for Niels. :-)#127.0.0.1 ad.*127.0.0.1 ads*.*127.0.0.1 adbot*.*127.0.0.1 adcount*.*127.0.0.1 adfinity*.*127.0.0.1 adforce*.*127.0.0.1 adimage*.*127.0.0.1 adlink*.*127.0.0.1 adserv*.*127.0.0.1 adremote*.*127.0.0.1 adv.*127.0.0.1 advert*.*127.0.0.1 banner*.*127.0.0.1 count*.*127.0.0.1 promo*.*127.0.0.1 werbung*.*127.0.0.1 *ads*.*.com127.0.0.1 *.adbot.com127.0.0.1 *.adone.com127.0.0.1 *.adforce.com127.0.0.1 *.ad-up.com 127.0.0.1 *.advert*.*127.0.0.1 *.banner*.*127.0.0.1 *.bfast.com127.0.0.1 *.burstnet.com127.0.0.1 *.doubleclick.net127.0.0.1 *.focalink.com 127.0.0.1 *.flycast.com127.0.0.1 *.freestats.com127.0.0.1 *.hitbox.com127.0.0.1 *.globaltrack.com127.0.0.1 *.globaltrak.net127.0.0.1 *.imagine-inc.com127.0.0.1 *.imgis.com127.0.0.1 *.link*.com127.0.0.1 *.memory.net127.0.0.1 *.preferences.com127.0.0.1 *.smartclicks.com127.0.0.1 *.sponsorpool.net127.0.0.1 *.stats.net127.0.0.1 *.stattrax.com127.0.0.1 *.*tracker.com127.0.0.1 *.valueclick.com127.0.0.1 *.wisewire.com127.0.0.1 *.yahoo.com168.188.129.191 www.daum.net

  29. dnsspoof 이용한 MITM Applicancedsniff # dnsspoof -i dev-br –f /etc/dsniff/dnsspoof.hosts dnsspoof: listening on dev-br [udp dst port 53 and not src 168.188.129.188]- Applicancedsniff # dnsspoof -i dev-br –f /etc/dsniff/dnsspoof.hosts dnsspoof: listening on dev-br [udp dst port 53 and not src 168.188.129.188]168.188.129.184.4159 > 168.188.1.1.53:  2+ A? www.daum.net - Applicancedsniff # dnsspoof -i dev-br –f /etc/dsniff/dnsspoof.hosts dnsspoof: listening on dev-br [udp dst port 53 and not src 168.188.129.188]168.188.129.184.4159 > 168.188.1.1.53:  2+ A? www.yahoo.com -

  30. dnsspoof 이용한 MITM의 실행 결과 www.daum.net 을 요청했으나, dnsspoof에 의해 공격자가 지정한 페이지인 가짜 페이지가 뜨게 된다.

  31. Wemitm&dnsspoof 이용한 MITM의 실행 결과 Command로 보면…

  32. Reference • 강유의 해킹과 보안 18장 • http://www.securitytechnet.com/resource/rsc-center/presentation • /NetFocus2003/2.pdf • http://elyjinni.com.ne.kr/hacking/sniffing.htm • http://www.pgpnet.com/community • http://curl.oc1.mirrors.redwire.net/docs/manual.html

More Related