Linux提權輔助工具大全
最近基于攻擊做防護,通過檢測服務器的信息,嘗試以普通用戶進行提權,以防止0day打進來后的提權。通過實際測試,一些高版本的內核版本相對比較安全,直接提權的可能性較低,通過研究發現,當有普通用戶權限時,可以借助配置、安裝的軟件來進行提權相對容易。本文對目前廠家的Linux提權輔助工具進行實際測試,可以借助這些工具進行信息收集,快讀獲取exp。實際最好用的還是需要積累和沉淀,手動編譯對應操作系統和版本的exp。
1.1LinEnum
https://github.com/rebootuser/LinEnum
1.1.1簡介
inEnum(Linux Enumeration & Privilege Escalation Tool)是一個用于 Linux 系統的枚舉和權限提升工具,可以幫助安全研究人員和系統管理員收集關于目標系統的詳細信息,以便評估安全風險和識別提升權限的機會。
1.主要功能和用途
(1)基本系統信息收集
當前用戶和系統信息
運行的進程和服務
已安裝的軟件包列表
已安裝的內核和相關信息
(2)文件系統信息
檢查可寫目錄和文件
查找隱藏文件和目錄
查找敏感文件(如密碼文件)
(3)網絡信息
網絡配置和連接信息
監聽端口和相關進程
(4)安全配置檢查
檢查用戶的權限和Sudo配置
檢查系統日志(syslog)設置
檢查防火墻設置和配置
(5)提權和漏洞檢測
檢查可用的提權路徑和可能的漏洞利用機會
檢查系統安全功能和設置
1.1.2下載和準備
1.下載 LinEnum:
你可以通過 GitHub 上的 LinEnum 倉庫獲取最新版本的工具。
(1)使用 git clone 命令
git clone https://github.com/rebootuser/LinEnum.git
(2)檢查和設置權限
cd LinEnum
chmod +x LinEnum.sh
(3)執行 LinEnum
./LinEnum.sh > output.txt
這將執行腳本并將結果輸出到 output.txt 文件中。你也可以選擇不將輸出保存到文件,而是在終端直接查看輸出。
1.2 linux-exploit-suggester
1.2.1下載及執行
1.直接下載為les.sh
wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O les.sh
chmod +x les.sh
./les.sh
1.2.2詳細用法
1.顯示可用漏洞信息
./linux-exploit-suggester.sh
針對每個漏洞,會計算其曝光風險。以下是可能的“曝光”狀態:
- 高度可能 - 評估的內核很可能受到影響,且 PoC 漏洞利用工具很可能可以直接使用,無需進行主要修改。
- 可能 - 漏洞利用可能會生效,但可能需要對 PoC 工具進行定制以適應目標系統。
- 較不可能 - 需要額外的手動分析來驗證內核是否受影響。
- 不可能 - 內核高度不太可能受到影響(工具的輸出中未顯示漏洞利用)
2.顯示 Linux 系統安全功能狀態
./linux-exploit-suggester.sh --checksec
LES 能夠檢查你的 Linux 內核可用的大部分安全設置。它不僅驗證了內核編譯時的配置(CONFIGs),還驗證了運行時的設置(sysctl),從而為正在運行的內核提供更完整的安全狀態圖景。這一功能是 checksec.sh 工具中 --kernel 選項的現代延續,由 Tobias Klein 開發。
1.3linux-exploit-suggester-2
https://github.com/jondonas/linux-exploit-suggester-2
Linux Exploit Suggester 2 是基于原始 Linux_Exploit_Suggester 腳本的增強版,旨在幫助發現 Linux 系統的特權提升漏洞
1.3.1主要改進
1.擴展的漏洞數據庫
包含更多的漏洞利用,覆蓋了更廣泛的潛在漏洞。
2.直接下載漏洞代碼
提供 -d 標志,可直接從 Exploit DB 下載漏洞代碼。用戶可以下載所有可用的漏洞利用或選擇特定的漏洞。
3.通配符匹配
支持對內核和操作系統發布版本進行準確的通配符匹配,有助于更有效地識別適用的漏洞利用。
4.輸出著色
輸出結果使用著色,提高可讀性,更容易區分不同的信息部分。
1.3.2使用方法
1.獲取漏洞信息
在沒有任何參數的情況下運行腳本,它將執行 uname -r 命令以獲取 Linux 內核版本,并搜索其數據庫以查找適用的漏洞利用。
chmod +x linux-exploit-suggester-2.pl
./linux-exploit-suggester-2.pl
2.手動通配符匹配
可以使用 -k 標志手動指定內核版本,后面跟上版本號或通配符。這在 uname -r 輸出不可用或不準確的情況下非常有用。
./linux-exploit-suggester-2.pl -k 3
3.下載漏洞代碼
使用 -d 標志啟動下載菜單。該菜單允許下載所有可用的漏洞利用 (a) 或按其編號選擇特定漏洞利用。這個功能非常適合直接從 Exploit DB 獲取漏洞利用代碼的場景。
$ ./linux-exploit-suggester-2.pl -d
自動顯示可用的exploit,輸入編號進行下載,輸入a下載所有的exploit。
4.幫助菜單
要快速查看可用標志及其用法,請使用 -h 標志。
$ ./linux-exploit-suggester-2.pl -h
1.3.3編譯及執行exp
1.exploit_exploit_x
chmod +x exploit_exploit_x
./exploit_exploit_x
2.cve_2016_0728
(1)編譯exp
mv exploit_pp_key cve_2016_0728.c
gcc cve_2016_0728.c -o cve_2016_0728 -lkeyutils -Wall
(2)執行exp
chmod +x cve_2016_0728
./cve_2016_0728 PP_KEY
3.exploit_timeoutpwn
mv exploit_timeoutpwn timeoutpwn.c
gcc timeoutpwn.c -o pwn && ./pwn
1.4 linux-soft-exploit-suggester
https://github.com/belane/linux-soft-exploit-suggester
幫助安全研究人員和滲透測試者發現和利用 Linux 系統中軟件層面的漏洞。它可能包含了自動化的腳本或工具,能夠分析目標系統的軟件組件,并推薦已公開的漏洞利用代碼。
1.4.1主要特點
1.漏洞利用建議
能夠根據目標系統的軟件版本,推薦已知的漏洞利用。
2.自動化分析
通過掃描目標系統的軟件組件和版本信息,自動化地尋找適用的漏洞利用。
3.漏洞利用下載
可能支持直接從漏洞數據庫(如 Exploit DB)下載漏洞利用代碼
1.4.2使用方法
1.下載和安裝
git clone https://github.com/belane/linux-soft-exploit-suggester.git
cd linux-soft-exploit-suggester
2.運行腳本
./linux-soft-exploit-suggester.py
3.詳細參數說明
-h, --help:顯示幫助消息,包含可用選項的摘要。
-f FILE, --file FILE:指定包含目標系統上安裝的軟件包或軟件列表的文件。例如:
python linux-soft-exploit-suggester.py --file package_list
--clean:使用干凈的軟件包列表,通常使用 dpkg-query -W 生成。
--duplicates:在結果中顯示重復的漏洞。
--db DB:指定漏洞數據庫文件的路徑,格式為CSV。默認為 files_exploits.csv。
-j, --juicy:搜索與運行進程、setuid二進制文件和Linux能力相關的軟件包。
--update:下載最新版本的漏洞數據庫。
-d debian|redhat, --distro debian|redhat:指定Linux發行版類型 (debian 或 redhat)。默認為 debian。
--dos:包括拒絕服務(DoS)漏洞在內的搜索結果。
--intense:進行強烈的軟件包名稱搜索,適用于軟件名稱與軟件包名稱不匹配的情況。
-l 1-5, --level 1-5:指定軟件版本搜索的變化級別。選項從 1(相同版本)到 5(所有版本)。
--type TYPE:按漏洞類型篩選,如 local(本地)、remote(遠程)、webapps(Web應用)、dos(拒絕服務)等。
--filter FILTER:按漏洞標題中的特定字符串進行篩選。
4.用法示例
(1)更新漏洞數據庫
python linux-soft-exploit-suggester.py --update
(2)搜索關鍵二進制文件
python linux-soft-exploit-suggester.py --juicy
(3)指定軟件包列表和漏洞數據庫
python linux-soft-exploit-suggester.py --file package_list --db files_exploits.csv
(4)使用Redhat/CentOS格式
python linux-soft-exploit-suggester.py --file package_list --distro redhat
(5)搜索主要版本漏洞
python linux-soft-exploit-suggester.py --file package_list --level 4
(6)按遠程漏洞篩選
python linux-soft-exploit-suggester.py --file package_list --type remote
(7)按漏洞標題中的特定詞進行篩選
python linux-soft-exploit-suggester.py --file package_list --filter Overflow
1.5 linPEAS
1.5.1 linPEAS簡介
linPEAS 是一個用于 Linux 系統的特權提升腳本套件,旨在幫助進行后滲透測試時進行系統枚舉和發現特權提升路徑。
1.主要功能
系統枚舉:linPEAS 收集系統的廣泛信息,包括用戶、組、進程、網絡配置、安裝的軟件等。
特權提升檢測:它檢查常見的配置錯誤和漏洞,這些漏洞可能允許攻擊者在系統上提升其權限。
2.關鍵特點
腳本自動化:linPEAS 自動化了信息收集和檢查的過程,并提供詳細報告,列出潛在的漏洞和配置問題。
用戶友好的輸出:它將發現的信息整理成易于閱讀的格式,方便安全專家和滲透測試人員分析和處理結果。
可定制性:用戶可以通過各種選項和標志調整腳本的行為,集中于特定類型的檢查或排除某些檢查。
1.5.2使用方法
1.下載對應系統的版本
https://github.com/peass-ng/PEASS-ng/releases
wget https://raw.githubusercontent.com/peass-ng/PEASS-ng/master/linPEAS/linpeas.sh
2.詳細參數
此工具枚舉和搜索可能存在的配置錯誤(已知漏洞、用戶、進程和文件權限、特殊文件權限、可讀/可寫文件、暴力破解其他用戶(top1000密碼)、密碼等)在主機內,并用顏色突出顯示可能存在的配置錯誤。
(1)檢查
-a 執行所有檢查:1分鐘的進程、su 暴力破解和額外檢查。
-o 僅執行選定的檢查(system_information、container、cloud、procs_crons_timers_srvcs_sockets、network_information、users_information、software_information、interesting_perms_files、interesting_files、api_keys_regex)。選擇逗號分隔的列表。
-s 隱蔽和更快(不執行一些耗時的檢查)
-e 執行額外的枚舉
-t 自動網絡掃描和互聯網連接檢查 - 此選項將寫入文件
-r 啟用正則表達式(可能需要幾分鐘到幾小時)
-P 指定一個密碼,將用于運行 'sudo -l' 和通過 'su' 暴力破解其他用戶賬戶
-D 調試模式
(2)網絡偵察
-t 自動網絡掃描和互聯網連接檢查 - 此選項將寫入文件
-d <IP/子網掩碼> 使用 fping 或 ping 發現主機。例如:-d 192.168.0.1/24
-p <端口(s)> -d <IP/子網掩碼> 查找 TCP 開放端口的主機(通過 nc)。默認情況下,將掃描端口 22、80、443、445、3389 和您指定的另一個端口(如果不添加更多,則選擇 22)。您還可以添加一個端口列表。例如:-d 192.168.0.1/24 -p 53,139
-i <IP> [-p <端口(s)>] 使用 nc 掃描一個 IP。默認情況下(無 -p),將掃描 nmap 的前1000個端口,但您可以選擇一個端口列表。例如:-i 127.0.0.1 -p 53,80,443,8000,8080
請注意,如果指定了某些網絡掃描(選項 -d/-p/-i 但不包括 -t),將不會執行特權提升檢查。
(3)端口轉發(反向連接)
-F 本地 IP:本地端口:遠程 IP:遠程端口 從您的主機(本地 IP:本地端口)執行 linpeas 來將端口轉發到遠程 IP(遠程端口)。
(4)固件偵察
-f </文件夾/路徑> 執行 linpeas 來搜索文件夾內的密碼/文件權限配置錯誤。
(5)雜項
-h 顯示幫助信息。
-w 在大塊檢查之間等待執行
-L 強制執行 linpeas
-M 強制執行 macpeas
-q 不顯示橫幅
-N 不使用顏色
3.執行linpeas
chmod +x linpeas.sh
./linpeas.sh
1.6linux-smart-enumeration
https://github.com/diego-treitos/linux-smart-enumeration
1.6.1Linux Smart Enumeration簡介
Linux Smart Enumeration (lse.sh) 是一種用于枚舉并提供系統詳細信息的腳本工具。它設計用于審計和調查Linux系統,可以幫助發現潛在的安全風險和配置錯誤。
1.主要功能
- 檢查系統基本信息,如發行版、內核版本等。
- 列出當前登錄的用戶和正在運行的進程。
- 顯示環境變量和用戶特權。
- 枚舉文件系統信息,包括掛載點和權限。
- 檢查網絡配置,列出監聽端口和已建立的連接。
- 搜索敏感文件和潛在的安全配置錯誤。
1.6.2詳細使用
1.下載
wget "https://github.com/diego-treitos/linux-smart-enumeration/releases/latest/download/lse.sh" -O lse.sh;chmod 700 lse.sh
curl "https://github.com/diego-treitos/linux-smart-enumeration/releases/latest/download/lse.sh" -Lo lse.sh;chmod 700 lse.sh
也可以使用
git clone https://github.com/diego-treitos/linux-smart-enumeration.git
./lse.sh
2.詳細參數
使用:./lse.sh [選項]
選項:
-c 禁用顏色
-i 非交互模式
-h 幫助信息
-l LEVEL 輸出詳細級別
0: 顯示高度重要的結果(默認)
1: 顯示有趣的結果
2: 顯示所有收集到的信息
-s SELECTION 逗號分隔的要運行的部分或測試列表。可用部分包括:
usr: 用戶相關測試
sud: Sudo 相關測試
fst: 文件系統相關測試
sys: 系統相關測試
sec: 安全措施相關測試
ret: 定期任務(cron、定時器)相關測試
net: 網絡相關測試
srv: 服務相關測試
pro: 進程相關測試
sof: 軟件相關測試
ctn: 容器(docker、lxc)相關測試
cve: CVE 相關測試
可以使用特定的測試ID(例如:usr020,sud)
-e PATHS 要排除的路徑列表,逗號分隔。這允許您在完整性成本下進行更快的掃描
-p SECONDS 進程監視器將觀察進程的時間。值為0將禁用任何監視(默認:60)
-S 在此主機上提供 lse.sh 腳本,以便可以從遠程主機檢索