您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關怎么用LES對Linux進行滲透測試的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
為了完成滲透測試任務并兼容不同Linux發行版系統,LES使用了大量的啟發式方法來實現其主要功能,同時為給定的Linux設備生成候選漏洞列表,以最大程度地降低假陽性以及誤報率。此外,出于工具實用性以及維護便利性開率,該工具還實現了以下特性:
1、子系統標記,針對目前大部分流行的Linux發行版,其中包括Debian、Ubuntu、RHEL/CentOS。
2、用戶空間分析子系統,完全支持基于deb和rpm的發行版系統,部分支持其他發行版。
在LES的早期版本中,LES只會處理內核版本,這種方式完全跳過了發行版版本的問題,大部分主要處理功能都通過Linux_Exploit_Suggester腳本來實現。但是這種方式并不是非常有效,因為容易出現誤報的問題,從而產生大量需要手動分析的漏洞。
隨著時間的推移,LES也得到了改進,并通過生成候選漏洞列表的方式來解決之前的問題:
1、 基于內核版本生成初始漏洞列表;
2、 檢查每個漏洞的“標簽”命中率;
3、 基于“附加檢查”舍棄不適用的漏洞利用;
4、 計算每個候選漏洞的內部度量(“等級”),并根據計算對列表排序。
接下來,我們將一一進行討論。
這是減少給定設備候選漏洞攻擊數量的第一步。LES會解析uname命令的輸出結果,并獲取準確的內核版本信息,然后再跟漏洞利用代碼中定義的版本信息進行對比。例如:Reqs: pkg=linux-kernel,ver>=4.4,ver<=4.13,...
為了降低假陽性,并進一步減少候選漏洞數量,提升目標系統的適用性,LES還引入了“標簽”的概念。標簽是描述內核版本的簡單語句,并標明給定的漏洞可以適用于這些系統版本,語句主要由正則表達式組成。例如:Tags: RHEL=6,RHEL=7{kernel:3.10.0-514.21.2|3.10.0-514.26.1}。“標簽”并不會舍棄候選漏洞列表中的實體數量,而是將更加適用的對象“往前放”。
為了進一步優化候選漏洞列表,LES還引入了額外的參數要求(Reqs域)。在向LES中添加漏洞利用實體時,我們可以定義下列條件:
Reqs:pkg=linux-kernel,ver>=3.2,ver<=4.10.6,CONFIG_USER_NS=y, \sysctl:kernel.unprivileged_userns_clone==1
上述條件表明內核版本必須>3.2并且<=4.10.6,而且內核的用戶命名空間功能還必須以CONFIG_USER_NS=y進行編譯,并啟動該功能(sysctl:kernel.unprivileged_userns_clone==1)。
對于不常用的檢測情況,LES還提供了運行任意BASH命令的功能,以便研究人員查看漏洞是否適用于給定系統。例如:
Reqs:pkg=linux-kernel,ver>=4.4.0,ver<=4.4.0,cmd:grep -qi ip_tables/proc/modules
在上述場景中,命令“grep -qi ip_tables /proc/modules”主要用來判斷ip_tables模塊是否已加載,并根據命令返回值(TRUE或FALSE)來判斷漏洞是否適用于該系統。
最后,LES會根據動態計算的等級(Rank)結果對列表中的現有漏洞及西寧排序,等級越高則在列表中的位置越靠前,也就是漏洞適用于給定系統的概率會越高。
Rank計算基于下列規則:
1、 針對普通漏洞的初始rank為1。
2、 針對優秀漏洞的初始rank為5,例如dirtycow和eBPF_verifier等等。
3、 針對較差漏洞的初始rank為0,例如不穩定的或不適用的漏洞。
4、 如果待測Linux發行版系統版本匹配其中一個標簽,則Rank加2。
5、 如果待測Linux發行版系統版本正則表達式匹配其中一個標簽,則Rank加5。
例如,LES針對dirtycow漏洞利用的Rank計算方式如下,運行版本為Ubuntu 16.04,內核版本為4.4.0-21-generic:
Inital rank: 5Distribution version match: +2 to rankkernel version regex match: +5 to rankfinal rank: 12
接下來,我們一起看看如何使用LES吧!
基本使用場景下,所有的步驟都會按順序執行來生成候選漏洞列表:
$./les.sh
--cvelist-file選項可以用來設置完整的CVE列表,如果目標系統受其中漏洞影響的話,LES將會用其進行測試,列表可以通過https://api-ksplice.oracle.com/api/1/update-list/生成:
$./les.sh --cvelist-file <cve-listing-file>
在紅隊研究的過程中,我們還可以“間接”運行LES來對目標(例如HIDS)執行更加嚴格的監控:
victim-host$dpkg -l > pkgsListing.txtpentester-host$./les.sh --uname "<uname-a-from-victim>" --pkglist-filepkgsListing.txt
在對目標設備進行漏洞利用測試之前,我們通常還需要檢查目標內核是否使用了其他加固措施:
$./les.sh --checksec
wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh-O les.sh
感謝各位的閱讀!關于“怎么用LES對Linux進行滲透測試”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。