心脏滴血漏洞详解及利用--HeartBleed With OpenSSL
【事件規則】
OpenSSL“心臟出血”漏洞是一個非常嚴重的問題。這個漏洞使攻擊者能夠從內存中讀取多達64 KB的數據。也就是說,只要有這個漏洞的存在,在無需任何特權信息或身份驗證的環境下,我們就可以從我們自己的(測試機上)偷來X.509證書的私鑰、用戶名與密碼、聊天工具的消息、電子郵件以及重要的商業文檔和通信等數據。
OpenSSL漏洞分析
最初人們為了網絡通信安全,就開始使用安全協議進行加密通信,SSL(Secure Socket Layer)就是一種安全協議。隨著開源軟件的流行,有人寫了一款叫? OpenSSL? 的開源程序供大家方便地對通信進行SSL加密,后來這款軟件便在互聯網中被廣泛應用。我們在瀏覽器地址欄常見的 https 前綴的網址以及那把小鎖圖標,通常就是指該網站經過 SSL 證書加密。
?
OpenSSL 有一個叫 Heartbeat (心跳檢測)的拓展,問題就出在這個拓展上,這也是漏洞被命名為“心臟出血”的直接原因。
?
所謂心跳檢測,就是建立一個? Client Hello 問詢來檢測對方服務器是不是正常在線 ,服務器發回 Server hello,表明正常樹立SSL通訊。就像我們打電話時會問對方 “喂聽得到嗎?”一樣。
?
每次問詢都會附加一個問詢的字符長度 pad length,bug 來了,如果這個 pad length 大于實際的長度,服務器仍是會回來相同規模的字符信息,于是形成了內存里信息的越界訪問。
?
就這樣,每發起一個心跳,服務器就能泄露一點點數據(理論上最多泄露? 64K),這些數據里可能包括用戶的登錄賬號密碼、電子郵件甚至是加密秘鑰等信息,也可能并沒有包含這些信息,但攻擊者可以不斷利用 “心跳”來獲取更多的信息。就這樣,服務器一點一點泄露越來越多的信息,就像是心臟慢慢在出血,心臟出血漏洞的名字由此而來。
?
這里通過一張圖來展現一下:
由于互聯網應用最廣泛的安全傳輸方法就是 SSL,而 Open SSL 又是多數 SSL 加密網站使用的開源軟件包,所以漏洞影響范圍廣大,一時間席卷全球各個互聯網相關領域,網銀、在線支付、電商網站、門戶網站、電子郵件等無一幸免。
?
通過以上分析我們可以看見,OpenSSL心臟出血漏洞(heartbleed)的產生主要由于OpenSSL的心跳處理邏輯沒有檢測心跳包中的長度字段是否和后續字段相吻合導致攻擊者構造異常數據包,來直接獲取心跳數據所在的內存區域的后續數據。主要特征有:
- heartbleed漏洞主要存在于有心跳機制的OpenSSL協議中。
- IANA組織把開啟心跳擴展機制的SSL數據包type類型定義為24(0x18)。
- heartbleed漏洞主要存在于TLS和DTLS兩種協議中,在含有heartbleed漏洞的OpenSSL協議中需要開啟心跳擴展機制(beartbeat),而含有心跳擴展機制的TLS版本主要包含在0(0x0301),TLSv1.1(0x0302),TLSv1.2(0x0303)三種版本中。
- heartbleed漏洞攻擊主要由于攻擊者構造異常的心跳數據包,即心跳包中的長度字段與后續的數據字段不相符合,來獲取心跳數據所在的內存區域的后續數據。
其一般的攻擊流程如下圖所示:
利用該漏洞,攻擊者可以遠程讀取服務器內存中64K的數據,獲取內存中的敏感信息。
漏洞利用
1)使用shodan搜索引擎搜索站點
2)打開Metasploit,啟動msf。然后使用 auxiliary/scanner/ssl/openssl_heart_bleed功能。
3)執行run命令,運行掃描器,查看結果,可以看到有Heartbeat response with leak的字樣,證明該站存在HeartBleed漏洞
4)開啟信息展示,進行利用。
4、漏洞修復
建議升級openssl。此外,做如下措施。
總結
以上是生活随笔為你收集整理的心脏滴血漏洞详解及利用--HeartBleed With OpenSSL的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android虚拟wifi设置,win7
- 下一篇: 云呼叫中心占领高端市场客户价值是关键