黑客再爆Linux内核高危漏洞,一个命令可以攻击所有Linux系统
在微软本月月经日(8.11)的同一天,国外黑客taviso和julien公开了可以攻击所有新旧Linux系统的一个漏洞,包括但不限于RedHat,CentOS,Suse,Debian,Ubuntu,Slackware,Mandriva,Gentoo及其衍生系统。黑客只需要执行一个命令,就可以通过此漏洞获得root权限,即使开启了SELinux也于事无补。攻击这个漏洞到底有多简单,下面我们看图说话,有图有真相。
CHANGELOGS:
2009/08/16 chenjun@xfocus提供了debian/ubuntu系统的防御方式。
2009/08/16 根据网友要求添加漏洞详情和exploit下载地址。
2009/08/16 改进防御方式,避免RHEL下的无效防御。感谢小阮MM反馈并提供服务器协助定位解决。
2009/08/16 添加攻击经验记录。感谢cnbird分享经验。
2009/08/17 修正攻击经验记录。感谢xiaoyu,wzt指出selinux相关错误。
2009/08/18 增加攻击经验记录,感谢wzt分享。debian官方发布新版本内核修复此漏洞。
2009/08/18 增加攻击经验记录,64位系统同样可以被成功攻击。
2009/08/19 更新防御方式。
如上图所示,利用此漏洞极其简单,并且影响所有的Linux内核,baoz强烈建议系统管理员或安全人员参考下列临时修复方案,以防止Linux系统被攻击 。
1、使用Grsecurity或者Pax内核安全补丁,并开启KERNEXEC防护功能。
2、升级到2.6.31-rc6或2.4.37.5以上的内核版本。
3、如果您使用的是RedHa tEnterprise Linux 4/5的系统或Centos4/5的系统,您可以通过下面的操作简单的操作防止被攻击。
在/etc/modprobe.conf文件中加入下列内容:
install pppox /bin/true
install bluetooth /bin/true
install appletalk /bin/true
install ipx /bin/true
install sctp /bin/true
执行/sbin/lsmod | grep -e ppp -e blue -e app -e ipx -e sct,如果没有输出,你不需要重启,如果有输出,你需要重启系统,才可以对此攻击免疫。
下图是免疫前后的效果对比图:
4、如果您使用的是Debian或Ubuntu系统,您可以通过下面的操作防止被攻击(感谢chenjun提供)
cat > /etc/modprobe.d/mitigate-2692.conf << EOM
install ppp_generic /bin/true
install pppoe /bin/true
install pppox /bin/true
install slhc /bin/true
install bluetooth /bin/true
install ipv6 /bin/true
install irda /bin/true
install ax25 /bin/true
install x25 /bin/true
install ipx /bin/true
install appletalk /bin/true
EOM
/etc/init.d/bluez-utils stop
5、sysctl -w vm.mmap_min_addr = 1000
很明显,第三、四、五个方案最简单也相对有效,对业务影响也最小,如果您对编译和安装Linux内核不熟悉,千万不要使用前两个方案,否则您的系统可能永远无法启动。
如果你希望了解漏洞详情,请访问下列URL:
http://archives.neohapsis.com/archives/fulldisclosure/2009-08/0174.html
http://blog.cr0.org/2009/08/linux-null-pointer-dereference-due-to.html
https://bugzilla.redhat.com/show_bug.cgi?id=516949
如果你希望亲手验证此漏洞,你可以下载下列两个代码包测试(有可能导致系统不稳定,当机等现象,后果自负):
http://www.securityfocus.com/data/vulnerabilities/exploits/wunderbar_emporium-3.tgz
http://www.securityfocus.com/data/vulnerabilities/exploits/36038-4.tgz
攻击经验记录:
1、exp和selinux多多少少有点关系,和内核版本,系统版本也有关系,根据wzt提供的信息Recent kernels with mmap_min_addr support may prevent exploitation if
the sysctl vm.mmap_min_addr is set above zero来看,exp和vm.mmap_min_addr有更紧密的关系,具体如何大家自己去摸索好了。最好的办法是,把所有的RHEL4.x 5.x都装一次,开关selinux,挨个exp一遍。xiaoyu提醒大家,如果改变了exp的状态,首先要重启,其次建议删除老的文件,重新编译一次exp。
2、在selinux开启的情况下,所有版本都可以攻击,不需要pulseaudio程序,因为selinux会让程序在内存0做映射
。如果没开selinux,则需要pulseaudio来加载exploit.so文件,理论上使用别的可加载so的程序代替pulseaudio也是可以的。如果有些版本打不了,可能是这些版本不让在内存0做映射了。
3、回连的shell溢出虽然可以成功,但uid不是0,解决办法是用一个带pty的shell。这个经验由cnbird提供。
4、64位系统同样可以被成功攻击。
Linux在微软的月经日爆如此严重的漏洞,挺值得纪念的。如果您希望了解本漏洞更多的内幕、八卦和细节,请访问http://baoz.net/linux-sockops-wrap-proto-ops-local-root-exploit/
cb的文章 http://www.cnbeta.com/articles/91108.htm 里面有些比较有趣的讨论
包子猜您可能还喜欢下列文章:



我也是一运行wunderbar_emporium.sh系统就自动重启了,我的是RHEL5,内核2.6.18-8.el5xen。这是怎么回事呢?我的系统应该是受影响的吧?
re一个,回头试试~~~
我成功了!!!!!!
2.6.30.4不受影响!
2.6.30.4的确不受影响
这个wunderbar_emporium.sh 脚本是什么?在哪里?
ubuntu9.04 桌面系统 成功。尝试 modprobe -r pppoe pppox 无效, 从 /etc/modprobe.d/blacklist 屏蔽后重启(难得一次) 后 可以防御住了;
ubuntu8.04 xen vps 提权成功,
直接 sudo modprobe -r pppoe pppox ppp-generic slhc
然后再试就不能提权了,提示
padlina z lublina!
socket: Address family not supported by protocol
不知这样的安全程度有多大。
kernel
2.6.18-53.1.13.el5xen #1 SMP Tue Feb 12 14:04:18 EST 2008 i686 GNU/Linux
暂时把 gcc 命令换成一个 报警 脚本吧。。。
%……我真不应该点回复时发至邮箱……老是收到信……
晕倒,我的居然也被K了.
网咯安全爱好者,到此一游
我的执行效果
[test@localhost wunderbar_emporium]$ ll
total 20436
-rw-rw-r– 1 test test 16686400 Sep 3 12:26 exploit
-rw-r–r– 1 test test 11124 Aug 14 07:01 exploit.c
-rw-r–r– 1 test test 764 Aug 12 20:32 pwnkernel.c
-rw-r–r– 1 test test 4171600 Aug 12 19:46 tzameti.avi
-rwxr–r– 1 test test 1208 Aug 13 23:06 wunderbar_emporium.sh
[test@localhost wunderbar_emporium]$ ./wunderbar_emporium.sh
./wunderbar_emporium.sh: line 20: ./exploit: Permission denied
[test@localhost wunderbar_emporium]$ chmod +x exploit
[test@localhost wunderbar_emporium]$ ./wunderbar_emporium.sh
./wunderbar_emporium.sh: line 20: ./exploit: cannot execute binary file
我运行的结果和ono朋友的一样呀
这是怎么回事呀
晕,标题党。这个程序3M多,还说只是一个命令。老实说,如果人家不发布这个程序,即使你知道这个漏洞,你也未必攻击得了。
@baoz
你的说法明显带有主观色彩,就会引起别人反感。更何况那些linux fans。
包哥要淡定:)
你的说法就是带有主观色彩,审核还不发。讨论的也要这么霸权。
@baoz
哈,好像这绿色反弹的NC图是我发给cnbird的呀,哟,他竟然发给baoz来装X了 有意思
貌似pty一说也是我告诉他的
首先我致歉,没注意自己重新开了浏览器,不是一个session,所以发现评论不见了,产生误会。我向包子同学道歉。
我是觉得,你说一条命令就搞定xx系统。给人一种贬linux的感觉,所以很多fan会不爽。我对这个到没什么感觉,我是不认为某个东西就那么完美,任何东西总会有缺点。
@baoz
你没看明白我的意思,算了,麻烦把我的2B留言删了吧 谢谢
只能本地提权?,远程不行吗
请问包子,这个漏洞怎么利用远程的服务器呢???
难道还要自己能登陆上其他的LINUX服务器?
2.6.31.1 won’t work well.
“Pulseaudio does not exist!”
OS: slax
最近好多漏洞。。。。。
标题党,这是Google安全小组开的一个玩笑,
./wunderbar_emporium.sh
[+] Personality set to: PER_SVR4
Pulseaudio does not exist!
跑了之后提示我pulseaudio不存在,没有溢出,,,难道要装了这个服务才能溢出?又说影响所有内核?
是利用 pulseaudio 的一个 bug. 但是服务器谁装 pulseaudio 这个包,管理员不会给普通用户装包的权限的,但是内部用户也说不准,可能黑客会伪装成内部用户,让管理员开装包权限。
但这就不是一个技术问题,而是一个社会学问题,虽然这也属于黑客必备技能之一。
PulseAudio的目的就是要让声音系统整体复杂度有效的降下来,方便更好的开发各类声音应用。
这个漏洞名就叫“PulseAudio setuid本地权限提升漏洞”,媒体都是跟广告商利益挂钩的。
用这个的时候 出现 mmap: Invalid argument 错误是什么意思
内核是 2.6.18-8.el5
gcc -Wall -o 1 exploit.c
exploit.c: In function 鈥榤ain鈥?
exploit.c:97: warning: implicit declaration of function 鈥榮etresuid鈥?
exploit.c:98: warning: implicit declaration of function 鈥榮etresgid鈥?
exploit.c:128: warning: implicit declaration of function 鈥榮endfile鈥?
exploit.c:129: warning: control reaches end of non-void function
./1
mmap: Invalid argument
或者能给个EXP 谢谢
http://www.securityfocus.com/data/vulnerabilities/exploits/wunderbar_emporium-3.tgz
用这个exp
@baoz
有没有小点的 EXP用大马传不行 服务器也不能用 wget ftp
有漏洞, update 了应该没问题吧
没问题
文不對題