Download presentation
Presentation is loading. Please wait.
1
18. HTTP 보안 -dsniff 실시간 정보 시스템 LAB 이 영 주 RTIS LAB.
2
HTTP란? HTTP 보안 SSL Dsniff 란? Dsniff 사용 예 dnsspoof 사용 예 Reference
3
HTTP란? WWW(World Wide Web.)에서 쓰이는 프로토콜 년 3월, 스위스의 CERN 연구소(입자물리 연구소)에서 처음 시작한 프로젝트 기존의 텍스트 기반 인터페이스 대신 그래픽 인터페이스를 통해 정보를 교환하기 위해 만들었다. - Client/Sever 구조로 동작(웹브라우저/웹서버) 비연결 프로토콜 : 요청할 때마다 매번 서버에 접속했다가 연결을 끊는 과정 반복 - Client : Ms 익스플로러, netscape, Lynx Server: Apache, IIS
4
Web Web Server client HTTP란? Web Application의 구조 전형적인 웹 어플리케이션 구성 요소
N-tiers SQL Query Web app Request Connector Web Server DB Web client Transport Connector DB Response HTTP Response
5
URL의 형식 HTTP란? 프로토콜:// 서버_주소[:포트번호]/파일_경로
ex> 야후 사이트의 index.html파일에 접근하고자 할 때 포트를 지정하지 않으면 자동으로 TCP 80번 포트 사용 특정포트를 사용하고자 할 경우는 포트번호를 지정
6
웹브라우저가 URL요청을 보낼 때 HTTP란? 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/ (Unix) PHP/4.2.3 \r\n Last-Modified: Tue, 07 Jan :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 보안 문제 – HTTP쿠키 - Client에서 변경 가능
- Sever가 Client에게 저장하는 어떤 정보 -처음 로그인 할 때 사용한 정보를 계속 유지하기 위한 해결책 ( 로그인 후, 재인증 필요 없음) - 비연결 프로토콜에서 연결 지향형 프로토콜의 효과 문제 HTTP쿠키의 문제점 - Client에서 변경 가능
10
HTTP 보안 문제 – HTTP쿠키 EX> 웹브라우저를 통해 http://www.google.co.kr에 접속
새로 생성된 쿠키파일
11
HTTP 보안 문제 – HTTP쿠키 쿠키파일의 내용은 - 두번째 줄에 있는 것이 쿠키이며,
사용자가 내용을 고친후, 다시 요청하면 - 웹브라우저는 사용자가 변경한 쿠키를 웹서버로 보낸다.
12
Web spoofing HTTP 보안 문제 – Web spoofing - Client에게 가짜 웹페이지를 보내는 공격
1. 가짜 웹페이지를 보내주는 방법 2. 가짜 서버(공격자의 서버)를 진짜 서버로 믿게 하는 방법 - DNS spoofing - ARP spoofing ※ MITM(man-in-the-middle)공격
13
MITM(man-in-the-middle)공격을 이용한 웹 스푸핑
HTTP 보안 문제 – Web spoofing MITM(man-in-the-middle)공격을 이용한 웹 스푸핑 4.내용을 바꿔서 전송 1.웹페이지 요청 2.중간에서 가로챈 뒤,실제 웹서버에 요청 3.요청한 내용 전송
14
입력검증(Input validation)
HTTP 보안 문제 – Input validation 입력검증(Input validation) - Client가 보낸 입력을 제대로 검사하지 않아서 생기는 문제 ex) 버퍼오버플로우, 포맷 스트링 버그 등 검사 방법 1. Sever측 검사 - 클라이언트가 보낸 입력을 일일이 검사(데이터 포맷 검사) - 장점: 가장 안전함 - 단점: 서버측에서 많은 검사코드를 작성하여야 함. 2. Client 측 검사 - 클라이언트 웹 브라우저의 스크립트를 이용하여 입력을 제한 단점: 클라이언트측 스크립트는 완벽하지 않다.(소스를 읽기 쉬움)
15
웹 페이지 소스저장 방법 HTTP 보안 문제 – Input validation -Window에서 : 익스플로러의 저장기능 이용
- Unix에서 : wget, lynx 를 사용 UNIX에서 구글페이지를 읽어오고 싶다면 lynx에서 구글페이지를 읽어오고 싶다면 [bastion]$ wget --17:55: => ‘index.html’ Connectiong to Connected! HTTP request sent, awaiting response… 200 OK Length: 3,111 [text/html] OK -> · · · [100%] 17:55:07 ( KB/s) – ‘index.html’saved[3111/3111] [bastion]$ lynx -source <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 <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) ID:foobar PW:'12345 curl -F -F "yourname=Daniel"
17
SSL암호화의 문제점 SSL / Secure Socket Layer SSL /Secure Socket Layer
- HTTP 에서 동작하며 터널을 형성 - OSI 중 4계층(트랜스포트)과 5계층(세션) 사이 - 웹에서 데이터 암호화에 쓰임 - 암호화 가능하여 기밀성을 제공 <공개키 암호화 방식> : 스니핑을 통한 공격에 안전 문제 SSL암호화의 문제점 - SSL-MITM(man-in-the-middle)공격
18
SSL - MITM 공격 SSL – MITM 공격
1.google.com요청인증서:attact.com 2.google.com요청인증서:google.com 4.클라이언트에게 응답 3.attack.com으로 응답 클라이언트 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
SSL - MITM 공격 SSL – MITM 공격을 방지하는 방법 SSL-MITM 공격에 사용할 수 있는 툴 - dsniff
- 유효하지 않은 인증서를 사용하는 웹 사이트와는 통신을 하지 않는 것 SSL-MITM 공격에 사용할 수 있는 툴 - dsniff (wemitm툴과 dnsspoof를 이용)
20
http://www.monkey.org/~dugsong/dsniff/dsniff-2.3.tar.gz Dsniff 란?
- 한국계 미국인 송덕준이 개발한 해킹도구. - 미국 연방수사국(FBI)의 범죄 용의자 추적용인 카니보어(carnivore), 이 카니보어에 맞서기 위해 해커들이 개발한 알트보어(altvore)와 함께 대표적인 스니핑(sniffing) 소프트웨어로 꼽힌다 상대방의 암호(ID)·비밀번호·메일 내용 탐지 - 해커가 원하는 정보를 선택하여 탐지 다운로드
21
Dsniff 설치 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라이브러리 설치 2. Libnet라이브러리 설치
#tar xvfz db 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 호환모드로 설치 2. Libnet라이브러리 설치 4. dsniff 설치 #tar xvfz libnet tar.gz #cd libnet-1.0.2a #./configure ……………. #make #make install #tar xvfz dsniff-2.3.tar.gz #cd dsniff-2.3 #./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를 계속하여 보낼 수 있다
문제는, ARP Request가 오기 전에 ARP reply가 위와 같은 식으로 보내지게 되었을 때 공격 대상이 되는 시스템의 ARP cache에 그런 내용이 저장이 되고 ARP cache에 에 대한 정보가 있다면 굳이 ARP request를 하지는 않는다 이 점을 이용하여 공격자는 ARP Request가 있기 전부터 거짓 응답을 주기적으로 계속 보냄. 로 가게 될 패킷은 으로 가게 된다. 은 해당 패킷의 내용을 받고 저장한 후 바로 아무 일 없었다는 듯이 로 포워딩 하므로 통신에는 문제 없다 ( 은 못알아차린다.) [그림 3] 조작된 ARP reply 과정
26
Dsniff 실행 결과 Applicance dsniff # dsniff Dsniff: listening on eht0 -
/26/04 20:14:21 tcp > (ftp) USER adoregnu PASS smile99 /26/04 20:14:32 tcp > (ftp) USER adoregnu PASS smile99 /26/04 20:15:32 tcp > (telnet) adoregnu smile99
27
Dsniff를 이용한 해킹의 방지 1. plan text 디스니프를 이용한 해킹을 막기 위해서는
디스니프를 이용한 해킹이 가능한 이유 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 /08/28 13:28:21 dugsong Exp $ # # Sample hosts file for dnsspoof - kill web banner ads for Niels. :-) # ad.* ads*.* adbot*.* adcount*.* adfinity*.* adforce*.* adimage*.* adlink*.* adserv*.* adremote*.* adv.* advert*.* banner*.* count*.* promo*.* werbung*.* *ads*.*.com *.adbot.com *.adone.com *.adforce.com *.ad-up.com *.advert*.* *.banner*.* *.bfast.com *.burstnet.com *.doubleclick.net *.focalink.com *.flycast.com *.freestats.com *.hitbox.com *.globaltrack.com *.globaltrak.net *.imagine-inc.com *.imgis.com *.link*.com *.memory.net *.preferences.com *.smartclicks.com *.sponsorpool.net *.stats.net *.stattrax.com *.*tracker.com *.valueclick.com *.wisewire.com *.yahoo.com
29
dnsspoof 이용한 MITM Applicance dsniff # dnsspoof -i dev-br –f /etc/dsniff/dnsspoof.hosts dnsspoof: listening on dev-br [udp dst port 53 and not src ] - Applicance dsniff # dnsspoof -i dev-br –f /etc/dsniff/dnsspoof.hosts dnsspoof: listening on dev-br [udp dst port 53 and not src ] > : 2+ A? - Applicance dsniff # dnsspoof -i dev-br –f /etc/dsniff/dnsspoof.hosts dnsspoof: listening on dev-br [udp dst port 53 and not src ] > : 2+ A? -
30
dnsspoof 이용한 MITM의 실행 결과
을 요청했으나, dnsspoof에 의해 공격자가 지정한 페이지인 가짜 페이지가 뜨게 된다.
31
Wemitm&dnsspoof 이용한 MITM의 실행 결과
Command로 보면…
32
Reference 강유의 해킹과 보안 18장 /NetFocus2003/2.pdf
Similar presentations