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