nfs介绍,网络文件系统,用来挂载某个目录或文件进行共享,默认是2049端口,功能类似于windows的共享
    ubuntu为例,简单配置一下:
    首先安装nfs服务端
    sudo apt-get install -y nfs-kernel-server
    image.png
    安装后修改配置文件/etc/exports 这里将home目录进行挂在共享,内容如下:
    image.png
    其中/home是要挂载的目录 *代表允许连接的主机,rw读写权限 no_root_squash代表客户端允许root权限访问nfs
    随后重启相关服务:
    sudo /etc/init.d/rpcbind restart
    sudo /etc/init.d/nfs-kernel-server restart
    image.png
    配置好了,可以通过showmount命令列出目标机的共享目录,e参数显示nfs服务器的输出清单。
    image.png
    或者通过nmap的相关脚本来进行扫描
    image.png
    NFS配置不当可提权
    当nfs配置了读写权限,且允许客户端以root访问时,就会存在安全隐患,测试如下:
    首先客户端把目标机的nfs的共享挂载到本地,然后把bash复制进去并赋予suid权限,操作如下
    image.png
    image.png
    此时目标机的home目录下就会有一个具有suid权限的bash
    普通用户执行即可获取root权限,这里注意需要加上p参数,否则权限还是当前用户的
    p参数说明,不提供的情况下,打开bash权限时当前实际用户,提供的情况下,会打开特权模式,像上继承euid,因为bash有suid权限,所以这里是root
    image.png
    使用场景:这个和suid提权相似,个欸程序赋予suid权限然后利用,不同的是suid提权是当前用户使用sudo chmod自己修改的,在sudoers禁用sudo命令的情况下,就行不通了。而nfs配置利用,是客户端挂载到本地赋权的,目标及的普通用户只需执行就可以了。
    统里,之前总结的suid提权的那些程序也同样适用,这里就不再记了

    其他命令
    除了可以直接得到shell的,还有一些程序不能直接获取,例如nano,vi等
    例如nano被共享,则可以给nano一个suid权限,然后来读敏感文件,爆破密码从而登录
    这里因为我的靶机是centos,攻击机是ubuntu系统,命令有所不同,所以我直接在靶机上进行复制,实际攻击时,直接在攻击机上复制就行
    image.png
    image.png
    然后使用nano-p来读取shadow文件,这里读取时把相关的记录复制出来,使用John破解,测试不能重定向,需要权限,所以只能复制
    image.png
    image.png
    如果密码太复杂john破解不了,则可以尝试其他用户,例如我这里目机时b用户,破解b密码为000000
    image.png
    这时候不确定是否为root权限,则可以继续使用nano去编辑passwd文件,给b赋权
    image.png
    image.png
    用这种方法也可以修改sudoers文件,添加或修改为以下内容,
    b ALL=(ALL:ALL) NOPASSWD:ALL
    再用sudo bash或者sudo su获取root权限