HTTP는 모든 데이터를 암호화 없이 평문으로 전송되기 때문에 악의적인 목적을 가진 해커와 같은 네트워크를 사용하게 된다면 MITM 공격과 같이 중간자 공격에 취약합니다.
HTTPS는 Secure Sockets Layer (SSL)를 사용하여 공개키 암호화를 사용해 사용자와 서버가 키를 교환하는 방식으로 데이터들이 암호화 되어 네트워크 상에서 전송되기 때문에 일반적으로는 통신 내용을 알아볼 수 없어 비교적 안전한 방식의 프로토콜입니다.
Cookie ?
Http 요청시 매번 새로운 커넥션이 이루어지기 때문에 사용자 인증도 매번 해줘야 한다는 단점을 해결하기 위해 사용자 인증 상태를 유지하는 수단으로 쿠키(Cookie)라는 개념이 등장했습니다.
웹 브라우저에서 HTTP Response의 Set – Cookie의 헤더나 JavaScript의 document.cookie를 통해 데이터를 쿠키에 저장하게 됩니다.
데이터를 Key=value; 키와 값으로 한 쌍으로 쿠키에 저장하게 되고 ; 뒤에 쿠키의 만료시간과 접근 가능한 도메인 등 추가 설정을 할 수 있습니다. 이렇게 저장된 데이터는 추후 HTTP 요청을 보낼 때 웹 브라우저가 자동으로 쿠키를 헤더에 추가하여 전송하게 됨으로서 사용자 인증이 유지 됩니다.
쿠키에 인증 상태를 포함하여 데이터를 저장하게 되면 다른 누군가 악의적으로 원래 사용자처럼 요청을 조작할 수 있습니다. 이를 방지하기 위해 데이터를 서버에 저장하는 방법으로 session(세션)을 사용합니다. 이를 활용하면 서버로 데이터를 저장하게 되고 임의의 랜덤 문자열 키를 생성하여 응답하게 되는데 이것은 Session ID라고 합니다.
웹 브라우저에서 해당 Session ID(랜덤 문자열 키)를 쿠키에 저장하고 이후에 HTTP 요청을 보내면 서버에서 Session ID(해당 문자열 키)에 해당하는 데이터를 가져와 인증 상태를 확인하는 방식입니다.
해당 글은 VM Ware로 실습한 내용이며, IP 또한 가상으로 할당하였기 때문에 아무 의미 없습니다.
또한 이 기술은 실제 적용이 가능할 수도 있으니, 절대 악의적인 목적이나 호기심으로 진행하지 마시길 바랍니다.
실습을 위한 환경을 구성할때 반드시 본인 컴퓨터와 인터넷으로 구성하고 진행하세요!
악용시 현행 정보통신망 이용촉진 및 정보보호 등에 관한 법률로 처벌 받을 수 있습니다.
정보통신망에 관한 법률 아니더라도 처벌 받습니다 아무튼 그냥 본인 컴퓨터 외에는 하지마세요 !
1 개요
1.1 개요 및 목적
현재 대한민국 스마트폰 사용을 안하는 사람을 찾기 힘들 정도로 보급률이 높아져있습니다. 사용자가 증가함에 따라 무료 인터넷을 사용할 수 있도록 도와주는 무선 인터넷 환경(WI-FI)도 손쉽게 찾아 볼 수 있습니다. 많은 사람들이 데이터가 부족하거나, 아끼기 위해 비밀번호가 안걸려져있는 WI-FI에 접속하여 무료로 인터넷을 사용할 것입니다. 하지만 악의적 의도를 가진 해커가 사람들의 정보를 훔치기 위해 설치해놓은 WI-FI라면 ? 본인도 모르는 사이에 사용자가 전송한 정보를 해커는 Sniffing 할 수 있기 때문에 WI-FI 사용자들은 항상 제공자를 모르는 WI-FI 사용을 자제하고 의심해봐야 합니다.
해킹 도구 사용으로 네트워크 공격 기법을 통해 실제 공격 행위의 시뮬레이션을 수행해보며 특정 장소의 내부 네트워크상의 서비스와 서버에 대해 침투가능성을 능동적으로 판단하여 취약점에 대한 대응방안을 마련하여 네트워크 보안사고를 미연에 방지하는 것에 그 목적이 있습니다.
1.2 실습 환경
- 가상환경 OS (피해자 - Windows Xp, 공격자 - KaliLinux)
- 사용 도구 : SSLStrip
- 적용 기술 (ARP Spoofing, SSL Sniffing, M IT M)
- 무선 WI – FI
1.3 수행 항목
- 피해자가 게이트웨이로 보내는 패킷을 공격자에게 전달하게하고, 게이트웨이
에서 피해자에게 보내는 패킷을 공격자에게 전달하도록 ARP Spoofing을 진행
하여 중간자 공격이 이루어지도록 설정
- SSLStrip을 통해 피해자에게 https를 해제하여 전달하여 Sniffing 공격
- 피해자 로그인 시도할 때 입력한 ID, PASSWORD 정보 탈취
- Log 파일을 통해 탈취한 정보 확인
2 시나리오
2.1 실습 시나리오
실습 시나리오
3 수행결과
3.1 Spoofing
Spoofing이란 사전적 의미로 ‘ 속이다 ‘ 입니다. MAC주소, IP주소, Port 등 네트워크 통신과 관련된 요소
들을 속여 공격하는 것을 말합니다.
이번 모의해킹 진행과정에서 필요한 Spoofing 기법은 ARP Spoofing입니다.
ARP Spoofing은 MAC주소를 속여 통신간에 흐름을 우회하고 왜곡시키는 공격입니다.
3.1.1 취약점 이해
로컬 네트워크에서 사용하는 ARP 프로토콜의 허점을 이용하여 자신의 MAC주소를 다른 컴퓨터의
MAC주소인 것처럼 속입니다.
네트워크 트래픽이 이동할 때 MAC 주소를 기반으로 전송하는데, 공격자는 같은 네트워크상에서
ARP Request BroadCasting을 통해 모든 호스트 IP/MAC주소를 알아 낼 수 있습니다.
ARP 프로토콜은 인증을 요구하지 않기 때문에 이러한 취약점을 이용하여 ARP Reply 패킷을
호스트에게 보내주면서 쉽게 ARP Cache Table을 업데이트 시킬 수 있습니다.
공격자가 위조한 MAC 주소를 각 호스트들의 ARP Cache Table에 업데이트 시키게 되면, 통신이 이루어지는 GateWay에서는 공격자의 MAC 주소와 포트 매핑정보가 Table에 등록되어 호스트가 서버로 보내는 정보가 담긴 트래픽은 공격자에게 전달하고 서버에서도 피해자 호스트에 대한 트래픽을 공격자에게 전달하게 됩니다.
3.1.2 상세분석
[Step #1] ARP Spoofing 진행 전
arp spoofing 진행 전
[Step #2] ARP Spoofing 공격을 위한 Shell 작성
공격 코드
[Step #3] ARP Spoofing을 위한 Shell 실행
공격 실행
[Step #4] 공격 진행 후 ARP Cache Table 변경된 것을 확인
공격자 IP가 추가되고 물리적 주소가 GateWay와 같게 변경 된 것을 확인 할 수 있다.
3.1.3 보안대책
1) 사용중인 공유기의 펌웨어를 항상 업데이트하여 최신 버전으로 유지
2) ARP Virus 방어 기능을 지원하는 공유기 사용
3) ARP Spoofing 공격 탐지 툴 설치 (XArp, ARPWatch 등)
4) MAC주소 정보를 정적으로 설정하여 관리
3.2 Sniffing
Sniffing이란 사전적 의미로 ‘ 킁킁거리다, 냄새를 맡다 ‘ 뜻이 존재합니다. 이와 같이 네트워크상에서
다른 상대방들간에 또는 서버와 통신할 때 전달되는 패킷 교환을 몰래 훔쳐보는 것을 의미합니다.
예시로 군에서 통신이 이루어질 때 제3자가 도청하는 행위가 유사하다 볼 수 있습니다.
3.2.1 취약점 이해
SSL을 사용하여 암호화 통신을 하는 경우 일반적으로 공격자는 해당 정보를 Sniffing 할 수 없습니다. 하지만, 암호화된 데이터는 Client와 Server 인증 과정에서 발생된 패킷들에 의해 부하를 늘리게 되어
많은 웹 페이지에서 전체적으로 SSL을 적용시키지 않고 본인확인 또는 로그인과 같이 특정 주요정보가전송되는 구간에만 부분적으로 SSL을 적용하여 운영하는 경우가 많습니다. 이렇게 부분적으로 SSL을 적용시킨다는 취약점을 이용하여 피해자와 서버간에 통신이 이루어질 때 중간에서 개입하여 SSL Strip을 통해 HTTPS를 HTTP로 변경하여 피해자를 속여 정보를 탈취할 수 있습니다.