Chapter 09 세션 하이재킹.

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.
Intrusion Detection System( 침 입탐지시스템 ) Wireless/Mobile Network Lab 박준석.
8 스니핑.
10 터널링.
조준희 (Cho, Junhee) TCP/IP 조준희 (Cho, Junhee)
네트워크해킹 분석 및 대응 한국정보보호교육센터 서 광 석 원장.
Server Load Balancing Alteon Web Switch
Chapter 03. 네트워크 보안 : 길을 지배하려는 자에 대한 저항
HACKING 김진수 소준형 유병화.
A multipurpose Hacking Tool for MITM
1. 스푸핑 공격 - 스푸핑(Spoofing): ‘속이다’ 의 의미.
한드림넷 솔루션 소개.
공격/대응 Examples.
Aegis L
암호화 기술(IPsec,SSL) 배문주 송정미 황유진.
Chapter 06. 프로토콜.
RTSP, RTP 김현철.
제목 CHAPTER 09. 정보 보안 선택이 아닌 필수_정보 보안 기술과 정보 윤리.
Network Security - Wireless Sniffing 실습
Cisco ASA 5500 Configuration Guide - 기본 및 Firewall 기능 설정 (ASA 8
11. 해킹기술 (4) - hacking & security -
Network Security - Wired Sniffing 실습
2장. TCP/IP, 서브넷팅 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
Chapter 02. 시스템 보안 : 건강한 시스템이 챙겨야 할 기본
서버의 종류와 기능 환경공학과 권진희.
Network 네트워크 이론 및 실습 TCP / IP 4장.
Introduction to Networking
Firewall & N-IDS 김창현.
윈도우&유닉스 시스템 보안설정 Start! 서화섭.
네트워크 보안 TCP/IP 네트워크통신 개념.
Chapter 02 네트워크에 대한 이해.
18. HTTP 보안 -dsniff 실시간 정보 시스템 LAB 이 영 주 RTIS LAB.
Chapter 8 목차 8.1 네트워크 보안이란 무엇인가? 8.2 암호학의 원리 8.3 메시지 무결성 8.4 종단점 인증
RTSP, RTP 김현철.
박 명 호 한남대학교 컴퓨터공학과 인공지능 실험실
NAC Test 시나리오 내부단말 통제 보안 BMT 시나리오
Chapter 06 스니핑.
Men In the Middle, Simple but critical issue.
국산 Firewall 제품 비교표 SecureShield SecureWorks InterGuard Hwarang
자바 5.0 프로그래밍.
Processing resulting output
Chapter 05 목록화.
Network Security Footprint & Scan.
세미나.. NETWORK??!! 저자 : 장경칩 도전하라 창조의 세계로(SINCE 1992) - 장경칩.
Choi Seong Yun 와이어샤크 Choi Seong Yun
11 세션 하이재킹.
Access Control Lists Access Control List
3부 해킹 전 정보 획득 Chapter 6. 풋프린팅과 스캔
WireShark 와 Cain & Abel을 이용한 네트워크 해킹
Wireshark Protocol 분석 지정석 김도건 박재영
Information Security - Wired Sniffing 실습
Part 04-3 Windows 2000 Server IIS Outlook Express 도메인 사용 관리자
1 학습 목표 네트워크의 기초 네트워크 관련 기초 용어를 익힌다.
인터넷보안 실습 2012년 1학기.
[필독] 답지전송 방법!!! 모니터링에서 파일전송 하는것과 proctor 사이트에 백업파일을 등록 하는것을
9 스푸핑.
TCP/IP 네트워크 구조 TCP/IP 개요 TCP/IP 프로토콜 한빛미디어(주).
Computer Network(Hacking)
실전 프로젝트: 홈페이지 구축 시트콤 프렌즈 팬 사이트 구축하기.
Internet & WWW Protocols
Packet sniffing 응용 레벨이 아닌 네트워크 디바이스 레벨에서의 데이타을 얻는 것 네트워크 상의 트래픽을 분석
9 스푸핑.
3부 해킹 전 정보 획득 Chapter 9. IP 주소 추적
Information Security - Sniffing 실습.
HTML5 웹 프로그래밍 입문 홈페이지 계정.
매물장 로그인 직원을 미리 생성하시면 직원 ID로 로그인 가능.
Ethereal 컴퓨터 통신망.
Data Compression 데이터 압축:음성, 비디오, 팩시밀리 전송등과 같은 경우에 중요
네트워크는 각종 공격들의 위협(Threat)을 받고 있다.
Presentation transcript:

Chapter 09 세션 하이재킹

01 세션 하이재킹 공격 02 TCP 세션 하이재킹 03 MITM 공격

세션 하이재킹 공격의 패턴을 이해하고 실행할 수 있다. 세션 하이재킹 공격을 탐지할 수 있다. 세션 하이재킹 공격 시 적절한 대책과 예방법을 이해한다. MITM 공격을 이해하고 수행할 수 있다.

세션 하이재킹(Session Hijacking) 1. 세션 하이재킹 공격 1.1 세션 하이재킹 공격 세션 하이재킹(Session Hijacking) ‘세션 가로채기’라는 의미 세션 : 사용자와 컴퓨터, 두 컴퓨터 간의 활성화 상태(통신이 진행 중인 상태) 시스템에 침투하기 위해 패스워드를 획득하기는 어렵기 때문에 현재 연결중인 세션을 가로채 사용자처럼 위장하는 공격 -> ID와 패스워드 인증을 회피할 수 있음

2. TCP 세션 하이재킹 TCP 세션 하이재킹 2.1 TCP 세션 하이재킹에 대한 이해 Non-Blind Attack(로컬 세션 하이재킹 공격) 서버와 클라이언트가 통신할 때 TCP의 시퀀스 넘버를 제어의 문제점을 파고든 공격 공격 대상을 탐지할 수 있으며, 시퀀스 넘버를 알아낼 수 있음. Blind Attack(원격 세션 하이재킹) 공격 대상을 탐지할 수 없으며 시퀀스 넘버를 알아낼 수 없음. -> 세션번호를 맞추기 어려워 성공확률이 매우 낮다.

TCP 시퀀스 넘버 교환(Piggybacking 방식, TCP 해더:79페이지)

TCP 세션 하이재킹은 동기화상태를 무너뜨리는 비동기화 상태를 만드는 것으로 시작함 동기화(Synchronized) 상태 Client_My_Seq = Server_Client_Seq Server_My_Seq = Client_Server_Seq TCP 세션 하이재킹은 동기화상태를 무너뜨리는 비동기화 상태를 만드는 것으로 시작함

비동기화(Desynchronized) 상태 2. TCP 세션 하이재킹 2.1 TCP 세션 하이재킹에 대한 이해 비동기화(Desynchronized) 상태 데이터가 전송되기 전까지는 안정적인(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 비동기화 상태로 만드는 방법 서버에서 초기 설정 단계의 접속을 끊고 다른 시퀀스 넘버로 새로운 접속 생성 널(Null) 데이터를 보내는 방법

2. TCP 세션 하이재킹 새로운 접속 생성하기 2.1 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 순서번호를 조작하여 클라이언트 – 공격자, 공격자 – 서버 간 세션 연결이 되 도록 함

2. TCP 세션 하이재킹 새로운 접속 생성하기 2.1 TCP 세션 하이재킹에 대한 이해 (스니핑, 순서번호 획득) (대기) (새로운 세션연결) (세션 하이재킹) (서버전달) (공격자 스니핑) (서버전송)

2. TCP 세션 하이재킹 2.1 TCP 세션 하이재킹에 대한 이해 애크 스톰(Ack Storm) 세션 하이재킹 공격절차 클라이언트가 정상적인 패킷을 보내면 서버는 정상적이지 않은 시퀀스 넘버로 인식하며, 시퀀스 넘버를 맞추기 위해 ACK 패킷에 Server_My_Seq와 Server_Client_Seq를 담아 보냄. 클라이언트는 서버가 보내온 Server_Client_Seq가 자신의 Client_My_Seq와 다 름을 확인하고, 서버에 Client_My_Seq 와 Client_Server_Seq가 담긴 ACK를 보 내는데 이렇게 서로 ACK를 보내는 과정이 무한히 반복되는 경우를 뜻함. → 잘못된 패킷이 전달되지 않도록 ARP 스푸핑을 해두고 공격을 실시함 세션 하이재킹 공격절차 목표 설정 : 텔넷, FTP와 같은 세션 연결기반 서버를 목표로 함 순서번호 난이도 검사 : 운영체제에 따라 순서번호 추측 난이도가 다름 공격대상 세션설정 : 많은 트래픽이 존재할 때 수행하는 것이 탐지를 어렵게 할 수 있음 순서번호 추측 : 공격자가 세션을 성공적으로 가로채기 위해서 순서번호를 추측해야 함 사용자 죽이기 : 시스템 거부 공격으로 세션연결을 죽임 세션 하이재킹 : 세션을 빼앗아 정보를 탈취

2. TCP 세션 하이재킹 공격 순서 실습 9-1 텔넷 세션 하이재킹하기 클라이언트가 서버로 텔넷 접속을 한다. 공격자가 ARP 스푸핑으로 패킷의 흐름이 공격자를 통과하도록 변경한다. 클라이언트와 서버의 통신을 끊고, 해당 세션을 클라이언트로부터 빼앗는다.

2. TCP 세션 하이재킹 shijack 설치하기 실습 9-1 텔넷 세션 하이재킹하기 https://packetstormsecurity.com/files/24657/shijack.tgz.html 압축 풀어 실행 tar xvzf shijack.tgz :

2. TCP 세션 하이재킹 shijack 설치하기 실습 9-1 텔넷 세션 하이재킹하기 shijack-lnx를 실행하여 실행 옵션 확인 ./shijack-lnx

2. TCP 세션 하이재킹 텔넷 클라이언트와 서버 간 접속 생성하기 실습 9-1 텔넷 세션 하이재킹하기 텔넷 클라이언트 : telnet 192.168.0.2

2. TCP 세션 하이재킹 패킷 릴레이 설정하기 실습 9-1 텔넷 세션 하이재킹하기 ARP 스푸핑 공격 전 fragrouter를 이용하여 패킷이 끊어지지 않도록 준비 공격자시스템: fragrouter -B1

2. TCP 세션 하이재킹 ARP 스푸핑(공격자 시스템) 실습 9-1 텔넷 세션 하이재킹하기 arpspoof -t 192.168.0.2 192.168.0.200 arpspoof -t 192.168.0.200 192.168.0.2

2. TCP 세션 하이재킹 패킷 확인하기 세션 하이재킹 공격 수행하기 실습 9-1 텔넷 세션 하이재킹하기 tcpdump를 이용하여 텔넷 서버와 클라이언트 간의 패킷 확인 세션 하이재킹 공격 수행하기 ./shijack-lnx eth0 192.168.0.200 37426 192.168.0.2 23

2. TCP 세션 하이재킹 세션 하이재킹 공격 수행하기 실습 9-1 텔넷 세션 하이재킹하기 클라이언트에서 아무 키나 입력하면 shijack에서 탐지한 패킷의 시퀀스 넘버를 확인하고 세션을 하이재킹함.

2. TCP 세션 하이재킹 세션 하이재킹 공격 수행하기 실습 9-1 텔넷 세션 하이재킹하기 세션 하이재킹이 완료된 상태에서 test 디렉토리를 생성하는 명령어 입력 mkdir test 텔넷 서버에서 해당 폴더를 확인

2. TCP 세션 하이재킹 TCP 세션 하이재킹의 보안 대책 2.2 TCP 세션 하이재킹의 보안 대책 가장 기본적인 보안 대책 SSH와 같이 암호화된 연결을 사용하는 것 -> 스니핑한 내용을 알 수 없도록 함 비동기화 상태 탐지 서버와 시퀀스 넘버를 주기적으로 체크하여 비동기화 상태에 빠지는지 탐지 ACK Storm 탐지 윈도우 크기에 맞지 않는 데이터가 전송되면 정확한 윈도우 크기에 대한 교정 패킷을 보내게 되고, 서로에 대한 교정 패킷이 정상적으로 작동하지 못하기 때문에 무한 루프 에 걸리게 됨. 패킷의 유실과 재전송 증가 탐지 공격자가 중간에 끼어서 동작을 하므로 패킷의 유실과 재전송이 발생하고 응답시간이 길어짐 예상치 못한 접속의 리셋 세션 하이재킹에 대한 최우선의 대책은 데이터 전송의 암호화

MITM(Man In The Middle) 공격 글자 그대로 누군가의 사이에 끼어드는 것, 스푸핑과 유사 클라이언트와 서버의 통신에 암호화된 채널을 이용하면서 ARP 리다이렉트와 ICMP 리다이렉트, ARP 스푸핑이 무용지물이 되자 이를 극복하기 위해 탄생 MITM은 패킷 MAC과 IP주소 뿐만 아니라 데이터 내용까지 바꾸기를 시도

3. MITM 공격 내부 웹 서버 설정하기 실습 9-2 웹에서 MITM 공격하기 클라이언트가 외부 웹서버에 요청하는 페이지의 그림을 모두 내부 웹서버 그림으로 교체하는 MITM 공격 수행하기 내부 웹 서버 설정하기 C:\inetpub\wwwroot 폴더에 그림 파일 넣기 192.168.0.1/bonobono.jpg 192.168.0.1 Etterfilter 실행

etterfilter 설정하기(공격자) 3. MITM 공격 실습 9-2 웹에서 MITM 공격하기 etterfilter 설정하기(공격자) 공격을 위해서 필터를 먼저 만들어 둠.

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

3. MITM 공격 MITM 공격 수행하기(공격자) 실습 9-2 웹에서 MITM 공격하기 ettercap을 –G 옵션을 이용하여 GUI 환경으로 실행 ettercap - G

3. MITM 공격 MITM 공격 수행하기(공격자) 실습 9-2 웹에서 MITM 공격하기 [Sniff]-[Unified Sniffing] 선택 : 스니핑 기능 [Hosts]-[Hosts List]를 실행하고 [Hosts]-[Scan for hosts]를 실행하여 해당 네트 워크의 모든 호스트를 확인 공격 대상 시스템 선택 후, 공격 대상에 추가(192.168.0.100)

3. MITM 공격 MITM 공격 수행하기(공격자) 실습 9-2 웹에서 MITM 공격하기 [Targets]-[Current Targets]를 실행하여 추가된 공격 대상 확인 [Filters]-[Load a filter]를 이용하여 filter.ef 필터를 지정

3. MITM 공격 MITM 공격 수행하기(공격자) 실습 9-2 웹에서 MITM 공격하기 [Mitm]-[ARP poisoning]으로 ARP 스푸핑 공격을 수행 팝업 창에서 ‘Sniff remote connections’를 선택하여 라우터로 통하는 패킷을 스니핑

3. MITM 공격 MITM 공격 확인하기(클라이언트) 실습 9-2 웹에서 MITM 공격하기 클라이언트에서 아무 사이트나 접속한 후 확인

SSH(Secure Shell) 암호화 기법 3. MITM 공격 3.2 SSH MITM SSH(Secure Shell) 암호화 기법 1단계 : 클라이언트가 SSH를 통해 SSH 서버에 접근하여 서버의 공개키를 받음. 2단계 : 클라리언트는 자신의 사설키로 데이터를 암호화하고, 이를 다시 서버의 공개키로 암호화하여 서버로 전송 클라이언트 SSH 서버

SSH(Secure Shell) 암호화 기법 3. MITM 공격 3.2 SSH MITM SSH(Secure Shell) 암호화 기법 3단계 : 서버는 클라이언트로부터 전송받은 암호화된 데이터를 자신의 사설키 로 복호화한 후, 이를 다시 클라이언트의 공개키로 복호화해서 데이터를 읽음.

3. MITM 공격 SSH 암호화 통신에 대한 MITM 공격 3.2 SSH MITM 1단계 : 클라이언트가 서버에 SSH 접속을 요청하면 공격자가 ARP 스푸핑과 같 은 공격으로 네트워크를 장악하여 SSH 서버인 것처럼 자신의 공개키를 전송, 공격자는 서버에 자신이 클라이언트인 것처럼 공개키를 요청

3. MITM 공격 SSH 암호화 통신에 대한 MITM 공격 3.2 SSH MITM 2단계 : 정상적인 접속에서 클라이언트가 서버에 암호화된 데이터를 보내면 공 격자는 자신의 사설키와 클라이언트의 공개키로 복호화하고 내용을 확인한 후 다시 자신의 사설키와 서버의 공개키로 암호화해서 서버로 전송 3단계 : 서버가 클라이언트로 데이터를 보낼 때도 공격자는 서버가 전송한 데 이터를 복호화한 후, 다시 암호화해서 클라이언트로 전송

3. MITM 공격 SSL 3.3 SSL MITM 넷스케이프가 개발한 것으로, 40비트와 128비트 암호화 통신 가능 클라이언트는 서버에게 지원 가능한 방식(암호, 키 교환, 서명, 압축)을 알려줌 서버는 클라이언트에게 지원 가능한 방식이 포함된 서버 인증서를 클라이언트에게 발송 서버가 클라이언트 인증서를 요구할 경우 클라이언 트는 인증서를 서버로 전송 암호화키로 사용될 세션키를 랜덤으로 생성하고 서 버의 공개키로 암호화한 후 서버로 전송 서버는 클라이언트에게 전송받은 세션키 복호화 클라이언트는 전송된 모든 메시지에 대한 방식을 다음부터 적용할 것을 알리는 종결 메시지를 발송한 후 데이터 전송 단계로 이동 (암호화방식, 서버인증서 요청) 서버 공개키로 암호화 (클라이언트인증서 요청) (서버 공개키로 안호화) 암호화 데이터 전송

3. MITM 공격 3.3 SSL MITM SSL 스니핑 공격자는 임의의 인증서를 생성한 뒤 클라이언트에게 보내 별도의 SSL 세션을 생성하고, 이를 중간에 스니핑

3. MITM 공격 3.3 SSL MITM SSL 스트립 공격자는 클라이언트와 서버 간의 모든 암호화된 HTTPS 데이터를 HTTP로 변 조하여 클라이언트에게 전달

3. MITM 공격 SSL 통신 확인하기 실습 9-3 SSL 스니핑 공격하기 SSL로 웹 서비스를 제공하는 사이트 확인하기 www.daum.net

3. MITM 공격 DNS 스푸핑 공격 준비하기 실습 9-3 SSL 스니핑 공격하기 dnsspoof.hosts 파일에 다음 사이트에 대한 경로를 추가하여 공격자 자신을 참 조하도록 함. vi ./dnsspoof.hosts 192.168.0.201 *.daum.net 추가

SSL 접속을 위한 인증서 생성과 webmitm 실행하기 webtitm

SSL 접속을 위한 인증서 생성과 webmitm 실행하기 인증서 파일에서는 RSA 사설키와 인증서 내용을 확인할 수 있음. vi webmitm.crt

3. MITM 공격 ARP 리다이렉트 공격 및 패킷 릴레이 실습 9-3 SSL 스니핑 공격하기 ARP 스푸핑 공격 수행 arpspoof -t 192.168.0.100 192.168.0.1 fragrouter -B1

3. MITM 공격 DNS 스푸핑 공격하기 실습 9-3 SSL 스니핑 공격하기 dnsspoof -f ./dnsspoof.hosts 클라이언트에서는 해당 웹 사이트에 접속하기 이전 상태로 만들기 위해 다음 명령을 실행 ipconfig /flushdns

3. MITM 공격 클라이언트에서 접속 시도하기 실습 9-3 SSL 스니핑 공격하기 나중에 패킷을 복호화할 수 있도록 공격자 시스템에서 Wireshark로 패킷 캡처

3. MITM 공격 클라이언트에서 접속 시도하기 실습 9-3 SSL 스니핑 공격하기 처음 접속하면 공격자가 생성한 인증서이기 때문에 경고 확인 창이 뜸. [고급]을 선택하고, ‘logins.daum.net(안전하지 않음)(으)로 이동’을 클릭

3. MITM 공격 클라이언트에서 접속 시도하기 실습 9-3 SSL 스니핑 공격하기 인증서를 확인하고 접속한 Daum의 로그인 사이트에서는 HTTPS가 붉은색으 로 표시되고, 경고 표시도 나타남.

3. MITM 공격 패킷 복호화 실습 9-3 SSL 스니핑 공격하기 복호화를 위해 Wireshark에서 수집한 패킷을 저장하고, ssldump를 실행하여 패킷을 복호화 ssldump -a -d -r wireshark.pcap -k webmitm.crt > wireshark_dec.txt -a : TCP ACKs 패킷을 출력 -d : 트래픽의 응용 프로그램에 대한 전송 데이터를 출력 -r : 복호화하려는 패킷 덤프 -k : 복호화에 사용할 인증서를 지정

3. MITM 공격 실습 9-3 SSL 스니핑 공격하기 패킷 복호화 복호화된 패킷 확인

3. MITM 공격 SSL 사이트 선택하기 실습 9-4 SSL 스트립 공격하기

3. MITM 공격 ARP 리다이렉트 공격 및 패킷 릴레이 실습 9-4 SSL 스트립 공격하기 ARP 스푸핑 공격 수행 arpspoof -t 192.168.0.100 192.168.0.1 fragrouter -B1

3. MITM 공격 패킷 리다이렉트 실습 9-4 SSL 스트립 공격하기 클라이언트가 80번 포트로 접속해 오는 것을 10000번 포트로 변경하여, 실제 사이트에 접속하도록 NAT를 설정 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to- port 10000

3. MITM 공격 SSL 스트립 공격 수행하기 실습 9-4 SSL 스트립 공격하기 ssltrip -l 10000

3. MITM 공격 SSL 스트립 공격 확인하기 실습 9-4 SSL 스트립 공격하기 HTTPS 접속이 아닌 일반 HTTP로 접속됨.

3. MITM 공격 MITM 공격 보안 대책 SSL스트립 공격 보안 대책 3.4 보안 대책 기본적인 대응책은 ARP 스푸핑과 DNS 스푸핑의 경우와 같음. SSH MITM 공격의 경우, SSL 2.0을 사용하면 막을 수 있음. 안전하지 않은 인증서는 확실한 경우 외에는 접속을 하지 않는 것이 좋음. SSL스트립 공격 보안 대책 2012년 사용자가 브라우저에 HTTP 주소를 입력하더라도 HTTPS를 사용하는 페이지로 자동으로 연결되어 SSL 스트립과 같은 공격을 사전에 방지할 수 있는 HSTS(Http Strict Transport Security)를 표준으로 지정 본인이 접속한 사이트가 SSL로 정상적으로 접속되고 있는지 확인