Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

Study

Heartbleed Vulnerability : low 본문

웹 보안/Beebox

Heartbleed Vulnerability : low

^_^? 2020. 12. 18. 16:05

먼저 Heartbleed 취약점에 대해 알아보자

 

Heartbleed란?

OpenSSL 암호화 라이브러리의 하트비트(Heartbeat)라는 확장 모듈에서

클라이언트 요청 메시지를 처리할 때 데이터 길이 검증을 수행하지 않아

시스템 메모리에 저장된 64KB 크기의 데이터를 외부에서 아무런 제한 없이 탈취할 수 있는 취약점

 

·Heartbeat: 클라이언트와 서버 간의 연결 상태 체크를 위한 OpenSSL 확장 모듈

더보기

클라이언트는 HeartBeat 확장프로토콜을 이용하여 임의의 정보를 그 정보의 길이와 함께 서버에 전송

-> 그 후 서버는 전달받은 정보를 다시 클라이언트에 전달해 주는 과정을 통해 자신의 존재 사실을 알려줌

 

이 때 클라이언트로부터 전달받은 정보와 그 정보의 길이가 일치하지 않는다면,

클라이언트의 요청에 서버는 응답을 하지 않는 것이 정상적인 동작

 

● 공격 형태

      - 원격에서 발생 가능한 취약점

 

      - 공격자는 메시지 길이 정보가 변조된 HeartBeat Request 패킷을 취약한 OpenSSL 버전을 사용하는 서버에

       전송할 경우, 정해진 버퍼 밖의 데이터를 공격자에게 전송하게 되어 시스템 메모리에 저장된 개인정보 및

       인증 정보 등을 탈취할 수 있음

 

 

● 취약점 정보

    - 시스템 메모리 정보 노출 취약점 : CVE-2014-0160 (2014.04.07.)

 

 


직접 실습해보자
attack script를 누르면 heartbleed.py파일이 다운로드 된다.

그리고 openssl을 사용하므로 https,  8443포트로 접속해 로그인한다.

 

 

 

이제 heartbleed.py를 이용해 취약점을 확인해보자

Kali에서 실습을 진행했다.

 

실행결과는 다음과 같다.

 

heartbeat 응답중 cookie값과 id, password정보를 확인할 수 있었다.

 

 

heartbleed취약점을 가진 서버인 것을 확인할 수 있었다.

 

마지막으로 heartbleed.py를 분석해보자

heartbleed.py파일은 exploit-db에 올라와있는 공격코드다. (www.exploit-db.com/exploits/32745)

 

 

코드 동작방식은 다음과 같다.

 

1. 파라미터로 공격대상 서버의 호스트 주소를 넘겨준다.

2. 서버에 접속 연결

3. hello 변수 안에 있는 내용의 Handshake 메시지를 보낸다.

4. 서버에서 정상적으로 응답할 경우에 공격을 위해 payload길이가 변조된 하트비트를 전송하여 공격한다.

5. 응답 메시지의 헥사 덤프를 화면에 출력한다.

    -> 응답메시지에는 위 공격이 성공할 시에 서버 메모리 데이터 또한 포함되어있다.

         

         

하트비트 요청 메시지 코드를 살펴보자

 

 

18 TLS record is a heartbeat
03 02 TLS version 1.1

TLS record가 heartbeat임을 명시하고 TLS버전을 알려줌

 

00 03 Length
01 Heartbeat request

하트비트 메시지의 길이와 메시지가 하트비트 요청임을 명시

 

40 00 Payload length (16384 bytes)

공격의 핵심에 해당하는 부분으로

16384 byte만큼의 메시지를 보내는 것이 아니라

이 값에 의해 서버 메모리에 있는 정보를 응답으로 되돌려 받게 된다.

 


참고한 사이트

 

blog.rajephon.dev/2017/11/27/heartbleed-attack-and-defense/

net123.tistory.com/547

blog.alyac.co.kr/76 [이스트시큐리티 알약 블로그]

www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=20884