⓬⁄₄ ⟦ OSCP ⬖ 研记 ⟧ Linux权限提升 ➱ Linux系统枚举-Ⅳ

**郑重声明:**本文所涉安全技术仅限用于合法研究与学习目的,严禁任何形式的非法利用。因不当使用所导致的一切法律与经济责任,本人概不负责。任何形式的转载均须明确标注原文出处,且不得用于商业目的。

🔋 点赞 | 能量注入 ❤️ 关注 | 信号锁定 🔔 收藏 | 数据归档 ⭐️ 评论| 保持连接💬

🌌 立即前往 👉晖度丨安全视界🚀​

​​

信息收集 ➢ Linux权限提升 ➢ Linux系统枚举-Ⅳ 🔥🔥🔥

▶ 漏洞检测
初始立足点

▶ 权限提升
横向移动

▶ 报告/分析

▶ 教训/修复

目录

1.Linux权限提升

[1.2 Linux系统枚举](#1.2 Linux系统枚举)

[1.2.2 手动枚举Linux系统](#1.2.2 手动枚举Linux系统)

[1.2.2.11 检查设备驱动程序和内核模块](#1.2.2.11 检查设备驱动程序和内核模块)

1.内核模块概述

2.为什么要检查内核模块

3.枚举实践

[1.2.2.12 寻找 SUID/SGID 权限文件](#1.2.2.12 寻找 SUID/SGID 权限文件)

[1.什么是 SUID 与 SGID权限](#1.什么是 SUID 与 SGID权限)

[2.安全风险:SUID 提权](#2.安全风险:SUID 提权)

3.枚举实践

4.示例输出与利用思路

[1.2.3 自动化枚举](#1.2.3 自动化枚举)

[1.2.3.1 使用 unix-privesc-check 自动化枚举](#1.2.3.1 使用 unix-privesc-check 自动化枚举)

1.脚本基本信息

2.运行模式

3.典型用法:传输脚本至目标并执行

[4.输出示例:发现 /etc/passwd 可写](#4.输出示例:发现 /etc/passwd 可写)

[1.2.3.2 其他自动化脚本](#1.2.3.2 其他自动化脚本)

1.常用自动化工具速览

2.自动化工具的局限性

[3.自动化 + 手动 = 最佳实践](#3.自动化 + 手动 = 最佳实践)

[欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论](#欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论)


1.Linux权限提升

本系列内容围绕以下四大部分展开,本文是第一部分:++Linux系统枚举++

攻击向量 核心概念 典型检查/利用方法 关键风险点
1. 系统枚举 全面侦查,像侦探一样收集一切可能指向弱点的线索。 - 检查系统配置、用户与组、历史命令。 - 枚举运行服务、网络连接、进程。 - 列出安装软件、内核版本、计划任务。 信息收集不全面,导致错过关键漏洞入口。
2. 暴露的机密信息 系统或应用中意外留存的可直接利用的敏感数据。 - 查找 配置文件中的硬编码密码。 - 搜索 日志文件中的敏感数据或错误信息。 - 检查环境变量中的密钥、令牌或密码。 访问凭证直接泄露,提供最直接的攻击突破口。
3. 不安全的文件权限 文件或目录的权限设置不当,允许低权限用户进行越权操作。 - 全局可写文件/目录 :任何用户可修改,用于注入恶意代码或替换文件。 - 不当所有权 :低权限用户拥有关键系统文件,可直接修改。 - SUID/SGID滥用:高权限程序存在漏洞或配置错误,可被利用来获取其权限。 通过文件系统层面的配置错误,绕过权限限制。
4. 利用系统组件 利用操作系统内核、系统服务或第三方应用程序中存在的漏洞。 - 脆弱服务 :攻击以高权限(如root)运行的未更新或配置不当的服务。 - 内核漏洞 :利用操作系统内核本身的漏洞直接提权。 - 软件漏洞:利用第三方应用(如编辑器、数据库)的漏洞执行高权限代码。 利用代码层面的漏洞,实现权限的实质性提升。

1.2 Linux系统枚举

1.2.2 手动枚举Linux系统

接前文。

1.2.2.11 检查设备驱动程序和内核模块

在权限提升过程中,利用内核模块或设备驱动程序的已知漏洞 是高级攻击者的常用手法。

可以手动枚举已加载的内核模块 ,并提取模块详细信息,为后续漏洞匹配奠定基础。

1.内核模块概述

①什么是内核模块?

🔧 **Linux的内核模块(Kernel Module,*.ko文件):**可在Linux内核中动态加载/卸载的代码片段。它们通常用于扩展内核的功能,而不需要重启或重新编译内核。通过内核模块,用户和开发者可以在运行时增加、修改或删除内核的功能。

另,在Windows 中的"对等物"是***.sys文件**。

②内核模块的核心作用?

作用分类 具体说明 示例模块
🖥️ 硬件支持 为显卡、网卡、存储设备等提供驱动程序 nvidiae1000
📁 文件系统 支持不同文件系统类型(如 NTFS、FAT、EXT) ntfs3ext4
🌐 网络协议 实现额外的网络协议或功能 ip_vsbridge
🛡️ 其他扩展 安全性、监控、性能优化等 auditkvm

③内核模块的三大特点?

序号 特点 说明
1 动态加载与卸载 无需重启,按需加载/卸载,灵活应对变化
2 模块化管理 内核只保留基础功能,其他功能以模块形式按需添加,节约资源
3 依赖自动处理 模块间可存在依赖关系,内核自动加载所需依赖模块

④内核模块的文件格式?

内核模块以**.ko** (Kernel Object)为扩展名,是经过编译的二进制文件,存放于 **/lib/modules/$(uname -r)/**目录下。形如:

bash 复制代码
$ file /lib/modules/5.10.0/kernel/drivers/net/ethernet/intel/e1000/e1000.ko
e1000.ko: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), BuildID[sha1]=..., not stripped

**⑤形象比喻:**内核 = 公司管理层,内核模块 = 外部部门

  • 内核:始终运行,负责公司最基础的运作。

  • 内核模块 :仅在需要时加载(聘用) ,任务结束后卸载(解聘),不干扰核心运转。

  • 动态性:无需关停公司即可调整部门配置。

内核模块加载与卸载就像公司在不同时间根据需求选择外部部门。

比如:

当公司需要开拓新市场时,市场部门(内核模块)就会被引入。

当市场推广活动结束后部门可以临时退出,公司的管理层可以继续运作。

加载模块:类似于公司在需要时邀请新的外部部门进来帮助工作。

卸载模块:当任务完成后,外部部门可以被临时解雇,资源得到释放。

2.为什么要检查内核模块
  • 内核模块运行在最高特权级(Ring 0) ,一旦存在漏洞,可导致本地权限提升容器逃逸

  • 攻击者需要获取目标上加载的模块列表版本信息,才能定位对应的利用程序。

  • 即使模块本身无漏洞,其依赖关系错误配置也可能成为突破口。


3.枚举实践

①列出当前已加载的内存模块

bash 复制代码
$ lsmod
列名 说明
Module 内核模块名称(如 libataext4
Size 模块占用的内存大小(字节)
Used by 依赖该模块的其他模块或进程计数;若 >0,表示正被使用

📌 用途 :快速识别当前活跃的模块,尤其关注第三方/非标准模块。

查询指定模块的详细信息

bash 复制代码
$ /sbin/modinfo libata
复制代码
![](https://i-blog.csdnimg.cn/direct/a2df3bb9026b4c3694d042696d8c634a.png)​
字段 说明
filename 模块文件路径
version 模块版本号(漏洞匹配的关键)
license 许可证类型(GPL 等)
author 模块作者
depends 依赖的其他模块(可追溯攻击面)
parm 模块可接受的参数(可能暴露配置缺陷)

⚠️ 注意modinfo 需要完整路径(如 /sbin/modinfo)或在 PATH 中;部分发行版需要 -b 指定备用内核目录。
🛡️ 防御视角

  • 定期审计已加载模块,移除非必需不再维护的第三方驱动。

  • 使用 modprobe 黑名单机制禁用高危模块。

  • 及时更新内核及模块至最新稳定版本,修复已知漏洞。


1.2.2.12 寻找 SUID/SGID 权限文件

在 Linux 权限体系中,SUIDSGID 是两类特殊的可执行文件权限 ,允许普通用户以文件所有者/组的身份 运行程序。若配置不当,它们将成为攻击者从普通用户通往 root 的直通车

1.什么是 SUID 与 SGID权限
权限标志 全称 作用 表示位置
SUID Set User ID 执行时以文件所有者的 UID 运行,而非执行者的 UID 所有者执行位 (-rwsr-xr-x)
SGID Set Group ID 执行时以文件所属组的 GID 运行;对目录则继承所属组 组执行位 (-rwxr-sr-x)

🔣 权限位显示规则

  • 小写 s :SUID/SGID 生效,且文件可执行 (如 -rwsr-xr-x

  • 大写 S :SUID/SGID 生效,但文件不可执行 (如 -rwSr--r--)------ 通常无意义

原理:eUID 与权限继承

  • 通常进程的有效用户 ID (eUID) = 执行者的 UID

  • 若文件设置 SUID ,则 eUID = 文件所有者 UID

  • 若所有者是 root → 普通用户执行该文件时,进程以 root 权限运行

正常流程 :用户 A 运行程序 → 进程以 用户A 的权限执行

⚠️ SUID 流程 :用户 A 运行 root:root 且带 SUID 的程序 → 进程以 root 权限执行

2.安全风险:SUID 提权

如果一个 root 拥有的 SUID 二进制文件 存在漏洞或++可被篡改++ ,攻击者就能通过该程序以 root 身份执行任意命令 ,从而完全控制整个系统

因此,在枚举阶段,要重点枚举此类权限。

典型利用场景

  • 漏洞利用(如缓冲区溢出)

  • 调用其他程序(如 system()

  • 文件读写操作(如 SUID 的 cpvim 等)

3.枚举实践

查找 SUID/SGID 文件。

bash 复制代码
# 查找所有设置了 SUID 位的普通文件(忽略错误)
$ find / -perm -u=s -type f 2>/dev/null

# 查找所有设置了 SGID 位的普通文件
$ find / -perm -g=s -type f 2>/dev/null

# 同时查找 SUID 或 SGID
$ find / -perm /6000 -type f 2>/dev/null

命令拆解

  • /       → 从根目录开始递归

  • -perm -u=s → 精确匹配SUID 位设置

  • -type f  → 只查找普通文件(排除目录)

  • 2>/dev/null→ 丢弃"权限不足"错误,保持输出清晰

4.示例输出与利用思路
bash 复制代码
$ find / -perm -u=s -type f 2>/dev/null
/usr/bin/sudo
/usr/bin/passwd
/usr/bin/gpasswd
/bin/su
/bin/mount
/bin/umount
/bin/cp                <--- ⚠️ 如果 cp 被设置 SUID......

如果 /bin/cp 是 SUID root :普通用户可利用它覆盖系统敏感文件,例如:

bash 复制代码
$ cp /etc/passwd /tmp/passwd
# 编辑 /tmp/passwd 移除 root 密码
$ cp /tmp/passwd /etc/passwd   # 以 root 权限覆盖

→ 从而无密码切换至 root。

防御要点:

  • SUID/SGID 是 Linux 强大的权限机制,但也常成为提权突破口。

  • 枚举 SUID 文件是权限提升阶段的标准动作

  • 重点关注 root 所有者 + 可执行 + 非必要 的 SUID 二进制文件。

  • 防御建议:移除不必要的 SUID 权限 ,使用 mount -o nosuid 挂载非系统分区。

🛡️ 一句话防御

每个 SUID root 文件都是系统权柄的延伸,必须像对待 root 密码一样谨慎保护。

至此,关于Linux系统的手动枚举告个段落。接下来,使用自动化工具进行自动枚举。


1.2.3 自动化枚举

1.2.3.1 使用 unix-privesc-check 自动化枚举

手动枚举 Linux 系统存在大量信息,耗时且易遗漏unix-privesc-check 是一个预装在 Kali 中的 Bash 脚本 ,专门用于自动化检查类 Unix 系统 的本地权限提升漏洞,快速发现因配置错误导致的可利用点。

1.脚本基本信息
属性 说明
名称 unix-privesc-check
路径 /usr/bin/unix-privesc-check(Kali 预装)
类型 Bash 脚本
目标 Linux / Unix 系统
功能 检查系统配置错误(如文件权限、SUID、服务配置等),定位可提权的脆弱点
2.运行模式
模式 命令示例 特点
标准模式 unix-privesc-check standard 速度优化,误报较少
详细模式 unix-privesc-check detailed 🔍 输出更详细的检查信息

💡 建议 :初次扫描使用 标准模式,快速获得高可信结果。

3.典型用法:传输脚本至目标并执行

由于目标通常无此脚本,需从 Kali 传输 到目标主机(如 Joe 的机器),然后运行并保存输出

bash 复制代码
# 目标主机上执行(标准模式,输出重定向)
$ ./unix-privesc-check standard > output.txt

优点

  • 全自动扫描

  • 输出可离线分析

  • 避免手工逐项检查的遗漏

4.输出示例:发现 /etc/passwd 可写

该脚本对常见文件的权限进行多次检查。例如,下面的摘录显示非root用户可写的配置文件:

🧨 风险解读

  • /etc/passwd任何用户可写,攻击者可直接:

    • 移除 root 密码

    • 添加新用户(UID 0)

    • 无密码切换至 root

  • 这是典型的权限配置错误,可被轻松利用。


1.2.3.2 其他自动化脚本

除了 unix-privesc-check,社区还提供了多款专门用于 Linux 权限提升枚举 的自动化脚本,其中 LinEnumLinPEAS 是目前最活跃、更新最频繁的工具。

1.常用自动化工具速览
工具名称 类型 特点
LinEnum Bash 脚本 经典提权枚举脚本,输出清晰,检查项目全面
LinPEAS Bash 脚本 PEAS 家族成员,颜色高亮,检测项更细,积极维护
unix-privesc-check Bash 脚本 预装在 Kali,标准/详细双模式,误报较少

✅ 三者均无需安装直接传输到目标即可运行,是渗透测试人员标准弹药。

2.自动化工具的局限性

🧠 关键认知没有万能脚本 。每个系统都有独特的配置、定制化路径、手工部署软件 ,自动化工具必然会遗漏部分漏洞点。

局限性 说明
规则固化 脚本基于预设检查规则,无法覆盖非常规配置
误报与漏报 标准模式减少误报,但可能跳过真实漏洞;详细模式则增加噪音
无法理解业务上下文 无法判断某个文件是否本应可写,无法识别后门或隐藏依赖
对抗性检测 若目标被植入反枚举机制,自动化脚本可能被欺骗或绕过
3.自动化 + 手动 = 最佳实践
  • 自动化 :快速覆盖通用脆弱点(SUID、可写文件、内核版本等)

  • 手动 :深挖自动化遗漏的特殊目录、自定义服务、遗留备份

💬 强调
"检查只能通过手动检查才能捕捉到的独特配置非常重要。"

接下来,将根据枚举获得的信息来采取行动,以提升我们的特权。


欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论

每一份支持,都是我持续输出的光。

相关推荐
网云工程师手记3 小时前
防火墙安全区域划分规范与接口配置实操指南
运维·服务器·网络·安全·网络安全
禾木KG13 小时前
网络安全-4 《中华人民共和国网络安全法》-2025年10月28日修正(共七章八十一条)
网络安全
0xSec笔记本挖呀瓦呀挖15 小时前
Windows后门应急(二)--计划任务后门分析与处置|Windows取证分析
windows·安全·web安全·网络安全·系统安全·网络攻击模型·安全威胁分析
网云工程师手记1 天前
企业防火墙端口映射完整配置与安全收敛实操手册
运维·服务器·网络·安全·网络安全
瘾大侠1 天前
HTB 赛季10 - Pterodactyl - user
网络·安全·web安全·网络安全
Whoami!1 天前
⓬⁄₃ ⟦ OSCP ⬖ 研记 ⟧ Linux权限提升 ➱ Linux系统枚举-Ⅲ
网络安全·信息安全·linux枚举
Pure_White_Sword1 天前
bugku-reverse题目-游戏过关
游戏·网络安全·ctf·reverse·逆向工程
ccino .2 天前
【Drupal文件上传导致跨站脚本执行(CVE-2019-6341)】
运维·网络安全·docker·容器
玄斎2 天前
手把手教你做eNSP动态路由实验
网络·网络协议·学习·网络安全·智能路由器·hcia·ospf