千家信息网

如何通过可写入的etcpasswd文件实现Linux提权

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇文章给大家分享的是有关如何通过可写入的etcpasswd文件实现Linux提权,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在Win
千家信息网最后更新 2026年11月02日如何通过可写入的etcpasswd文件实现Linux提权

本篇文章给大家分享的是有关如何通过可写入的etcpasswd文件实现Linux提权,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

在Windows环境中,管理员或管理员组的成员会具有较高的权限,而这些高权限用户也是攻击者的主要目标。同样,在Linux环境中root或具有sudo权限的用户也将会是攻击者的主要针对用户。

我们将讨论有关文件配置错误导致权限提升的例子。通常,在CTF挑战期间,我们总会想到查看passwd文件,以了解系统上可用的用户。

passwd文件存在于Linux root的/etc目录中。最重要的一点是,该文件非特权用户也可以进行访问。

/etc/passwd

Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。这个文件对所有用户都是可读的。它是一个以冒号分隔的文件,按顺序其包含的信息如下:

用户名

加密密码

用户 ID (或 UID)

组 ID (或 GUID)

用户全名

用户家目录

登录 Shell

现在,我们将查看/etc/passwd文件:

让我们详细了解一下"/etc/passwd"文件,这里我们以root用户为例:

root:用户名。

x:放置用户密码。密码直接从"/etc/shadow"文件中获取。

0:root用户UID。

0:root用户GID。

root:用户描述的占位符。

/root:用户的家目录。将在终端会话中向用户显示该目录。

/bin/bash:用户的shell。根据用户的目的,将在用户登录时生成此shell。

环境设置

在VM中两个Linux系统的配置如下,并使用NAT网络模式(用于共享主机的IP地址)。

OS NameRoleOS VersionMachine IPKernel Version
Kali Linux (x64 bit)攻击者机器Kali192.168.245.1344.12.0-kali2-686
Ubuntu (x64 bit)易受攻击机器Ubuntu 14.04.6 LTS192.168.245.1464.4.0-142-generic

我们假设已在攻击者机器(kali)上获取到了目标系统的hacknpentest用户权限。现在,我们将上传linuxprivchecker.py python脚本来查看,目标系统上可能存在的错误配置。

我们使用wget(或web get)将文件下载到目标服务器。

默认情况下,Python已在所有linux机器上安装。我们将使用以下命令来运行枚举脚本。

python linuxprivchecker.py

仔细查看脚本输出,我们发现passwd文件是world可写文件,具有对普通用户的读,写和修改权限。

权限的错误配置可能会被以某种方式滥用,从而将当前用户权限提升为root用户。现在,我们将尝试写入passwd文件以使我们成为root用户。

我们将向passwd文件添加一个用户,并在相应的字段中显式地给出加密密码。你可以使用perl语言生成带有salt的加密密码,如下所示:

$perl -le 'print crypt("THIS_IS_Original_PASSWORD","SALT")'

下面的命令将向passwd文件添加一个具有加密密码和UID,GID设置为root [0]的用户。

echo "Tom:Encrypted_Password:0:0:User_like_root:/root:/bin/bash" >> /etc/passwd

让我们拆解下我们要添加到passwd文件的字段。

Tom:用户名

ad7t5uIalqMws:加密用户密码

0:root用户ID

0:root组ID

User_like_root:用户描述

/root:用户家目录

/bin/bash:用户的Shell

'>>'符号将输出重定向到文件,并在结尾附加重定向输出的内容(此处为/etc/passwd文件)。

生成加密密码:

perl -le 'print crypt("Password@973″,"addedsalt")'

上面的命令将生成一个带有以下密码和salt的哈希:

原密码:Password@973

盐:addedsalt

加密密码:ad7t5uIalqMws

使用上面的加密密码,我们现在将以下内容附加到/etc/passwd文件中。

echo "Tom:ad7t5uIalqMws:0:0:User_like_root:/root:/bin/bash" >> /etc/passwd

Tom用户已成功被附加到/etc/passwd文件。

cat /etc/passwd

现在,使用su命令我们将尝试使用Tom用户登录。

这里提示必须在终端运行,但我们并没有什么合适的终端。我们将使用以下python one liner(目标服务器上已安装了python)迁移到bash shell:

python -c 'import pty; pty.spawn("/bin/bash")'

现在,我们尝试使用以下命令登录Tom用户:

su - Tom

太棒了!可以看到现在我们的用户权限已提升为了root!

总结

我们在passwd文件中发现了权限配置错误,并最终利用这一点将我们的用户权限提升为了root。在下一篇文章中,我们将讨论有关Linux权限提升的其他方法。

以上就是如何通过可写入的etcpasswd文件实现Linux提权,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

用户 文件 密码 权限 加密 命令 目录 目标 系统 攻击 配置 攻击者 机器 错误 生成 登录 环境 用户名 篇文章 终端 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技产业 互联网电商科技 互联网与科技发展 互联网 卓越科技 电子科技大学互联网 互联网科技博客 互联网科技英文翻译 人人互联网科技是培训 上海电发互联网科技有限公司 互联网科技热点资讯 互联网还是高科技吗 南平创想时代互联网科技有限公司 千方科技属于互联网企业吗 注册互联网科技公司经营范围大全 乌苏新华互联网科技做什么的 佛山市翊博互联网络科技有限公司 工业互联网展湾科技股份有限公司 怎样加入科技互联网 互联网风格科技公司名称 武汉亿视互联网科技有限公司 上海睿民互联网科技有限公司 美国互联网科技 鑫亿盛互联网科技 菲比寻常互联网科技 互联网科技创新企业排名 南平创想时代互联网科技有限公司 辽宁互联网新科技 宁波跨境商互联网科技有限公司 科技互联网经济论坛 北京品多多互联网科技有限公司
0