본문 바로가기

Computer Science/정보보호

MITM(Man In The Middle) 공격

MITM(Man In The Middle) 공격

세션을 가로채는 공격입니다.

클라이언트와 서버간에 암호화 채널이 있었습니다.

그것을 뚫을려고 하는 공격입니다.

 

실습하기

웹서버에 그림을 바꾸기입니다.

웹서버가 있다면 칼리가 가로채어서 해당 페이지를 바꿉니다.

교체하기 위한 파일을 만들어야 합니다.

 

tcp와 80 포트로 들어오는 패킷은

교체합니다. 무엇을? 그림을 추가하기 위한 태그를 

 

 

컴파일하기

 

결과로는 filter.ef가 만들어져 있습니다.

 

 

 

이제 arp 스푸핑 공격을 통해서 칼리 쪽으로 흐름을 우회시킵니다.

 

img = " " 태그가 있는 사이트만 됩니다.

 

 

일단 SSH가 어떻게 암호화하는지 알아봅시다.

SSH처럼 암호화 채널이 있습니다.

이것 또한 스니핑을 방지하려고 했습니다.

MITM은 뚫을 수 있습니다.

  • 클라이언트가 SSH를 통해 SSH 서버에 접근하여 서버의 공개키를 받음
  • 공개키 암호화 방식은 공개키, 사설키로 패어로 사용됩니다.
  • 사설 키는 사용자만 사용할 수 있는 키입니다.
  • 클라이언트는 자신의 사설 키로 데이터를 암호화하고 , 이를 다시 서버의 공개키로 암호화하여 서버로 전송

 

1단계

서버는 공개키, 사설키

클라이언트도 공개키, 사설 키를 가지고 있습니다.

클라이언트가 서버의 공개키를 요청했으니 서버의 공개키를 받습니다.

 

2단계

클라이언트 키는 3개를 가지고 있습니다.

클라이언트는 클라이언트 사설키로 데이터를 암호화합니다.

+

한번 더 서버가 준 서버의 공개키로 암호화합니다.

 

3단계

이걸 받은 서버는

서버의 사설키서버의 공개키로 암호화된 것을 풉니다.

 

그다음에 파란색(클라이언트 사설 키)은 클라이언트의 공개키로 풀 수 있습니다.

 

이렇게 되면 서버밖에 암호를 못 풉니다 왜냐?

클라이언트 사설키로 암호화된 것은 클라이언트 공개키로 한 꺼풀 벗겨내는데

서버 공개키로 암호화된 것은 서버 사설 키를 가진 자만 풀 수 있기 때문입니다.

 

 

 

SSH 암호화 통신에 대한 MITM 공격

이렇게 안전한 SSH통신도 MITM 공격을 당할 수 있습니다.

 

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

 

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

3 단계 : 서버가 클라이언트로 데이터를 보낼 때도 공격자는 서버가 전송한 데이터를 복호화한 후 , 다시 암호화해서 클라이언트로 전송

 

SSL

SSL은 4 계층에서 암호화 채널을 제공하기 위해 만들어졌습니다.

비트수가 커질수록 안전해집니다.

①클라이언트는 서버에게 지원 가능한 방식 (암호 , 키 교환, 서명 , 압축)을 알려줌
②서버는 클라이언트에게 지원 가능한 방식이 포함된 서버 인증서(=서버 공개키)를 클라이언트에게 발송
③서버가 클라이언트 인증서를 요구할 경우 클라이언트는 인증서를 서버로 전송
④암호화키로 사용될 세션 키(이 세션에서만 사용할 키, 안전하게 전송해야 합니다.)를 랜덤으로 생성하고 서버의 공개키로 암호화한 후 서버로 전송
⑤서버는 클라이언트에게 전송받은 세션 키 복호화
⑥서버 클라이언트는 모든 전송 메시지에 대한 방식을 다음부터 적용할 것을 알리는 종결 메시지를 발송한 후 데이터 전송 단계로 이동

 

SSL 스니핑

공개키를 나누어 가질 때 공격자가 중간에 가로챌 수 있습니다.

 

SSL 스트립

https를 구성하는 프로토콜이었습니다.

기본적으로 웹페이지가 암호화되어서 통신하는 것입니다.

 

중간에 껴서 암호화 키를 알아서 복호화를 할 수 있습니다.

 

MITM 공격 보안 대책

처음에 공개키를 요청할 때부터 가로채질 수 있습니다.

 

중요한 서버는 arp static으로 저장하고

dns는 hosts 파일에 저장합니다.

 

SSH MITM을 대응해서 2.0 버전이 나왔습니다.

 

SSL 스트립 공격 보안 대책

https를 가져와서 http로 바꿔서 전달하는 공격을 막아야 합니다.

 

http를 입력하더라도 자동으로 https로 연결이 되게 합니다.

ex) 은행

 

728x90

'Computer Science > 정보보호' 카테고리의 다른 글

암호화 1 - 대칭 암호화 방식  (0) 2021.11.18
Dos와 DDos 공격  (0) 2021.11.18
세션 하이재킹 1  (0) 2021.11.04
터널링  (0) 2021.11.04
스푸핑2  (0) 2021.11.04