11 세션 하이재킹.

Slides:



Advertisements
Similar presentations
충북대 네트워크 보안 연구실 [ gmail.com ] 정보 보호 응용 11. 해킹기술 (3) 11. 해킹기술 (3) - hacking & security -
Advertisements

1 장 Unix/Linux 소개 1 Helpers. 1 장 내용 1. 왜 유닉스인가 ? 2. 유닉스 시스템 구조 3. 유닉스 역사 및 버전 4. 리눅스 설치 ( 별도 2 시간 실습 ) 5. 사용 환경 6. 사용자 계정 관리 Unix/Linux 2.
차세대네트워크보안기술 영산대학교 네트워크정보공학부 이원열.
8 스니핑.
10 터널링.
네트워크해킹 분석 및 대응 한국정보보호교육센터 서 광 석 원장.
Chapter 03. 네트워크 보안 : 길을 지배하려는 자에 대한 저항
HACKING 김진수 소준형 유병화.
7장. TCP와 UDP.
1. 스푸핑 공격 - 스푸핑(Spoofing): ‘속이다’ 의 의미.
공격/대응 Examples.
암호화 기술(SSL, IPSec) 손재성 권기읍 안복선 최준혁
RTSP, RTP 김현철.
22 장 프로세스간 전달 : UDP와 TCP 22.1 프로세스간 전달 22.2 사용자 데이터그램 프로토콜
16. FTP grandmarnier.
1. 왜 의사헤더를 추가하나? 1 / 32 UDP 데이터그램이 목적지에 제대로 전송됐는지 확인하기 위해
NFS, FTP coearth, george.
연습 문제 풀이 E BF F8 85 A5 E5 9B 37 A5 E5 9B FF 버전 헤더길이 서비스유형 전체길이
11. 해킹기술 (4) - hacking & security -
Network Security - Wired Sniffing 실습
2장. TCP/IP, 서브넷팅 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
TCP/IP Socket Cover Slide 조태문.
V44408(다산네트웍스) 개량개선 내역(1.05) KT 네트워크기술지원본부 유선액세스망기술담당 1
Network 네트워크 이론 및 실습 TCP / IP 4장.
Introduction to Networking
Minicom,tftp,nfs설정,vnc설정
제 18 장 TCP/IP 연결 확립과 종료 정보통신연구실.
Chapter 09 세션 하이재킹.
네트워크 보안 TCP/IP 네트워크통신 개념.
18. HTTP 보안 -dsniff 실시간 정보 시스템 LAB 이 영 주 RTIS LAB.
Ethereal 을 이용한 프로토콜 분석 윤 상 호 이 정 열 정 우 석.
Chapter 8 목차 8.1 네트워크 보안이란 무엇인가? 8.2 암호학의 원리 8.3 메시지 무결성 8.4 종단점 인증
Part 06 보안 1. Windows 보안 2. Linux 보안 3. 해킹 기술 4. 네트워크 장비 보안 5. 해킹 도구.
RTSP, RTP 김현철.
NAC Test 시나리오 내부단말 통제 보안 BMT 시나리오
Chapter 06 스니핑.
Men In the Middle, Simple but critical issue.
11. 해킹기술 (2) - hacking & security -
1. SNMP SNMP(Simple Network Management Protocol)은 네트워크의 중앙집중화된 관리를 목적으로 만들어졌으며, 현재까지 버전 3까지 세가지 버전이 만들어졌다. 각 버전의 차이는 대부분 보안상의 문제에 의한 것이다. SNMP 발전 과정 버전.
Chapter 8 목차 8.1 네트워크 보안이란 무엇인가? 8.2 암호학의 원리 8.3 메시지 무결성 8.4 종단점 인증
리눅스 명령어 실습 임베디드 시스템 I.
Chapter 05 목록화.
Network Security Footprint & Scan.
정보보호 실습 #2 네트워크 스캐닝 Choong Seon Hong Networking Lab.
세미나.. NETWORK??!! 저자 : 장경칩 도전하라 창조의 세계로(SINCE 1992) - 장경칩.
Access Control Lists Access Control List
3부 해킹 전 정보 획득 Chapter 6. 풋프린팅과 스캔
시스템 운영계획 통신 케이블 제작 엑세스 포인트, 스위치, 라우터 설치 및 환경구성
DoS와 DDoS 공격 DOS와 DDOS 공격의 이해 DOS 공격의 이해 DDOS 공격의 이해 한빛미디어(주)
4 Whois와 DNS 조사.
2장. TCP/IP, 서브넷팅 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
Wireshark Protocol 분석 지정석 김도건 박재영
Part 04-3 Windows 2000 Server IIS Outlook Express 도메인 사용 관리자
1 학습 목표 네트워크의 기초 네트워크 관련 기초 용어를 익힌다.
인터넷보안 실습 2012년 1학기.
Transmission Control Protocol (TCP)
9 스푸핑.
TCP/IP 네트워크 구조 TCP/IP 개요 TCP/IP 프로토콜 한빛미디어(주).
Computer Network(Hacking)
컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부.
8 네트워크 계층 프로토콜 학습 목표 IPv6의 필요성과 헤더 구조를 이해한다. 이동 IP 프로토콜의 터널링 원리를 이해한다.
9 스푸핑.
3부 해킹 전 정보 획득 Chapter 9. IP 주소 추적
Information Security - Network Scanning.
Information Security - Sniffing 실습.
홍미영 부평구 재정 및 운영방향 인천광역시 부평구.
Ethereal 컴퓨터 통신망.
Data Compression 데이터 압축:음성, 비디오, 팩시밀리 전송등과 같은 경우에 중요
네트워크는 각종 공격들의 위협(Threat)을 받고 있다.
11월 고등부 공과설교 업드림? 업드림! 갈라디아서 6:9-10.
Presentation transcript:

11 세션 하이재킹

학습목표 내용 세션 하이재킹 공격의 패턴을 이해한다. 세션 하이재킹 공격을 실행할 수 있다. 세션 하이재킹 공격을 탐지할 수 있다. 세션 하이재킹 공격 시 이에 대한 적절한 대책을 이해한다. 세션 하이재킹 공격에 대한 예방법을 이해한다. MITM 공격을 이해한다. MITM 공격을 수행할 수 있다. 내용 세션 하이재킹 공격 TCP 세션 하이재킹 MITM 공격

TCP 세션 하이재킹 세션 하이재킹(Session Hijacking) TCP 세션 하이재킹 서버와 클라이언트가 TCP를 이용해 통신하고 있을 때 RST 패킷을 보내 일시적으로 TCP 세션을 끊고 시퀀스 넘버를 새로 생성하여 세션을 빼앗고 인증을 회피하는 것 Non-Blind Attack과 Blind Attack이 있음. Non-Blind Attack은 공격 대상을 탐지할 수 있으며 서버와 클라이언트가 통신할 때 시퀀스 넘버를 알아낼 수 있지만, Blind Attack은 불가능. 기본 알고리즘은 동일 트러스트를 이용한 세션은 물론 텔넷, FTP 등TCP를 이용한 거의 모든 세션의 갈취 가 능. 인증 문제 해결을 위한 일회용 패스워드, 토큰 기반 인증을 이용한 세션도 갈취 가능

TCP 세션 하이재킹 TCP 쓰리웨이 핸드셰이킹에서 정상적인 TCP 세션 성립 과정 정상적인 접속일 경우 시퀀스 넘버는 동기화 상태에 있으며, 클라이언트가 가지고 있는 시퀀스 넘버를 서버가, 서버가 가지고 있는 시퀀스 넘버를 클라이언트가 정확히 알고 서 로 일치

TCP 세션 하이재킹 ➊ 연결 전 클라이언트의 포트는 Closed 상태, 서버는 서비스를 제공하려고 기다리므로 Listen 상태 ➋ 클라이언트는 32비트 숫자 중 임의의 숫자(Client_My_Seq)를 생성하여 서버에 Syn 패킷을 보냄. 서버 는 클라이언트가 보낸 Client_My_Seq 값을 읽어 Server_Client_Seq 값으로 저장. 이때 클라이언트는 Syn_Sent 상태 ➌ 서버는 Server_My_Seq 값을 생성하고, Server_Client_Seq에 패킷의 길이만큼 더해서 클라이언트로 보냄. 여기서 데이터는 0이므로, 단지 +1이라고만 표시. 서버는 Syn_Received 상태가 되며, 클라이언 트는 Server_Client_Seq+1을 받아 자신의 Client_My_Seq와 비교해 일치하면 Server_My_Seq 값을 Client_Server_Seq 값으로 저장 ➍ 클라이언트는 Client_Server_Seq+1을 서버에 보내고 Established 상태. 서버도 클라이언트가 보낸 Client_Server_Seq+1과 자신의 Server_My_Seq와 비교해 일치하면 Established 상태 • Client_My_Seq = Server_Client_Seq • Server_My_Seq = Client_Server_Seq

TCP 세션 하이재킹 서버와 클라이언트 비동기화 상태 데이터가 전송되기 전까지는 안정적(stable)인 상태 Client_My_Seq ≠ Server_Client_Seq Server_My_Seq ≠ Client_Server_Seq 데이터가 전송될 때는 다음과 같은 상태의 데이터가 차후 사용을 위해 저장되지만 클라 이언트에 서버의 승인 번호는 전달되지 않음 Server_Client_Seq < Client_My_Seq Client_My_Seq < Server_Client_Seq + Data_Len 패킷 수신이 불가능한 상태며, 데이터도 버려짐 Server_Client_Seq + Data_Len < Client_My_Seq Client_My_Seq < Server_Client_Seq

TCP 세션 하이재킹 비동기화를 만드는 방법 TCP 세션 하이재킹 공격(새로운 접속을 생성하여 비동기화하는 방법 이용) 서버에서 초기 설정 단계의 접속을 끊고 다른 시퀀스 넘버로 새로운 접속 생성 대량의 널(null) 데이터를 보냄 TCP 세션 하이재킹 공격(새로운 접속을 생성하여 비동기화하는 방법 이용) TCP를 이용한 세션은 클라이언트 IP 주소/포트 번호, 서버의 IP 주소/포트 번호 구성 TCP 세션 하이재킹은 서버와 클라이언트가 각자 알고 있는 시퀀스 넘버를 조작해 속인 후 다음 상황을 만듦 클라이언트측 Client_My_Seq = 공격자가 생성한 Server_Client_Seq Client_Server_Seq = 공격자가 생성한 Server_My_Seq 서버측 Server_Client_Seq = 공격자가 생성한 Client_My_Seq Server_My_Seq = 공격자가 생성한 Client_Server_Seq

TCP 세션 하이재킹 TCP 세션 하이재킹 공격 순서

TCP 세션 하이재킹 ➊ 클라이언트는 서버와 모두 접속되어 있는 Established 상태, 공격자는 적절한 시퀀스 넘버를 획득하기 위해 스니핑을 하고 있음 ➋ 공격 시점에 비동기화 상태 중 세션이 완전히 끊어지지 않는 시퀀스 넘버의 범위에서 RST 패킷을 생성하여 서버에 보냄 서버는 잠시 Closed 상태가 되나 클라이언트는 그대 로 Established 상태 ➌ 공격자는A_Client_My_Seq를 생성하여 서버에 보냄 ➍ 서버는 새로운 A_Client_My_Seq를 받아들이고, Server_My_Seq를 재생성하여 공격 자에게 보낸 후 Syn_Received 상태 ➎ 공격자는 정상 연결처럼 서버와 시퀀스 넘버를 교환하고, 공격자와 서버 모두 Established 상태. 원래의 클라이언트는 여전히 Established 상태고 서버의 네트워크 상태로 인한 잠시 동안의 연결 문제로 받아들임. 연결은 끊어졌지만 인증 세션은 열린 상태

TCP 세션 하이재킹 hunt(세션 하이재킹 툴) 특징 연결 관리 데몬(daemon) DNS 서버를 통한 호스트 주소 확인 관심 있는 접속 설정 자신의 시스템에 접속하려는 연결 탐지 ACK Storm의 탐지를 통한 능동적 세션 하이재킹 ARP 스푸핑 탐지 하이재킹한 후 서버와 클라이언트 간 동기화 접속 리셋 접속 감시 데몬(daemon) 자동 접속 리셋을 위한 리셋 데몬 ARP 스푸퍼와ARP 스푸핑을 위한 릴레이 데몬(ARP 스푸핑도 가능) MAC 주소 수집을 위한MAC 탐색 데몬 TCP 트래픽에서 특정 문자열을 탐색할 수 있는 스니퍼 데몬 DNS 서버를 통한 호스트 주소 확인 TCP, UDP, ARP, ICMP 패킷 감시 연결된TCP 세션 목록 출력 온라인의 호스트 목록 출력

실습 11-1 hunt를 이용해 텔넷 세션 하이재킹하기 ➊ 클라이언트가 서버로 텔넷 접속을 한다. ➋ 공격자가ARP 스푸핑으로 패킷의 흐름을 공격자를 통과하도록 변경한다. ➌ 클라이언트와 서버의 통신을 끊고, 해당 세션을 클라이언트로부터 빼앗는다. • 텔넷 서버 시스템 : 리눅스 페도라 12 • 텔넷 클라이언트 시스템 : 윈도우 XP(리눅스 페도라 12도 무관) • 공격자 시스템 : 리눅스 페도라 12 • 필요 프로그램 : hunt.i686(버전 1.5-11) 실습환경

실습 11-1 hunt를 이용해 텔넷 세션 하이재킹하기 hunt 설치 ➊ yum list hunt ➋ yum install hunt 텔넷 접속 생성 : 텔넷 클라이언트로부터 텔넷 서버에 연결 ARP 스푸핑 & 패킷 릴레이 실행 3-1 hunt 실행 ➊ hunt ➋ [d] 입력 1   2 3 

실습 11-1 hunt를 이용해 텔넷 세션 하이재킹하기 3-2 ARP 스푸핑 메뉴 실행 [a] 입력 3-3 ARP 스푸핑을 위한 릴레이 데몬 실행 [s] 입력 3-4 ARP 스푸핑 [s] 입력

실습 11-1 hunt를 이용해 텔넷 세션 하이재킹하기 세션의 탐지 ➊ [x] 두 번 입력 ➋ [l] 입력 스니핑 모드 수행 5-1 hunt 실행 ➊ [a] 입력 ➋ choose conn> 0 input mode : r dump connectin : y dump : b print src/dst same characters : y 4 5 

실습 11-1 hunt를 이용해 텔넷 세션 하이재킹하기 5-2 공격 실행 후 피공격자 시스템에서 ls -al 명령 수행 5-3 공격 실행 후 공격자 시스템 화면 확인

실습 11-1 hunt를 이용해 텔넷 세션 하이재킹하기 세션 하이재킹 수행 6-1 hunt 실행 : [Ctrl]+[c]를 수행하고 피공격자가 글자 입력 6-2 TCP 세션 하이재킹 공격 완료 ls -al 6

TCP 세션 하이재킹 탐지 방법 비동기화 상태 탐지 ACK Storm 탐지 패킷의 유실 및 재전송 증가 탐지 서버와 시퀀스 넘버를 주기적으로 체크하여 비동기화 상태에 빠지면 이를 탐지 ACK Storm 탐지 전송 중 윈도우 크기와 시퀀스 넘버가 맞지 않는 상태가 되면 서로에 대한 교정 패킷이 정상적으로 작동하지 못하기 때문에 무한 루프에 걸리게 됨. 결국 ACK 패킷의 비율이 급격히 늘어남 패킷의 유실 및 재전송 증가 탐지 공격자가 중간에 끼어서 작동하므로 패킷의 유실과 재전송이 발생하여 서버와의 응답 시간이 길어짐 기대하지 않은 접속의 리셋 세션 하이재킹 공격에 대한 최우선 대응책은 데이터 전송의 암호화와 지속적인 인증을 통한 세션의 유효성 확인

MITM 공격 MITM 공격 두 개체 간 통신에 끼어서 데이터 끼워넣기/빼기/복호화 등 데이터 흐름에 영향을 미치 는 공격 ARP 리다이렉트, ICMP 리다이렉트, ARP 스푸핑 모두 엄밀히 말하면 MITM 공격이지 만 일반적으로 MITM 공격을 말할 때는 이 세 가지 공격을 언급하지는 않음 ARP 리다이렉트, ICMP 리다이렉트, ARP 스푸핑 공격은 우선 전달되는 패킷의 MAC이 나 IP 주소는 바꾸나 패킷 내용을 바꾸지는 않지만 MITM은 패킷 내용을 바꾸는 것도 시도

실습 11-2 웹에서 MITM 공격하기 실습환경 • 공격자 시스템 : 리눅스 페도라 12 • 내부 웹 서버 시스템 : 리눅스 페도라 12 • 클라이언트 시스템 : 윈도우 XP • 필요 프로그램 : ettercap 실습환경

실습 11-2 웹에서 MITM 공격하기 ettercap 설치 ➊ yum list etter* ➋ yum install ettercap.i686 내부 웹 서버 설정 1   2

실습 11-2 웹에서 MITM 공격하기 etterfilter 설정 etterfilter 컴파일 etterfilter -o filter.ef filter.txt 3 4

실습 11-2 웹에서 MITM 공격하기 MITM 공격 수행 5-1 ettercap 공격 1 ettercap -T -q -F filter.ef -M ARP /192.168.0.101/ // -T : ettercap을 텍스트 모드로 수행한다. -q(--quite) : 패킷의 내용을 출력하지 않는다. -F filter.ef : filter.ef 파일을 이용해 필터를 수행한다. -M ARP : ARP를 이용해MITM 공격을 수행한다. /192.168.0.101/ : 공격 대상 1, 공격 대상을 192.168.0.101로 한다. // : 공격 대상 2, 아무 값도 없으면 공격을 기본 게이트웨이로 한다. 5

실습 11-2 웹에서 MITM 공격하기 5-2 ettercap 공격 2

MITM 공격 SSH 암호화 통신 1단계 : 최초 클라이언트가 SSH를 통해서 SSH 서버에 접근하고자 하면, 클라이언트는 서버의 공개키를 얻어옴 2단계 : 클라이언트는 자신의 사설키로 데이터를 암호화하고 이를 다시 서버의 공개키 로 암호화하여 서버로 전송 3단계 : 서버는 클라이언트로부터 전송받은 암호화된 데이터를 자신의 사설키로 먼저 복호화한 후, 이를 다시 클라이언트의 공개키로 복호화해서 데이터를 읽음

MITM 공격 SSH MITM 공격 1단계 : 클라이언트가 서버에 SSH 접속을 요청할 때, 공격자가 ARP 스푸핑 같은 공격 으로 네트워크를 장악한 후 클라이언트의 공개키 요청을 받고 SSH 서버인 것처럼 자신 의 공개키를 전송. 공격자는 클라이언트가 원래 접속하고자 한 서버에 자신이 클라이언 트인 것처럼 공개키를 요청 2단계 : 정상적인 접속에서 클라이언트가 서버에 암호화된 데이터를 보내면 공격자는 이를 자신의 사설키와 클라이언트의 공개키로 복호화하고 내용을 확인. 그런 다음 다시 자신의 사설키와 서버의 공개키로 암호화해서 서버로 전송 3단계 : 서버가 클라이언트로 데이터를 보낼 때도 공격자는 서버가 전송한 데이터를 복 호화한 후, 다시 암호화해서 클라이언트로 전송

MITM 공격 SSL 암호화 통신 1단계 : 클라이언트는 자신의 SSL 버전과 암호화 알고리즘, 임의로 만든 데이터, 서버가 인증과 관련해 요구하는 일반 정보를 서버로 보냄 2단계 : 서버는 서버의 SSL 버전과 암호화 알고리즘, 클라이언트가 접속하는 데 필요한 정보를 클라이언트에 보냄 3단계 : 서버가 자신의 인증서를 클라이언트에 보내주면, 클라이언트는 서버가 보낸 인 증서를 확인하여 서버를 인증. 인증에 실패할 경우 신뢰할 수 없는 서버임을 경고 4단계 : 인증이 확인되면 서버는 클라이언트에‘Master Secret’를 암호화하여 전송하고, 클라이언트와 서버는‘Master Secret’를 이용하여 통신에 사용할 세션키를 만들어냄 5단계 : 이후 서버와 클라이언트 간에 전송되는 데이터는 모두 세션키를 통해 암호화하 여 전송됨

실습 11-3 SSL MITM 공격하기 실습환경 • 공격자 시스템 : 리눅스 페도라 12 • 공격 대상 시스템 : 윈도우 XP • 필요 프로그램 : dsniff 패키지(webmitm, dnsspoof, arpspoof), fragrouter 실습환경

실습 11-3 SSL MITM 공격하기 SSL 통신 확인

실습 11-3 SSL MITM 공격하기  DNS 스푸핑 공격 준비 ➊ vi /etc/dsniff/dnsspoof.hosts ➋ 192.168.0.2 *.mozilla.org, 192.168.0.2 *.mozilla.or.kr 추가 SSL 접속을 위한 인증서 생성과 webmitm 실행 3-1 인증서 생성 webmitm 2  3

실습 11-3 SSL MITM 공격하기 3-2 인증서 생성 내용 확인 vi webmitm.crt 3-3 웹 서버와 webmitm의 충돌 오류 webmitm

실습 11-3 SSL MITM 공격하기   3-4 웹 서버 중단 후 webmitm 실행 ➊ service httpd stop ➋ webmitm –d DNS 스푸핑 공격 준비 ettercap -T -q -M ARP /192.168.0.101/ //   4

실습 11-3 SSL MITM 공격하기 DNS 스푸핑 공격 5-1 DNS 스푸핑 공격 실행 dnsspoof -i eth0 -f /etc/dsniff/dnsspoof.hosts 5-2 클라이언트 DNS 정보 초기화 ipconfig /flushdns 클라이언트에서 접속 시도 6-1 tcpdump를 이용한 패킷 캡처 tcpdump -w [파일 이름] 5 6

실습 11-3 SSL MITM 공격하기 6-2 webmitm의 인증서 확인 패킷 복호화 확인 7-1 암호화된 패킷 확인 7

실습 11-3 SSL MITM 공격하기 7-2 SSL 복호화 설정 ,,,c:\webmitm.crt 7-3 복호화된 패킷

MITM 공격 보안 대책 ARP 스푸핑과 DNS 스푸핑이 이루어져야 하므로, ARP 스푸핑과 DNS 스푸핑에 대한 대응책과 기본적으로 같음 SSH MITM 공격의 경우 SSL 2.0을 사용하면, 막을 수 있고, SSL의 경우에는 인증서를 잘 확인 [그림 11-45] 인증서 정보 확인