⓬⁄₈ ⟦ OSCP ⬖ 研记 ⟧ Linux权限提升 ➱ 利用替代密码实现提权

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

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

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

​​​​​​

▶ 信息收集

▶ 漏洞检测
初始立足点

权限提升 ➢ Linux权限提升 ➢ ++利用替代密码实现提权++ 🔥🔥🔥
横向移动

▶ 报告/分析

▶ 教训/修复

目录

1.Linux权限提升

[1.1 利用不安全的文件权限实现提权](#1.1 利用不安全的文件权限实现提权)

[1.1.1 利用替代密码实现提权](#1.1.1 利用替代密码实现提权)

[1.1.1.1 原理分析](#1.1.1.1 原理分析)

[1.1.1.2 实践:设置密码哈希值并追加到/etc/passwd文件](#1.1.1.2 实践:设置密码哈希值并追加到/etc/passwd文件)

1.生成密码哈希

2.密码哈希值追加到/etc/passwd文件

3.登录验证

[1.1.1.3 其他相关内容](#1.1.1.3 其他相关内容)

[1. 哈希算法标识符(/etc/passwd 中的哈希格式)](#1. 哈希算法标识符(/etc/passwd 中的哈希格式))

[2. 其他生成密码哈希的工具](#2. 其他生成密码哈希的工具)

[3. /etc/passwd 文件格式深度解析](#3. /etc/passwd 文件格式深度解析)

[4. 防御与检测措施](#4. 防御与检测措施)

[5. 实际场景中的变种攻击](#5. 实际场景中的变种攻击)

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


1.Linux权限提升

本系列内容围绕以下四大部分展开,本文是第三部分:++利用替代密码实现提权++。

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

1.1 利用不安全的文件权限实现提权

1.1.1 利用替代密码实现提权

1.1.1.1 原理分析

在 Linux 系统中,用户账户和密码信息通常由两个关键文件管理:

文件 存储内容 权限 说明
/etc/passwd 用户名、UID、GID、家目录、默认 Shell 等 普通用户可读 早期系统 会将密码哈希直接放在第二列,现在通常只放占位符(如 x
/etc/shadow 用户的密码哈希、有效期等敏感信息 仅 root 可读 现代系统将密码哈希移至此文件,增强安全性

🧠 关键历史 :老系统中,密码哈希直接写在 /etc/passwd 第二列。

🔥注意: 如今虽然多数系统已改用 /etc/shadow,但 /etc/passwd 中的第二列若存在哈希值,++会优先用于身份验证++ ,完全忽略 /etc/shadow 中的记录。

⚠️ 攻击原理(替代密码提升权限)

如果攻击者获得了对 /etc/passwd写入权限(哪怕只是普通用户权限),就可以:

  1. 选择一个目标账户(如 root)。

  2. 使用工具(如 openssl passwd)生成一个任意密码的哈希值。

  3. 将生成的哈希直接写入 /etc/passwd 对应账户的第二列。

  4. 此后使用该密码登录,系统将优先采用 /etc/passwd 中的哈希进行验证,完全绕过 /etc/shadow 中的真实密码。

🔥 后果 :即使 /etc/shadow 中的密码仍有效,也会被覆盖忽略,攻击者可以永久后门方式控制账户。

🛡️ 防护措施

现代 Linux 发行版已默认修复此问题,主要措施包括:

  • 密码哈希彻底移入 /etc/shadow/etc/passwd 第二列统一为 x*

  • 严格权限控制

    • /etc/passwd:普通用户只读(权限 644)。

    • /etc/shadow:仅 root 可读写(权限 600640)。

  • 定期审计文件权限,确保无意外写漏洞。

💡 牢记 :保护 /etc/passwd 的写入权限,就是保护系统的第一道防线!


1.1.1.2 实践:设置密码哈希值并追加到/etc/passwd文件

基于上述的攻击原理,当 /etc/passwd 文件因权限配置不当**(如普通用户可写)** 时,攻击者可以通过添加一个自定义超级用户来直接提升权限。

1.生成密码哈希

使用 openssl passwd 命令为自定义密码(例如 w00t)生成哈希值。

bash 复制代码
$ openssl passwd w00t

默认下,openssl将默认采用 crypt 算法(传统 DES 变种),兼容 Linux 身份验证机制。此外,可以指定不同的加密算法来生成密码哈希。常见的选项包括:

-1:使用 MD5 加密。

-6:使用 SHA-512 加密。

-5:使用 SHA-256 加密。

2.密码哈希值追加到/etc/passwd文件

为了提升我们的权限,在/etc/passwd中添加另一个超级用户**(root2)**和相应的密码哈希。我们将上一步生成的哈希,在/etc/passwd文件的最后追加一行。

  • 用户名root2(可任意)

  • 密码哈希:上一步生成的字符串

  • UID=0GID=0:表示超级用户权限

  • 其他字段保持与 root 一致

3.登录验证

保存文件后,即可使用密码 w00troot2 身份登录,获得 root 权限。如上图。

⚠️ 关键提醒:

  • 优先验证 :系统在登录时优先读取 /etc/passwd 中的哈希,即使 /etc/shadow 中无此用户记录或密码不同,也会通过验证。

  • 权限要求 :此操作的前提是当前用户对 /etc/passwd 拥有写入权限

  • 防御建议 :确保 /etc/passwd 权限为 644(root 可写,其他只读),并定期审计文件完整性。


1.1.1.3 其他相关内容
1. 哈希算法标识符(/etc/passwd 中的哈希格式)

openssl passwd 生成的哈希通常包含算法标识前缀,系统根据前缀选择验证算法:

前缀 算法 示例哈希(密码 w00t
若无 DES abZ7R7XZ9U.6s(传统,长度13字符)
$1$ MD5 $1$dR.Z1S1n$YrX5rX5rX5rX5rX5rX5rX5
$5$ SHA-256 $5$rounds=5000$salt$hashedpart
$6$ SHA-512 $6$rounds=5000$salt$verylonghashedpart

💡 在 /etc/passwd 中使用带前缀的哈希时,系统会自动调用对应算法验证。

2. 其他生成密码哈希的工具

除了 openssl,渗透测试中常用的哈希生成方法:

工具/命令 示例 特点
mkpasswd mkpasswd -m sha-512 w00t 可指定算法(需安装 whois 包)
python + crypt 模块 python -c 'import crypt; print(crypt.crypt("w00t", crypt.METHOD_SHA512))' 跨平台,灵活
perl perl -e 'print crypt("w00t","\$6\$salt\$")' 直接调用系统 crypt
echo + openssl(管道) `echo -n 'w00t' openssl passwd -6 -stdin`
3. /etc/passwd 文件格式深度解析

每行代表一个用户,由 7 个冒号分隔的字段组成:

bash 复制代码
用户名:密码:UID:GID:描述:家目录:Shell
字段 示例值 说明
用户名 root2 登录名
密码 $6$... 关键字段 :若不为 x*,则直接用于验证(优先于 shadow)
UID 0 用户 ID,0 表示超级用户
GID 0 主组 ID
描述 (GECOS) root 一般为用户全名或注释
家目录 /root 登录后的初始目录
Shell /bin/bash 登录后启动的 Shell

⚠️ 若 UID=0,则该用户拥有 root 权限,无论用户名是什么。

4. 防御与检测措施

系统管理员应实施以下防护:

  • 权限加固

    bash 复制代码
    chmod 644 /etc/passwd
    chmod 600 /etc/shadow
    chown root:root /etc/passwd /etc/shadow
  • 文件完整性监控

    使用 AIDE、Tripwire 或 auditd 监控 /etc/passwd 的修改:

    bash 复制代码
    auditctl -w /etc/passwd -p wa -k passwd_watch
  • 定期审计

    检查 /etc/passwd 中是否有非 x 的密码字段:

    bash 复制代码
    awk -F: '$2!="x" && $2!="*" && $2!="" {print "可疑条目: " $0}' /etc/passwd
  • 日志告警

    监控 /var/log/auth.log/var/log/secure 中异常登录事件。

5. 实际场景中的变种攻击
  • 修改现有用户 :直接在 /etc/passwd 中将目标用户的第二列替换为攻击者的哈希,然后登录。

  • 创建后门用户 :如本例中的 root2,隐蔽性较差,但权限高。

  • 利用其他可写文件 :若 /etc/passwd 不可写,但 /etc 下某些服务配置文件(如 vsftpd)允许指定用户数据库,也可能被利用。

🧠 想一想 :即使 shadow 文件中的密码再强,如果 passwd 可写,一切安全措施都将形同虚设。保护 /etc/passwd 的写入权限,就是守住系统的"最后一道门"。


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

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

相关推荐
聚铭网络2 小时前
聚铭网络获评国家网络威胁信息汇聚共享技术平台“2025年度三级支撑单位”
网络安全
恶猫4 小时前
随机密码生成器,自动密码生成工具,高强度密码生成器—— 你的账号安全守护神
安全·网络安全·随机密码·密码生成器·帐号安全
安全不再安全4 小时前
某驱动任意读漏洞分析 - 可用于游戏内存数据读取
c语言·测试工具·安全·游戏·网络安全
黄金龙PLUS5 小时前
数据加密标准算法DES
网络安全·密码学·哈希算法·同态加密
啥都想学点5 小时前
pikachu靶场——暴力破解(Kali系统)
网络安全
一名优秀的码农1 天前
vulhub系列-12-Hackademic.RTB1(超详细)
安全·web安全·网络安全·网络攻击模型·安全威胁分析
Codefengfeng1 天前
kali安装与使用蚁剑(antsword)
web安全·网络安全·系统安全
The_Uniform_C@t21 天前
AWD | ATT&CK实战系列--蓝队防御(一)
网络·学习·网络安全
撩妹小狗1 天前
渗透测试-信息收集篇-上-手动收集
web安全·网络安全