Download presentation
Presentation is loading. Please wait.
1
Chapter 09 세션 하이재킹
2
01 세션 하이재킹 공격 02 TCP 세션 하이재킹 03 MITM 공격
3
세션 하이재킹 공격의 패턴을 이해하고 실행할 수 있다.
세션 하이재킹 공격을 탐지할 수 있다. 세션 하이재킹 공격 시 적절한 대책과 예방법을 이해한다. MITM 공격을 이해하고 수행할 수 있다.
4
세션 하이재킹(Session Hijacking)
1. 세션 하이재킹 공격 1.1 세션 하이재킹 공격 세션 하이재킹(Session Hijacking) ‘세션 가로채기’라는 의미 세션 : 사용자와 컴퓨터, 두 컴퓨터 간의 활성화 상태(통신이 진행 중인 상태) 시스템에 침투하기 위해 패스워드를 획득하기는 어렵기 때문에 현재 연결중인 세션을 가로채 사용자처럼 위장하는 공격 -> ID와 패스워드 인증을 회피할 수 있음
5
2. TCP 세션 하이재킹 TCP 세션 하이재킹 2.1 TCP 세션 하이재킹에 대한 이해
Non-Blind Attack(로컬 세션 하이재킹 공격) 서버와 클라이언트가 통신할 때 TCP의 시퀀스 넘버를 제어의 문제점을 파고든 공격 공격 대상을 탐지할 수 있으며, 시퀀스 넘버를 알아낼 수 있음. Blind Attack(원격 세션 하이재킹) 공격 대상을 탐지할 수 없으며 시퀀스 넘버를 알아낼 수 없음. -> 세션번호를 맞추기 어려워 성공확률이 매우 낮다.
6
TCP 시퀀스 넘버 교환(Piggybacking 방식, TCP 해더:79페이지)
7
TCP 세션 하이재킹은 동기화상태를 무너뜨리는 비동기화 상태를 만드는 것으로 시작함
동기화(Synchronized) 상태 Client_My_Seq = Server_Client_Seq Server_My_Seq = Client_Server_Seq TCP 세션 하이재킹은 동기화상태를 무너뜨리는 비동기화 상태를 만드는 것으로 시작함
8
비동기화(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) 데이터를 보내는 방법
9
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 순서번호를 조작하여 클라이언트 – 공격자, 공격자 – 서버 간 세션 연결이 되 도록 함
10
2. TCP 세션 하이재킹 새로운 접속 생성하기 2.1 TCP 세션 하이재킹에 대한 이해 (스니핑, 순서번호 획득) (대기)
(새로운 세션연결) (세션 하이재킹) (서버전달) (공격자 스니핑) (서버전송)
11
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와 같은 세션 연결기반 서버를 목표로 함 순서번호 난이도 검사 : 운영체제에 따라 순서번호 추측 난이도가 다름 공격대상 세션설정 : 많은 트래픽이 존재할 때 수행하는 것이 탐지를 어렵게 할 수 있음 순서번호 추측 : 공격자가 세션을 성공적으로 가로채기 위해서 순서번호를 추측해야 함 사용자 죽이기 : 시스템 거부 공격으로 세션연결을 죽임 세션 하이재킹 : 세션을 빼앗아 정보를 탈취
12
2. TCP 세션 하이재킹 공격 순서 실습 9-1 텔넷 세션 하이재킹하기 클라이언트가 서버로 텔넷 접속을 한다.
공격자가 ARP 스푸핑으로 패킷의 흐름이 공격자를 통과하도록 변경한다. 클라이언트와 서버의 통신을 끊고, 해당 세션을 클라이언트로부터 빼앗는다.
13
2. TCP 세션 하이재킹 shijack 설치하기 실습 9-1 텔넷 세션 하이재킹하기
압축 풀어 실행 tar xvzf shijack.tgz :
14
2. TCP 세션 하이재킹 shijack 설치하기 실습 9-1 텔넷 세션 하이재킹하기
shijack-lnx를 실행하여 실행 옵션 확인 ./shijack-lnx
15
2. TCP 세션 하이재킹 텔넷 클라이언트와 서버 간 접속 생성하기 실습 9-1 텔넷 세션 하이재킹하기
텔넷 클라이언트 : telnet
16
2. TCP 세션 하이재킹 패킷 릴레이 설정하기 실습 9-1 텔넷 세션 하이재킹하기
ARP 스푸핑 공격 전 fragrouter를 이용하여 패킷이 끊어지지 않도록 준비 공격자시스템: fragrouter -B1
17
2. TCP 세션 하이재킹 ARP 스푸핑(공격자 시스템) 실습 9-1 텔넷 세션 하이재킹하기
arpspoof -t arpspoof -t
18
2. TCP 세션 하이재킹 패킷 확인하기 세션 하이재킹 공격 수행하기 실습 9-1 텔넷 세션 하이재킹하기
tcpdump를 이용하여 텔넷 서버와 클라이언트 간의 패킷 확인 세션 하이재킹 공격 수행하기 ./shijack-lnx eth
19
2. TCP 세션 하이재킹 세션 하이재킹 공격 수행하기 실습 9-1 텔넷 세션 하이재킹하기
클라이언트에서 아무 키나 입력하면 shijack에서 탐지한 패킷의 시퀀스 넘버를 확인하고 세션을 하이재킹함.
20
2. TCP 세션 하이재킹 세션 하이재킹 공격 수행하기 실습 9-1 텔넷 세션 하이재킹하기
세션 하이재킹이 완료된 상태에서 test 디렉토리를 생성하는 명령어 입력 mkdir test 텔넷 서버에서 해당 폴더를 확인
21
2. TCP 세션 하이재킹 TCP 세션 하이재킹의 보안 대책 2.2 TCP 세션 하이재킹의 보안 대책 가장 기본적인 보안 대책
SSH와 같이 암호화된 연결을 사용하는 것 -> 스니핑한 내용을 알 수 없도록 함 비동기화 상태 탐지 서버와 시퀀스 넘버를 주기적으로 체크하여 비동기화 상태에 빠지는지 탐지 ACK Storm 탐지 윈도우 크기에 맞지 않는 데이터가 전송되면 정확한 윈도우 크기에 대한 교정 패킷을 보내게 되고, 서로에 대한 교정 패킷이 정상적으로 작동하지 못하기 때문에 무한 루프 에 걸리게 됨. 패킷의 유실과 재전송 증가 탐지 공격자가 중간에 끼어서 동작을 하므로 패킷의 유실과 재전송이 발생하고 응답시간이 길어짐 예상치 못한 접속의 리셋 세션 하이재킹에 대한 최우선의 대책은 데이터 전송의 암호화
22
MITM(Man In The Middle) 공격
글자 그대로 누군가의 사이에 끼어드는 것, 스푸핑과 유사 클라이언트와 서버의 통신에 암호화된 채널을 이용하면서 ARP 리다이렉트와 ICMP 리다이렉트, ARP 스푸핑이 무용지물이 되자 이를 극복하기 위해 탄생 MITM은 패킷 MAC과 IP주소 뿐만 아니라 데이터 내용까지 바꾸기를 시도
23
3. MITM 공격 내부 웹 서버 설정하기 실습 9-2 웹에서 MITM 공격하기
클라이언트가 외부 웹서버에 요청하는 페이지의 그림을 모두 내부 웹서버 그림으로 교체하는 MITM 공격 수행하기 내부 웹 서버 설정하기 C:\inetpub\wwwroot 폴더에 그림 파일 넣기 /bonobono.jpg Etterfilter 실행
24
etterfilter 설정하기(공격자)
3. MITM 공격 실습 9-2 웹에서 MITM 공격하기 etterfilter 설정하기(공격자) 공격을 위해서 필터를 먼저 만들어 둠.
25
3. MITM 공격 etterfilter 컴파일하기 실습 9-2 웹에서 MITM 공격하기
etterfilter -o filter.ef filter.txt
26
3. MITM 공격 MITM 공격 수행하기(공격자) 실습 9-2 웹에서 MITM 공격하기
ettercap을 –G 옵션을 이용하여 GUI 환경으로 실행 ettercap - G
27
3. MITM 공격 MITM 공격 수행하기(공격자) 실습 9-2 웹에서 MITM 공격하기
[Sniff]-[Unified Sniffing] 선택 : 스니핑 기능 [Hosts]-[Hosts List]를 실행하고 [Hosts]-[Scan for hosts]를 실행하여 해당 네트 워크의 모든 호스트를 확인 공격 대상 시스템 선택 후, 공격 대상에 추가( )
28
3. MITM 공격 MITM 공격 수행하기(공격자) 실습 9-2 웹에서 MITM 공격하기
[Targets]-[Current Targets]를 실행하여 추가된 공격 대상 확인 [Filters]-[Load a filter]를 이용하여 filter.ef 필터를 지정
29
3. MITM 공격 MITM 공격 수행하기(공격자) 실습 9-2 웹에서 MITM 공격하기
[Mitm]-[ARP poisoning]으로 ARP 스푸핑 공격을 수행 팝업 창에서 ‘Sniff remote connections’를 선택하여 라우터로 통하는 패킷을 스니핑
30
3. MITM 공격 MITM 공격 확인하기(클라이언트) 실습 9-2 웹에서 MITM 공격하기
클라이언트에서 아무 사이트나 접속한 후 확인
31
SSH(Secure Shell) 암호화 기법
3. MITM 공격 3.2 SSH MITM SSH(Secure Shell) 암호화 기법 1단계 : 클라이언트가 SSH를 통해 SSH 서버에 접근하여 서버의 공개키를 받음. 2단계 : 클라리언트는 자신의 사설키로 데이터를 암호화하고, 이를 다시 서버의 공개키로 암호화하여 서버로 전송 클라이언트 SSH 서버
32
SSH(Secure Shell) 암호화 기법
3. MITM 공격 3.2 SSH MITM SSH(Secure Shell) 암호화 기법 3단계 : 서버는 클라이언트로부터 전송받은 암호화된 데이터를 자신의 사설키 로 복호화한 후, 이를 다시 클라이언트의 공개키로 복호화해서 데이터를 읽음.
33
3. MITM 공격 SSH 암호화 통신에 대한 MITM 공격 3.2 SSH MITM
1단계 : 클라이언트가 서버에 SSH 접속을 요청하면 공격자가 ARP 스푸핑과 같 은 공격으로 네트워크를 장악하여 SSH 서버인 것처럼 자신의 공개키를 전송, 공격자는 서버에 자신이 클라이언트인 것처럼 공개키를 요청
34
3. MITM 공격 SSH 암호화 통신에 대한 MITM 공격 3.2 SSH MITM
2단계 : 정상적인 접속에서 클라이언트가 서버에 암호화된 데이터를 보내면 공 격자는 자신의 사설키와 클라이언트의 공개키로 복호화하고 내용을 확인한 후 다시 자신의 사설키와 서버의 공개키로 암호화해서 서버로 전송 3단계 : 서버가 클라이언트로 데이터를 보낼 때도 공격자는 서버가 전송한 데 이터를 복호화한 후, 다시 암호화해서 클라이언트로 전송
35
3. MITM 공격 SSL 3.3 SSL MITM 넷스케이프가 개발한 것으로, 40비트와 128비트 암호화 통신 가능
클라이언트는 서버에게 지원 가능한 방식(암호, 키 교환, 서명, 압축)을 알려줌 서버는 클라이언트에게 지원 가능한 방식이 포함된 서버 인증서를 클라이언트에게 발송 서버가 클라이언트 인증서를 요구할 경우 클라이언 트는 인증서를 서버로 전송 암호화키로 사용될 세션키를 랜덤으로 생성하고 서 버의 공개키로 암호화한 후 서버로 전송 서버는 클라이언트에게 전송받은 세션키 복호화 클라이언트는 전송된 모든 메시지에 대한 방식을 다음부터 적용할 것을 알리는 종결 메시지를 발송한 후 데이터 전송 단계로 이동 (암호화방식, 서버인증서 요청) 서버 공개키로 암호화 (클라이언트인증서 요청) (서버 공개키로 안호화) 암호화 데이터 전송
36
3. MITM 공격 3.3 SSL MITM SSL 스니핑 공격자는 임의의 인증서를 생성한 뒤 클라이언트에게 보내 별도의 SSL 세션을 생성하고, 이를 중간에 스니핑
37
3. MITM 공격 3.3 SSL MITM SSL 스트립 공격자는 클라이언트와 서버 간의 모든 암호화된 HTTPS 데이터를 HTTP로 변 조하여 클라이언트에게 전달
38
3. MITM 공격 SSL 통신 확인하기 실습 9-3 SSL 스니핑 공격하기 SSL로 웹 서비스를 제공하는 사이트 확인하기
39
3. MITM 공격 DNS 스푸핑 공격 준비하기 실습 9-3 SSL 스니핑 공격하기
dnsspoof.hosts 파일에 다음 사이트에 대한 경로를 추가하여 공격자 자신을 참 조하도록 함. vi ./dnsspoof.hosts *.daum.net 추가
40
SSL 접속을 위한 인증서 생성과 webmitm 실행하기
webtitm
41
SSL 접속을 위한 인증서 생성과 webmitm 실행하기
인증서 파일에서는 RSA 사설키와 인증서 내용을 확인할 수 있음. vi webmitm.crt
42
3. MITM 공격 ARP 리다이렉트 공격 및 패킷 릴레이 실습 9-3 SSL 스니핑 공격하기 ARP 스푸핑 공격 수행
arpspoof -t fragrouter -B1
43
3. MITM 공격 DNS 스푸핑 공격하기 실습 9-3 SSL 스니핑 공격하기
dnsspoof -f ./dnsspoof.hosts 클라이언트에서는 해당 웹 사이트에 접속하기 이전 상태로 만들기 위해 다음 명령을 실행 ipconfig /flushdns
44
3. MITM 공격 클라이언트에서 접속 시도하기 실습 9-3 SSL 스니핑 공격하기
나중에 패킷을 복호화할 수 있도록 공격자 시스템에서 Wireshark로 패킷 캡처
45
3. MITM 공격 클라이언트에서 접속 시도하기 실습 9-3 SSL 스니핑 공격하기
처음 접속하면 공격자가 생성한 인증서이기 때문에 경고 확인 창이 뜸. [고급]을 선택하고, ‘logins.daum.net(안전하지 않음)(으)로 이동’을 클릭
46
3. MITM 공격 클라이언트에서 접속 시도하기 실습 9-3 SSL 스니핑 공격하기
인증서를 확인하고 접속한 Daum의 로그인 사이트에서는 HTTPS가 붉은색으 로 표시되고, 경고 표시도 나타남.
47
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 : 복호화에 사용할 인증서를 지정
48
3. MITM 공격 실습 9-3 SSL 스니핑 공격하기 패킷 복호화 복호화된 패킷 확인
49
3. MITM 공격 SSL 사이트 선택하기 실습 9-4 SSL 스트립 공격하기
50
3. MITM 공격 ARP 리다이렉트 공격 및 패킷 릴레이 실습 9-4 SSL 스트립 공격하기 ARP 스푸핑 공격 수행
arpspoof -t fragrouter -B1
51
3. MITM 공격 패킷 리다이렉트 실습 9-4 SSL 스트립 공격하기
클라이언트가 80번 포트로 접속해 오는 것을 10000번 포트로 변경하여, 실제 사이트에 접속하도록 NAT를 설정 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to- port 10000
52
3. MITM 공격 SSL 스트립 공격 수행하기 실습 9-4 SSL 스트립 공격하기
ssltrip -l 10000
53
3. MITM 공격 SSL 스트립 공격 확인하기 실습 9-4 SSL 스트립 공격하기
HTTPS 접속이 아닌 일반 HTTP로 접속됨.
54
3. MITM 공격 MITM 공격 보안 대책 SSL스트립 공격 보안 대책 3.4 보안 대책
기본적인 대응책은 ARP 스푸핑과 DNS 스푸핑의 경우와 같음. SSH MITM 공격의 경우, SSL 2.0을 사용하면 막을 수 있음. 안전하지 않은 인증서는 확실한 경우 외에는 접속을 하지 않는 것이 좋음. SSL스트립 공격 보안 대책 2012년 사용자가 브라우저에 HTTP 주소를 입력하더라도 HTTPS를 사용하는 페이지로 자동으로 연결되어 SSL 스트립과 같은 공격을 사전에 방지할 수 있는 HSTS(Http Strict Transport Security)를 표준으로 지정 본인이 접속한 사이트가 SSL로 정상적으로 접속되고 있는지 확인
Similar presentations