linux提权~利用 /etc/passwd 文件
该提权是利用 /etc/passwd 文件的可写入权限,我们可以写入一个其他用户进去。
1.查看 /etc/passwd 的权限
首先,查看 /etc/passwd 的权限,发现任何用户都可以执行读写权限。
命令: ls -lh /etc/passwd
文件权限的查看
使用 ls -lh 可以查看文件的具体信息,其中包括不同的用户对该文件的权限 (字符每3个一组(rwx),读(r)、写(w)、执行(x))
2.记录行的基本属性
Linux系统中的用户在/etc/passwd文件中有一个对应的记录行,它记录了此时这个用户的一些基本属性。这个文件对所有用户都是可读的,按顺序其包含的信息如下:
用户名
加密密码
用户 ID (或 UID)
组 ID (或 GUID)
用户名
用户家目录
登录 Shell
3.构造用户,密码加盐
我们需要做的就是构造一个用户,在密码占位符处指定密码,并且将UID设置为0,并将其添加到 /etc/passwd 文件中。
首先,使用perl语言生成带有盐值的密码:
命令: perl -le ‘print crypt(“test”,“addedsalt”)’
然后执行下面这条命令,成功将test用户的信息加入到/etc/passwd 文件;
echo “test:adMpHktIn0tR2:0:0:User_like_root:/root:/bin/bash” >>/etc/passwd
使用用户名密码:test / test 登录主机,登录成功后,whoami发现是 root 权限。
总结
在passwd文件中发现了权限配置错误,并最终利用这一点将用户权限提升为了root权限;
一个用户只能有一个主要组,最多可以有31个附加组。主要组是用户创建文件时默认的所有组,附加组主要用于权限管理。不论用户属于哪个组,用户都能拥有该组的权限;
用户创建时,默认的属性(比如UID,GID,是否创建家目录,创建邮箱等)都是通过==/etc/login.defs==文件控制的,修改此文件的属性,会影响以后创建的所有用户。
针对文件:
r 表示可以读取文件
w 表示可以对文件内容做修改
x 表示文件可执行
针对目录:
r 表示列出目录内容,前提是得有 x 权限;
w 表示可以在目录中增删改查,前提是得有 x 权限;
x 表示可以进入目录,但不一定能读取目录内的内容。要想读取目录的内容,需要有 r 权限,要想修改,需要有 w 权限!! !
目录的权限比较特殊,可以看到 x 权限是目录最基本的权限.还有一个就是当你对目录拥有 rwx 权限的时候。倘若目录中有一个文件,该文件对你的权限是没有 w 权限的,但是因为先匹配到该目录的权限,可以对目录中的文件修改,所以可以强制修改该文件,再保存退出!
赋予文件和文件夹权限
修改文件和文件夹所有者和所属组方法一样,如果要把文件夹内的文件的所有者和所属组都修改了,要加 -R 参数。chown除了可以修改属主属性,还可以修改所属组属性。
命令: chown 属主:属组 文件
修改文件的所有者 chown 和 所属组 chgrp
命令功能:
通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。
命令参数:
-c 显示更改的部分的信息
-f 忽略错误信息
-h 修复符号链接
-R 处理指定目录以及其子目录下的所有文件
-v 显示详细的处理信息
-deference 作用于符号链接的指向,而不是链接文件本身