Linux配置错误提权之利用/etc/passwd文件

Table of Contents

接下来我们的提权是利用 /etc/passwd 文件的可写入权限,导致我们写入一个其他用户进去。

首先,查看 /etc/passwd 的权限,发现任何用户都可以读写。为了实验需要如果没有写权限我们可以加一个进去

/ect/passwd

/etc/passwd,保存了操作系统中所有用户的信息,具体的字段信息就不说了

root:x:0:0:root:/root:/bin/bash

我们现在要做的就是自己构造一个用户,在密码占位符处指定密码,并且UID设置为0,将其添加到 /etc/passwd 文件中。

首先,使用perl语言(Linux自带)生成带有盐值的密码:

perl -le 'print crypt("password@123","addedsalt")'

此时我们切换到一个普通用户,假装获取了一个低权限用户。然后执行下面这条命令,成功将test5用户的信息加入 /etc/passwd 文件

查看passwd字段可知,成功加入

以用户名:test5  密码: password@123 成功登陆主机,直接获取了root权限

总结 #

这个权限提升的前提是,/etc/passwd字段其他用户有写的权限,但是默认只有root可写,所以也是由于配置错误导致的漏洞发生。