Heart Bleed
카테고리: appatack
태그: injection
Heart Bleed
- HeartBleed Attack
-
2014년 4월에 발표된 openssl의 취약점을 이용하는 공격(취약점 코드 → CVE-2014-0160)
-
OpenSSL의 TLS/DTLS Heartbeat Extension 코드의 문제를 이용 함
Heartbeat Protocol → Client와 Server의 세션을 유지하기 위해 주기적으로 데이터를 전송하는 동작
Client로부터 전달받은 Payload Length 값을 검사하지 않고 처리함으로써 원래 전달해야 할 정보 외에 메모리 내 다른 정보까지 전달하는 취약점
-
OpenSSL 1.0.1 ~ 1.0.1f 버전에서 발생 → 취약점이 없는 버전 사용하기를 권장
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0160
-
-
Heartbeat 구조
-
Heartbeat Request의 length/payload값과 Heartbeat Response의 length/payload 값이 일치하면 세션이 유지된다고 판단
-
- 정상 heartbeat 동
실습
-
kali
-
python 점검
-
웹사이트 테스트 https://
-
-
공격코드 다운로드
# wget https://www.exploit-db.com/download/32745 -O heartbleed.py
-
python 실행 테스트
# python ./heartbleed.py
-
웹사이트 로그인 실패 성공 몇번 시도후 공격코드 실행하여 확인
# python ./heartbleed.py 172.16.0.104 > /root/h.txt # cat /root/h.txt
방어
-
openssl update 를 이용한 방어
# yum update openssl
-
local repo
-
CD/DVD/에 iso 넣기
-
-
cd/dvd 를 /media 에 mount
# mount /dev/sr0 /media
-
local.repo 수정하기
# vi /etc/yum.repos.d/local.repo [local-repo] name=Local Repository baseurl=file:///media enabled=1 gpgcheck=0
# mv /etc/yum.repos.d/CentOS*.repo /root # mv /etc/yum.repos.d/mysql*.repo /root # yum clean all
# yum repolist
-
현재 openssl 버전
# rpm -qa | grep openssl
-
openssl 업데이트
# yum update openssl
-
httpd 서비스 재시작후 업데이트 적용
-
다시 공격하여 확인
# python ./heartbleed.py 172.16.0.104 > /root/h.txt # cat /root/h.txt
댓글 남기기