shell root权限_为什么通过 find SUID 提权反弹的 shell 不是 root 权限?

提权的时候遇到了这种情况,故简单记录一下。

通过 find 命令执行命令 whoami ,可以看到确实是 root 用户:

5364b5f74ec46035e047eb6cd268faee.png

但如果我们尝试使用 nc 反弹 shell 回来,会发现权限还是普通用户 alice:

79feb8306b428c8b5da49c70f29f7b4c.png

这就很奇怪了,所以决定探究一下。

使用 find 执行 id 命令:

9b3a043473506354743a0346a13b0a18.png

在反弹回的 shell 中执行 id 命令:

d454667bd6be47bbafd8876597e7cb7b.png

经过对比发现,find 执行 id 时,有一个 euid 为 root 权限,但是反弹 shell 中并没有。

何为 euid?euid 就是我们通常说的 suid, 或者叫 excute user id,它使文件执行时拥有该文件所有者的权限。

为了查看反弹 shell 的 euid,我通过执行 id -u 来查看:

c5c9cff65e19ca37e0a01f13092c25c3.png

可以看到该 shell 的 euid 为 1000,所以当然没有 root 权限。

现在搞清了出为什么 find 反弹回来的 shell 不具有 root 权限,那怎样才能是反弹回来的 shell 具有 root 权限呢?——这就需要使用到 bash 命令的 -p 参数。

默认情况下 bash 在执行时,如果发现 euid 和 uid 不匹配,会将 euid(即 suid) 强制重置为uid 。如果使用了 -p 参数,则不会再覆盖。

我们尝试使用如下命令获取 shell:

find test -exec /bin/bash -p ;

3ca9f8cf88106a168a6d282d91b93056.png

可以看到获取的 shell 为 root 权限。

ps:这里也说明,我们获取 shell 不一样非得通过 nc 反弹~

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值