**郑重声明:**本文所涉安全技术仅限用于合法研究与学习目的,严禁任何形式的非法利用。因不当使用所导致的一切法律与经济责任,本人概不负责。任何形式的转载均须明确标注原文出处,且不得用于商业目的。
🔋 点赞 | 能量注入 ❤️ 关注 | 信号锁定 🔔 收藏 | 数据归档 ⭐️ 评论| 保持连接💬
🌌 立即前往 👉晖度丨安全视界🚀

▶信息收集 ➢ Linux权限提升 ➢ Linux系统枚举-Ⅰ 🔥🔥🔥
▶ 漏洞检测
▶ 初始立足点▶ 权限提升
▶ 横向移动▶ 报告/分析
▶ 教训/修复
目录
[1.1 Linux权限提升概述](#1.1 Linux权限提升概述)
[1.1.1 Linux权限提升路径图](#1.1.1 Linux权限提升路径图)
[1.1.2 关键技术要点](#1.1.2 关键技术要点)
[1.2 Linux系统枚举](#1.2 Linux系统枚举)
[1.2.1 Linux文件与用户权限概述](#1.2.1 Linux文件与用户权限概述)
[1.2.1.1 核心理念:一切皆文件](#1.2.1.1 核心理念:一切皆文件)
[1.2.1.2 权限的构成:三层控制模型](#1.2.1.2 权限的构成:三层控制模型)
[1.2.1.3 实例解析:/etc/shadow 文件](#1.2.1.3 实例解析:/etc/shadow 文件)
[1.2.2 手动枚举Linux系统](#1.2.2 手动枚举Linux系统)
[1.2.2.1 枚举当前登录用户的基本信息](#1.2.2.1 枚举当前登录用户的基本信息)
[1.2.2.2 枚举系统所有用户的基本信息](#1.2.2.2 枚举系统所有用户的基本信息)
[1./etc/passwd 文件字段深度解析](#1./etc/passwd 文件字段深度解析)
[1.2.2.3 枚举主机名与系统信息](#1.2.2.3 枚举主机名与系统信息)
[欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论](#欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论)
1.Linux权限提升
1.1 Linux权限提升概述
权限提升: 是攻击者利用系统配置错误或软件漏洞,从普通用户权限升级至高权限(如root) 的过程。根据MITRE ATT&CK框架,这是一套系统化的攻击策略 ,旨在++突破权限边界访问受限资源++。
1.1.1 Linux权限提升路径图

1.1.2 关键技术要点
本系列内容围绕以下四大部分展开,本文是第一部分:++Linux系统枚举++。
| 攻击向量 | 核心概念 | 典型检查/利用方法 | 关键风险点 |
|---|---|---|---|
| 1. 系统枚举 | 全面侦查,像侦探一样收集一切可能指向弱点的线索。 | - 检查系统配置、用户与组、历史命令。 - 枚举运行服务、网络连接、进程。 - 列出安装软件、内核版本、计划任务。 | 信息收集不全面,导致错过关键漏洞入口。 |
| 2. 暴露的机密信息 | 系统或应用中意外留存的可直接利用的敏感数据。 | - 查找 配置文件中的硬编码密码。 - 搜索 日志文件中的敏感数据或错误信息。 - 检查环境变量中的密钥、令牌或密码。 | 访问凭证直接泄露,提供最直接的攻击突破口。 |
| 3. 不安全的文件权限 | 文件或目录的权限设置不当,允许低权限用户进行越权操作。 | - 全局可写文件/目录 :任何用户可修改,用于注入恶意代码或替换文件。 - 不当所有权 :低权限用户拥有关键系统文件,可直接修改。 - SUID/SGID滥用:高权限程序存在漏洞或配置错误,可被利用来获取其权限。 | 通过文件系统层面的配置错误,绕过权限限制。 |
| 4. 利用系统组件 | 利用操作系统内核、系统服务或第三方应用程序中存在的漏洞。 | - 脆弱服务 :攻击以高权限(如root)运行的未更新或配置不当的服务。 - 内核漏洞 :利用操作系统内核本身的漏洞直接提权。 - 软件漏洞:利用第三方应用(如编辑器、数据库)的漏洞执行高权限代码。 | 利用代码层面的漏洞,实现权限的实质性提升。 |
1.2 Linux系统枚举
先了解Linux上的文件和用户权限的概念后,然后开始手动枚举,最后使用自动化工具进行枚举。
1.2.1 Linux文件与用户权限概述
1.2.1.1 核心理念:一切皆文件
Linux 及UNIX 系统的设计哲学是,几乎所有资源(文件、目录、设备、进程信息等)都在文件系统中以 "文件" 的形式呈现和管理。这使得权限系统拥有一致且强大的控制力。
1.2.1.2 权限的构成:三层控制模型
每个**"文件"** 的访问权限由三个核心要素构成,形成一个清晰的 "谁-能做什么" 的控制矩阵。
| 维度 | 说明 | 表示符号 |
|---|---|---|
| 用户类别 | 定义权限应用的对象。 | u (所有者), g (所属组), o (其他用户) |
| 权限类型 | 定义允许的操作类型。 | r (读), w (写), x (执行) |
| 资源类型 | 权限的具体含义因资源是 文件 还是 目录 而不同。 | 文件(-), 目录(d) |
🔧 权限 rwx 的具体含义:
权限 r、w、x 对文件和目录有着截然不同的操作意义,这是理解权限控制的关键。
| 权限 | 对 文件 的含义 | 对 目录 的含义 |
|---|---|---|
读取 (r) |
可查看文件内容。 | 可列出 目录内的文件和子目录名(如 ls)。 |
写入 (w) |
可修改或清空文件内容。 | 可在目录内创建、删除、重命名文件或子目录。 |
执行 (x) |
可将文件作为程序或脚本运行。 | 可进入/穿越 该目录(如 cd),访问其内部项目。 |
💡 关键点 :目录的
x(执行) 权限是**"访问开关"**。①目录有
r权限,但没有x权限: 你依然无法进入或访问其中的具体文件。(可ls不可cd)②如果有
x但无r: 你只能通过已知的确切名称 来访问目录内已知的项目。(可cd不可ls)
1.2.1.3 实例解析:/etc/shadow 文件
通过 ls -l /etc/shadow 命令查看。

可以将其分解解读:
| 字段 | 示例值 | 含义解析 |
|---|---|---|
| 类型与权限 | -rw-r----- |
-:这是一个普通文件 。 rw-:文件所有者 (root) 拥有读、写 权限。 r--:所属组 (shadow) 拥有只读 权限。 ---:其他用户 无任何权限。 |
| 所有者 | root |
文件属于 root 用户。 |
| 所属组 | shadow |
文件属于 shadow 用户组。 |
结论 :该配置严格限制了只有
root用户能修改此关键密码文件,而shadow组内的程序(如身份验证服务)仅有读取权限,有效保护了系统安全凭证。
1.2.2 手动枚举Linux系统
🎯 手动枚举的核心优势:精准可控
-
超越自动化 :手动枚举能发现自动化工具常忽略的、特定于环境的定制化配置错误。
-
全面探查:实现对目标系统更深层次、更细致的状态侦察。
1.2.2.1 枚举当前登录用户的基本信息

-
命令 :
id -
目的 :确认当前攻击立足点用户joe的用户身份(UID) 和组身份(GID) ,这是后续所有提权操作的基础上下文。
-
关键信息 :
UID=1000, GID=1000通常表示这是一个首个创建的普通用户。
1.2.2.2 枚举系统所有用户的基本信息

-
命令 :
cat /etc/passwd -
目的 :获取系统完整用户清单,识别高价值目标与潜在攻击面。
-
文件解读:每行代表一个用户,格式为:
username:password:UID:GID:comment:home_directory:login_shell
1./etc/passwd 文件字段深度解析
以用户 **++joe:x:1000:1000:joe,,,:/home/joe:/bin/bash++**为例:
| 字段 | 示例值 | 含义与实战意义 |
|---|---|---|
| 登录名 | joe |
用于登录系统的用户名。 |
| 密码指示 | x |
重要 :密码哈希实际存储在受保护的 /etc/shadow 文件中。x 表示使用了影子密码机制。 |
| 用户ID (UID) | 1000 |
关键枚举项 :0 代表 root 。1-999 通常为系统服务账户。1000+ 为普通用户。可寻找 UID=0 的非root用户名(后门账户)。 |
| 组ID (GID) | 1000 |
该用户所在的特定的主要组ID。 |
| 描述信息 | joe,,, |
通常包含用户全名或描述,可能泄露个人信息或账户用途。 |
| 主目录 | /home/joe |
用户个人主目录的位置。检查是否存在及权限设置(是否可写)。 |
| 登录Shell | /bin/bash |
至关重要的枚举点:决定了用户能否获得交互式访问权限。 |
2./bin/bash深度解析
/bin/bash 就是你登录后看到的那个"黑屏命令行窗口"本身!
/bin/bash 是一个实实在在的可执行程序文件,就像你电脑上的QQ、微信一样,只是它的功能是提供一个命令行界面。
📁 文件系统视角
| 文件位置 | 文件类型 | 权限 | 作用 |
|---|---|---|---|
/bin/bash |
二进制可执行文件 | -rwxr-xr-x |
Bash Shell 解释器程序 |
🌟举个生活例子
| 类比 | 说明 |
|---|---|
| 你 👤 | Linux 系统用户 |
| 计算机 💻 | Linux 操作系统内核(真正干活的) |
/bin/bash 🗣️ |
翻译官 + 秘书 + 指挥官 |
具体来说:
-
它是你的"翻译官" 🔤
-
你输入
ls(人类语言) -
/bin/bash翻译成计算机能懂的指令 -
计算机执行后,再把结果翻译成你能看懂的文字
-
-
它是你的"智能秘书" 📁
-
记住你常用的命令(按 ↑ 键找回历史命令)
-
自动补全文件名(按 Tab 键)
-
管理你的工作环境(环境变量)
-
-
它是你的"指挥官控制台" 🎮
-
提供命令输入界面(那个闪烁的光标
$或#) -
允许你运行程序、查看文件、管理系统
-
支持脚本编程,批量执行任务
-
📊 Linux 主流Shell对比表:
| 特性对比 | /bin/sh (爷爷辈) |
/bin/bash (全能冠军) |
/bin/zsh (豪华旗舰) |
|---|---|---|---|
| 诞生时间 | 1977年 (最古老) | 1989年 | 1990年 |
| 开发背景 | 最初的Unix Shell | 为兼容并增强sh而开发 | 吸收bash、tcsh等优点 |
| 系统地位 | POSIX标准 | Linux默认交互Shell | macOS默认Shell |
| 脚本兼容 | 完全符合POSIX标准 | 高度兼容sh,但有扩展 | 基本兼容bash |
| 交互体验 | 😐 简陋 | 😊 良好 | 😍 极佳 |
| 核心特点 | 稳定、轻量、快速 | 功能全面、兼容性强 | 智能补全、主题丰富、插件生态 |
| 典型用途 | 系统启动脚本、通用脚本 | 日常使用、系统管理 | 开发者、高级用户 |
-
有
/bin/bash✅ = 用户可以登录并操作电脑(就像给你一个控制台) -
设为
/sbin/nologin🚫 = 用户被禁止登录(就像锁上了控制台的门)
3./sbin/nologin深度解析

/sbin/nologin 是一个特殊的伪Shell程序 ,作用只有一个:礼貌地拒绝用户登录,是系统安全的"看门人"。
📊 核心功能对比表
| 特性 | /sbin/nologin |
普通Shell(如bash) |
|---|---|---|
| 本质 | 拒绝登录程序 | 交互式命令解释器 |
| 行为 | 显示消息并立即退出 | 提供命令行界面 |
| 用途 | 安全限制 | 正常操作 |
| 输出 | "此账户当前不可用" | 命令提示符 |
🛡️ 两大核心用途
①系统服务账户保护
bash
# 示例:Web服务器账户配置
www-data:x:33:33:www-data:/var/www:/sbin/nologin
-
目的 :让服务账户(如
mysql、nginx、redis)只能运行服务,不能登录 -
原理 :服务以该账户身份运行,但无法通过SSH或终端登录
-
优势 :最小权限原则,大幅减少攻击面
②临时禁用用户账户
bash
# 禁用用户而不删除账户
sudo usermod -s /sbin/nologin username
-
场景:
-
员工离职但保留账户记录
-
临时锁定可疑账户
-
维护期间禁止访问
-
⚠️ 关键注意事项
-
不是真正的Shell:没有命令行环境,只是一个"拒绝访问"程序
-
仍然可以运行服务 :服务仍能以该用户身份在后台运行
-
可自定义拒绝消息:
bash# 创建自定义消息 echo "账户已禁用,联系管理员" > /etc/nologin.txt
🔍 黑客视角:枚举与利用
bash
# 查找使用nologin的账户
cat /etc/passwd | grep "/sbin/nologin"
# 检查是否有特权账户被误设(可能的后门)
cat /etc/passwd | grep "0:0" | grep "nologin"
潜在攻击向量:
-
如果 **root(0:0)**账户被误设为nologin ➡️ 可能导致管理员无法登录
-
寻找 UID=0 但使用nologin的账户(可能是隐藏后门)
-
尝试提权到nologin账户运行服务(通过服务漏洞)
4.枚举信息分析
通过以上分析 /etc/passwd,我们可以:
-
识别特权用户 :立即锁定
UID=0的root及任何其他特权账户。 -
推断已安装服务 :如
www-data用户暗示存在Web服务器,sshd用户暗示SSH服务运行。 -
定位用户目录:为后续搜索用户主目录下的敏感文件(如SSH密钥、历史记录、配置文件)提供目标路径。
-
评估安全配置:检查服务账户是否使用了安全的非登录Shell。
1.2.2.3 枚举主机名与系统信息
1.主机名:识别系统角色的关键线索
主机名是企业IT资产管理的重要标识,通常遵循标准化命名规范 ,可直接揭示服务器的功能、位置和用途。

命令:
bash
hostname # 获取准确主机名(不依赖可能被篡改的提示符)
实战解读示例:
bash
主机名:debian-web01
分解解读:
├── debian # 操作系统类型
└── web01 # 功能角色(Web服务器) + 编号
📊 主机命名规范常见模式:
| 命名段 | 示例 | 含义推断 |
|---|---|---|
| 位置 | nyc-、bj- |
纽约、北京数据中心 |
| 环境 | prod-、dev-、test- |
生产、开发、测试环境 |
| 功能 | web、db、mail、dc |
Web服务器、数据库、邮件服务器、域控制器 |
| 操作系统 | win、deb、rhel |
Windows、Debian、RedHat系统 |
| 编号 | 01、02 |
同类服务器序号 |
💡 渗透测试价值 :识别
dev-或test-环境服务器,这些安全防护较弱,是理想的攻击跳板。
2.操作系统与内核版本
信息源出自:
| 信息源 | 命令 | 获取信息 |
|---|---|---|
| 发行版信息 | cat /etc/issue |
操作系统名称与版本 |
| 详细发行版信息 | cat /etc/*-release |
发行版代号、版本号、支持状态 |
| 内核与架构 | uname -a |
内核版本、系统架构、主机名 |

典型输出示例:
bash
# 1. 发行版信息
$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
VERSION_ID="10"
# 关键:Debian 10,代号"buster"
# 2. 内核信息
$ uname -a
Linux debian-web01 4.19.0-10-amd64 #1 SMP Debian 4.19.132-1 (2020-07-24) x86_64 GNU/Linux
# 关键:内核4.19.0,x86_64架构
📈 版本信息的攻防价值:
| 信息类型 | 攻击方利用 | 防御方视角 |
|---|---|---|
| 内核版本 | 搜索对应版本的内核漏洞 (如Dirty Pipe、Dirty Cow) | 及时更新内核补丁 |
| 发行版与版本 | 查找特定发行版的已知漏洞 和利用工具 | 关注发行版安全公告 |
| 系统架构 | 确定攻击载荷架构 (x86_64、ARM、32/64位) | 统一架构以简化管理 |
| 主机名模式 | 推测网络拓扑,定位关键服务器 | 使用随机化或混淆命名 |
⚠️ 高级枚举技巧
bash
# 1. 查找内核模块(可能包含漏洞)
lsmod # 列出已加载内核模块
# 2. 检查系统运行时间(判断更新频率)
uptime # 运行时间长的系统可能未及时更新
# 3. 获取完整系统信息(需要安装)
sudo apt install inxi && inxi -F # 全面系统报告
3.渗透测试行动指南
-
第一步:基础识别
bashhostname && uname -a && cat /etc/issue -
第二步:漏洞关联
-
内核版本 → 搜索内核提权漏洞
-
发行版版本 → 查找发行版特定安全问题
-
架构信息 → 准备对应架构的exploit
-
-
第三步:环境推断
-
主机名含
db→ 目标:数据库凭证、敏感数据 -
主机名含
dc→ 目标:域控制器、活动目录 -
主机名含
dev→ 目标:开发环境、测试凭证
-
🎲 攻防对抗 :专业防御者会混淆主机名 和限制系统信息泄露,但基础系统命令的准确信息仍是权限提升的关键起点。
欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论
每一份支持,都是我持续输出的光。
