본문 바로가기

네트워크 관련/네트워크

[HTTP MITM] 예제및 정리

HTTP MITM 이란?

암호화 되지 않은 HTTP프로토콜을 공격자가 가로채어 HTML소스를 조작하는것입니다.



어떻게 이런일이 가능한가요?

사진을 보시면서 쉽게 설명드리겠습니다.


정상적인 HTTP통신을 보시면 세션을 맺기 위해 

클라이언트가 SYN을 보내면 => SYN으로 클라이언트에게 답해줍니다. => 그럼 클라이언트도 잘받았다고 Ack를 보내주며 세션이 연결됩니다.


그리고나서 세션연결이 수립되었으니 본격적인 통신이 시작이 되는데

클라이언트가 서버야 HTTP좀 보내줘 하면

응 그래 알겠어~~(Ack)와 HTTP를 같이 보내줍니다.

그러면 클라이언트는 응그래 잘받았어 고마워~~ 답변을 해줘서 간단한 한 통신이 되게 됩니다


하지만 MITM의 경우 공격자가 중간에서 처음부터 도청을 합니다.

그러다가 서버가 HTTP를 응답하여 보내줄때 미리 설정한 HTML태그를 자기가 설정해 놓은대로 수정해서 보내버립니다.

이것을 악용하게 되면.. 포털사이트에서 메일을 눌렀는데 카페를 가게 한다거나

나쁜짓을 한다면 자신의 악성코드가 숨겨져 있는 페이지로 유도한다던가 할 수도 있습니다.


본 예제는 눈에 확띄게 하기위하여 이미지파일을 전부 바꿔보겠습니다.



필요한 시스템

Attacker: kali
192.168.110.128

Client: Win7
192.168.110.129

WebServer: CentOS

192.168.110.130



번저 CentOS(Server)에 사진을 변경해야 하니 사진이 필요합니다. /var/www/html로 넣어줍니다



1이라는 html 파일을 만들어주고 값은 test로 만들어줍니다.



ls로 뭐가 있나 확인해보니 html과 강아지 사진이 들어있습니다.



이제 저의 웹서버를 가동시키겠습니다



1.html들어가니 아까 입력해준 test라는 값이 들어와 있습니다



강아지 사진도 역시 있습니다.



이제 공격자를 설정하겠습니다

filter.txt라는 텍스트파일을 만들어줍니다

이 파일은 정상서버에서 클라이언트로 정상적인 정보를 보내줄때 공격자가 해당값만 가로채서 변환시켜줄 명령어 입니다.



안에 내용은 이렇습니다. TCP그리고 tcp.경로가 80포트이면

받아오는 html태그의 img src=''라는 태그의 값들을 전부, 내가 지정한 서버의 강아지사진으로 바꾸겠다

혹시라도 대문자로 쓰는 사람도 있을 수 있기 때문에 대문자도 사용해 줍니다

다른 태그들도 똑같이 추가가 가능하겠습니다.



ls로 파일이 잘 만들어졌는지 확인합니다



이제 etterfilter을 이용해서 작성해 주었던 텍스트 파일의 코드를 적용시켜 줍니다.



피해자의 IP들을 넣어줍니다.

그럼이렇게 공격준비가 완료됩니다.



피해자의 화면에서 공격자가 잘 물려있는지 확인합니다.



피해자의 화면으로 실행해봅니다.

이미지가 전부 바뀌지 않는 이유는 저 배너만 img src=""이라는 태그를 사용하고 있기 때문입니다



신문사의 홈페이지는 전부 img src=""를 사용하고 있습니다





본 게시글을 읽고 따라하셔서 받으시는 법적 처벌에 대한 책임은 본인에게 있으며 외부 망에 실습하지 마세요

범죄입니다

미리 경고하지만 외부망에 타고가셔서 다른사람에게 하시면 범죄입니다


본 게시글은 이런 공격이 있고 어떻게 하면 공격을 방어할지에 대한 목적으로 지식을 공유하는 것이며 가상공간에서 서버를 구축하고 공격자와 피해자를 구축해서 자신에게 공격하고 방어하였습니다

절대로 악용하지 마세요