본문 바로가기

웹해킹

웹해킹 #13 알려진 취약점을 이용한 공격 - 하트블리드 취약점

- 오픈소스 라이브러리를 직간접적으로 사용하면서 생기는 취약점이 대부분

1. 하트블리드 취약점 공격 실습

-  HTTPS 프로토콜의 근간이 되는 SSL/TLS 프로토콜을 구현한 OpenSSL 라이브러리 중 1.0.1 – 1.0.1f 버전에 존재하는 취약점 -> SSL/TLS 하트비트라는 확장 기능에서 발견됨
-
하트블리드 취약점을 통해 공격자가 웹 서버 호스트의 메모리를 읽을 수 있게 되어 사용자의 로그인 정보 및 그 밖에 노출되면 안 되는 민감한 정보들을 탈취할 수 있음

- 8443 포트는 HTTPS 프로토콜로 접속해야 하는 포트인데, HTTPS 프로토콜로 접속하게 되면 모든 통신이 암호화되어 전송되어야 하는 반면, 하트블리드 취약점이 있으면, 로그인 시 사용된 패스워드 등의 사용자 정보가 노출될 수 있음

- 제공된 heartbleed.py 파일을 다운로드 후 실습용 가상 머신의 8443번 포트로 접속한다.

 

* HTTPS 프로토콜로 구현되어 있기 때문에, 웹 브라우저의 주소창에 https 프로토콜을 추가해서 접속해야함

 

- 접속 시 에러가 뜨고, Advanced 버튼을 통해 실습용 가상 머신에서 제공하는 인증서를 신뢰하지 못해 인증서 관련 에러 화면이 뜬다는 것 확인 가능

- Add Exception 메뉴를 눌러 사이트를 예외로 추가하면 해당 사이트 접속 가능

- Confirm Security Exception 버튼을 눌러 예외 처리 확인하고, bWAPP로 접속 후 새롭게 로그인

- 로그인 완료 후 터미널에서 공격 스크립트를 실행
→공격 스크립트 다음에 서버 주소를 입력 (-p 옵션을 이용하여 포트 지정도 가능하지만 기본값이 8443이므로 따로 지정 안해도 됨)

- ID와 패스워드가 노출되는 것 확인 가능 -> 하트블리드 취약점을 통한 사용자 정보 알아내기 가능