KaliIP:192.168.1.128
信息收集发现有文件包含漏洞,并且开着NFS服务
arp-scan -l
nmap -p1-65535192.168.1.6



查看 192.168.1.6 这台 NFS 服务器对外共享的目录列表.
/mnt/nfs #是该 NFS 服务器上开放共享的目录路径
* # 允许访问此共享的客户端范围(*代表任意 IP 的客户端都能访问这个共享目录)

将 192.168.1.6 服务器的 /mnt/nfs 共享目录,挂载到Kali本地当前目录的 nfs 文件夹中(实现本地访问远程共享)

由于共享,我们本地nfs目录写入一句话木马,就相当于给目标/mnt/nfs/目录下写了木马.
所以Kali本地nfs目录中创建一个后门一句话木马shell.php,赋予执行权限,访问目标触发文件包含漏洞进而连接目标.




提权
思考:由于本地shell.php如果不赋权,我们测试发现不能连接目标. 但是本地kali给shell.php赋权后,反而可以连接目标. 由此衍生思路,通过在本地kali的nfs目录下上传SUID权限的文件后,映射到目标/mnt/nfs/目录下的文件也带有SUID权限.
验证思路: 将getroot文件赋予执行权限和SUID权限后上传目标执行

getroot.c文件内容
#include<stdlib.h>
#include<unistd.h>
intmain()
{
setuid(0);
system("id");
system("/bin/bash");
}
此步骤要编译的文件所在的系统内核版本和类型要和目标一致,这里为了演示步骤用了kali 实则是Ubuntu


给getroot先赋予执行权限后再赋予SUID权限

目标机器执行getroot提权成功,之后如果要执行别的命令直接更改c文件中的内容即可.
