最近基于攻击做防护,通过检测服务器的信息,尝试以普通用户进行提权,以防止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 脚本,以便可以从远程主机检索