18. HTTP 보안 -dsniff 2004. 11. 02 실시간 정보 시스템 LAB 이 영 주 RTIS LAB.

Slides:



Advertisements
Similar presentations
7 장. 원격지에서 리눅스서버를 관리하자. 텔넷서버를 설치 / 운영한다. SSH 서버를 운영한다. VNC 서버를 설치 / 운영한다.
Advertisements

HTTPS Packet Capture Tutorial
8 스니핑.

목차 Contents 무선인터넷용 비밀번호 설정방법 Windows 7 Windows 8 Windows XP MAC OS.
정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
1. 신뢰할 수 있는 싸이트 등록 인터넷 익스플로러 실행 후 실행
㈜디아이씨 SSLVPN 협력사 접속방법 2017년 4월.
Network Lab. Young-Chul Hwang
SSL - VPN 사용자 가이드 - IT 지원실 네트워크 운영팀 -.
11. 해킹기술 (4) - hacking & security -
Penetration Testing 명지대학교 홍석원
PHP입문 Izayoi 김조흔.
Load Balancing L4와 L7은 어떻게 동작할까?.
발표자 : 손충호 조원 : 유진우, 노유성, 조사랑, 손충호
18. HTTP 보안 -dsniff 실시간 정보 시스템 LAB 이 영 주 RTIS LAB.
Mysql Install on Azure
Chapter 14. 스니핑 황 선 환 , 이 주 영.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
8장. 원격지 시스템 관리하기.
1. DNS 스푸핑 공격 2. HTTP Request 소개
Chapter 21 Network Layer: ARP, ICMP (IGMP).
FTP 프로그램 채계화 박재은 박수민.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
ARP Project 조 충 호 교수님 김 세 진 조교님 조 진 형 변 익 수
1. 스푸핑 공격 - 스푸핑(Spoofing): ‘속이다’ 의 의미.
Chapter 19 솔라리스 네트워크 관리 Solaris1 . TCP/IP 개요
Slice&link.
Web Basic 김영성 인천대 OneScore
시스템 인터페이스 Lab3 Unix 사용법 실습.
2장. JSP 프로그래밍을 위한 환경구성 제2장.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
PHP 개요 및 설치 Yang-Sae Moon Department of Computer Science
제 15 장 BOOTP와 DHCP BOOTP 15.2 동적 호스트 설정 프로토콜.
Wi-Fi 취약점 분석 본 프로젝트는 Wi-Fi 환경에서의 취약점 분석을 위한 프로젝트로 다양한 공격방법을 테스트
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
뇌를 자극하는 Windows Server 장. 원격 접속 서버.
Internet 데이터 전송 목표: 인터넷의 개요 및 기본 내용을 살펴보고 VB에서의 데이터 전송 프로그래밍에 대하여 학습한다. 주요내용 인터넷의 개요 인터넷 데이터 전송 인터넷 프로그래밍 Winsock Client Server 프로그래밍.
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
웹디자인
CGI란 무엇인가? CGI(Common Gateway Interface)의 정의
MAIL CLIENT 김창우 윤성훈 이경재.
Network 네트워크 이론 및 실습 TCP / IP 4장.
KERBEROS.
Packet sniffing 응용 레벨이 아닌 네트워크 디바이스 레벨에서의 데이타을 얻는 것 네트워크 상의 트래픽을 분석
SSL, Secure Socket Layer
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
웹(WWW).
IP-255S 설치 교육자료 101/102에 대한 설명을 시작 하겠습니다.
STS 에서 웹 서버 설치 방법.
Chapter 27 Mobile IP.
웹 어플리케이션 보안 2016년 2학기 11. Enhancing Security.
Introduction to JSP & Servlet
암호학 응용 Applied cryptography
KISTI Supercomputing Center 명훈주
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
JSP Programming with a Workbook
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
9 브라우저 객체 모델.
Part 05 TCP/IP 1. 네트워크 2. 포트번호.
채팅 및 파일전송 프로그램 권 경 곤 김 창 년.
CCIT 네트워크 발표 정보보호학과 평문 사이트와 SSL 사이트, SSL strip과 데이터 변조를 이용한 로그인 취약점
11. 해킹기술 (4) - hacking & security -
JAVA 프로그래밍 16장 JNLP.
ARP.
XSS 취약점을 이용한 웹메일 해킹
20 XMLHttpRequest.
Presentation transcript:

18. HTTP 보안 -dsniff 2004. 11. 02 실시간 정보 시스템 LAB 이 영 주 RTIS LAB.

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

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

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

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

웹브라우저가 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 : 헤더와 본문을 구분

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

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

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

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

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

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

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

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

웹 페이지 소스저장 방법 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();} // -->(생략)

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"

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

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에서 보낸 암호화된 메시지를 평문 형태로 변환한 다음 다시 암호화하여 클라이언트에게 보냄.

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

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

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와의 호환모드로 컴파일 되어야 함.

Dsniff 설치 1. Berkeley DB설치 3. Libnids라이브러리 설치 2. Libnet라이브러리 설치 #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 libnet-1.0.2.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

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.

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

Dsniff 에서의 스니핑 방법 3. 하지만 공격자는 거짓된 ARP reply를 계속하여 보낼 수 있다 문제는, 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 과정

Dsniff 실행 결과 Applicance dsniff # 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

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

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*.*.com 127.0.0.1 *.adbot.com 127.0.0.1 *.adone.com 127.0.0.1 *.adforce.com 127.0.0.1 *.ad-up.com 127.0.0.1 *.advert*.* 127.0.0.1 *.banner*.* 127.0.0.1 *.bfast.com 127.0.0.1 *.burstnet.com 127.0.0.1 *.doubleclick.net 127.0.0.1 *.focalink.com 127.0.0.1 *.flycast.com 127.0.0.1 *.freestats.com 127.0.0.1 *.hitbox.com 127.0.0.1 *.globaltrack.com 127.0.0.1 *.globaltrak.net 127.0.0.1 *.imagine-inc.com 127.0.0.1 *.imgis.com 127.0.0.1 *.link*.com 127.0.0.1 *.memory.net 127.0.0.1 *.preferences.com 127.0.0.1 *.smartclicks.com 127.0.0.1 *.sponsorpool.net 127.0.0.1 *.stats.net 127.0.0.1 *.stattrax.com 127.0.0.1 *.*tracker.com 127.0.0.1 *.valueclick.com 127.0.0.1 *.wisewire.com 127.0.0.1 *.yahoo.com 168.188.129.191 www.daum.net

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 168.188.129.188] - Applicance dsniff # 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 - Applicance dsniff # 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 -

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

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

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