Heartbleed心脏出血漏洞靶场搭建
1.?簡介
???OpenSSL心臟出血漏洞原理是OpenSSL引入心跳(heartbeat)機制來維持TLS鏈接的長期存在,心跳機制作為TLS的擴展實現,但在代碼中包括TLS(TCP)和DTLS(UDP)都沒有做邊界檢測,所以導致攻擊者可以利用這個漏洞來獲得TLS鏈接對端(可以是服務器也可以是客戶端)內存中的一些數據。
???所以針對本次漏洞的檢測,我需要在虛擬機中搭建一個通過https安全協議的數據交互網站,同時虛擬機中的OpenSSL版本為含有心臟出血漏洞的版本。通過客戶端即物理機命令行中運行心臟出血漏洞檢測POC代碼和Wireshark進行抓取數據包來分析心血漏洞。
2.?服務器環境搭建
2.1?安裝VMware
???去官網中下載或在內網共享中下載VMware虛擬機軟件并安裝VMware,安裝VMware沒有什么困難選擇路徑點擊安裝即可。
2.2?安裝Ubuntu系統
???在官網中下載Ubuntu14.04系統,在VMware中點擊創建虛擬機然后導入下載的Ubuntu的iso路徑進行安裝,安裝完成后Ctrl+Alt+T打開命令行,輸入命令openssl version查看OpenSSL版本,理論上Ubuntu14.04版本為OpenSSL 1.0.1f是具有心臟出血漏洞的,但是由于心臟出血漏洞爆出的時間為2014-04-07,所以時間上處于一個邊界,怕漏洞被修復,所以我自己把OpenSSL 1.0.1f版本的OpenSSL版本卸載,重新安裝上OpenSSL 1.0.1e的版本,以確保一定含有OpenSSL心臟出血漏洞。
2.3?安裝OpenSSL
進入Ubuntu虛擬機中Ctrl+Alt+T打開命令行。
./config –prefix=usr/local –openssldir=/usr/local/ssl
make
sudo make install
./config shared –prefix=/usr/local –openssldir=/usr/local/ssl
make
make install
2.4 ?安裝Apache+配置https
產生的啟動和停止文件是:/etc/init.d/apache2
啟動:sudo apache2 start
停止:sudo apache2 stop
重新啟動:sudo apache2 restart
配置文件保存在/etc/apache2目錄下,ubuntu發行版本的主配置文件是apache2.conf。
瀏覽器中輸入網址localhost查看是否為Apache it works的展示頁面。
sudo a2enmod ssl
sudo apache2-ssl-certificate -days ×××
要求輸入Common Name(eg,YOUR name)時,輸入你的主機名。創建完成后當前目錄下會生成一個apache.pem文件,包含秘鑰和證書。可以把這個證書copy到/etc/apache2/下創建一個ssl目錄然后copy到:
/etc/apache2/ssl/apache.pem
2.5 ?編輯https配置
編輯Apache端口配置(/etc/apache2/ports.conf)如果SSL缺省時加入443端口Listen 443。
安裝完后,會在/etc/apache2/sites-available目錄下生成一個缺省的default-ssl.conf文件。創建一個鏈接到sites-enabled目錄:
ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl
確認HTTP監聽端口是否為80:gedit /etc/apache2/sites-enabled/000-default.conf
HTTPS監聽端口缺省443:把端口改為443,在下加入SSL認證配置,其他的根據自己需要自己定制
gedit /etc/apache2/sites-enabled/001-ssl
2.6 ?重啟Apache服務
???service apache2 stop
???service apache2 start
3.?網站環境搭建
3.1 ?安裝MySQL數據庫+PHP5
輸入:sudo apt-get install mysql-server mysql-client進行安裝,軟件安裝中會讓你輸入root用戶的密碼,輸入密碼確認密碼之后完成安裝。
判斷MySQL數據庫是否安裝成功:sudo service mysql restart查看是否處于運行狀態。
在文本編輯器中輸入
3.2 ?簡單網頁代碼編寫
???搭建簡單的具有數據交互的網站:利用Apache服務器,mysql數據庫和php5進行網站搭建。通過php編寫一個簡單的用戶登錄程序,后臺連接mysql數據庫進行數據校驗,如果數據匹配返回成功頁面。
4.?環境搭建注意事項
/usr/bin/openssl s_client -connect 192.168.197.128/login.php:443 -tlsextdebug 2>&1| grep ‘TLS’
5.?檢測方法
通過物理機打開在虛擬機中編寫的網站,同時在物理機中安裝python并配置環境變量,通過命令行運行心血漏洞檢測的POC,輸入服務器的ip地址,查看有沒有數據返回。命令行指令:python ssltest.py 192.168.197.128
總結
以上是生活随笔為你收集整理的Heartbleed心脏出血漏洞靶场搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第12章 多元线性回归-整理6
- 下一篇: Virtualbox centos虚拟机