首页 > 技术点滴 > 黑客再爆Linux内核高危漏洞,一个命令可以攻击所有Linux系统

黑客再爆Linux内核高危漏洞,一个命令可以攻击所有Linux系统

2009年8月15日 baoz 阅读评论 56,017 views

在微软本月月经日(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 更新防御方式。

linuxlocalroot

如上图所示,利用此漏洞极其简单,并且影响所有的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,如果没有输出,你不需要重启,如果有输出,你需要重启系统,才可以对此攻击免疫。

下图是免疫前后的效果对比图:

2.6local

mianyi

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 里面有些比较有趣的讨论

包子猜您可能还喜欢下列文章:

  1. apache两个dos漏洞
  2. Linux内核SCTP漏洞无大碍,不打补丁也可以安心过五一
  3. 两个重量级exp
  4. webshell利用udev漏洞提权
  5. Linux入侵防御经验一则

  1. sdf
    2009年8月17日14:24 | #1

    我也是一运行wunderbar_emporium.sh系统就自动重启了,我的是RHEL5,内核2.6.18-8.el5xen。这是怎么回事呢?我的系统应该是受影响的吧?

  2. pigdefeet
    2009年8月17日14:26 | #2

    re一个,回头试试~~~

  3. 匿名
    2009年8月17日14:27 | #3

    我成功了!!!!!!

  4. 匿名
    2009年8月17日14:31 | #4

    2.6.30.4不受影响!

  5. 匿名
    2009年8月17日14:31 | #5

    2.6.30.4的确不受影响

  6. 匿名
    2009年8月17日15:19 | #6

    这个wunderbar_emporium.sh 脚本是什么?在哪里?

  7. 匿名
    2009年8月17日16:35 | #7

    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 命令换成一个 报警 脚本吧。。。

  8. 2009年8月17日20:10 | #8

    %……我真不应该点回复时发至邮箱……老是收到信……

  9. 匿名
    2009年8月21日11:19 | #9

    晕倒,我的居然也被K了.

  10. 2009年8月22日16:01 | #10

    网咯安全爱好者,到此一游

  11. 2009年9月3日19:24 | #11

    我的执行效果
    [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

  12. haha
    2009年9月5日08:46 | #12

    我运行的结果和ono朋友的一样呀
    这是怎么回事呀

  13. dd
    2009年9月8日09:12 | #13

    晕,标题党。这个程序3M多,还说只是一个命令。老实说,如果人家不发布这个程序,即使你知道这个漏洞,你也未必攻击得了。

  14. dd
    2009年9月8日09:52 | #14

    @baoz
    你的说法明显带有主观色彩,就会引起别人反感。更何况那些linux fans。

  15. 3rty
    2009年9月8日10:56 | #15

    包哥要淡定:)

  16. dd
    2009年9月8日11:15 | #16

    你的说法就是带有主观色彩,审核还不发。讨论的也要这么霸权。

  17. Beach
    2009年9月8日17:31 | #17

    @baoz
    哈,好像这绿色反弹的NC图是我发给cnbird的呀,哟,他竟然发给baoz来装X了 有意思
    貌似pty一说也是我告诉他的

  18. dd
    2009年9月9日16:01 | #18

    首先我致歉,没注意自己重新开了浏览器,不是一个session,所以发现评论不见了,产生误会。我向包子同学道歉。

    我是觉得,你说一条命令就搞定xx系统。给人一种贬linux的感觉,所以很多fan会不爽。我对这个到没什么感觉,我是不认为某个东西就那么完美,任何东西总会有缺点。

  19. xx
    2009年9月9日21:49 | #19

    @baoz
    你没看明白我的意思,算了,麻烦把我的2B留言删了吧 谢谢

  20. 2131331
    2009年9月12日09:22 | #20

    只能本地提权?,远程不行吗

  21. 2131331
    2009年9月12日17:44 | #21

    请问包子,这个漏洞怎么利用远程的服务器呢???
    难道还要自己能登陆上其他的LINUX服务器?

  22. 匿名
    2009年9月29日13:53 | #22

    2.6.31.1 won’t work well.
    “Pulseaudio does not exist!”
    OS: slax

  23. haha
    2009年11月20日12:08 | #23

    最近好多漏洞。。。。。

  24. gordon
    2010年3月14日08:26 | #24

    标题党,这是Google安全小组开的一个玩笑,

    ./wunderbar_emporium.sh
    [+] Personality set to: PER_SVR4
    Pulseaudio does not exist!

    跑了之后提示我pulseaudio不存在,没有溢出,,,难道要装了这个服务才能溢出?又说影响所有内核?

    是利用 pulseaudio 的一个 bug. 但是服务器谁装 pulseaudio 这个包,管理员不会给普通用户装包的权限的,但是内部用户也说不准,可能黑客会伪装成内部用户,让管理员开装包权限。
    但这就不是一个技术问题,而是一个社会学问题,虽然这也属于黑客必备技能之一。

    PulseAudio的目的就是要让声音系统整体复杂度有效的降下来,方便更好的开发各类声音应用。

    这个漏洞名就叫“PulseAudio setuid本地权限提升漏洞”,媒体都是跟广告商利益挂钩的。

  25. 小毅
    2010年4月14日20:22 | #25

    用这个的时候 出现 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

  26. 小毅
    2010年4月14日20:22 | #26

    或者能给个EXP 谢谢

  27. 小毅
    2010年4月16日15:49 | #28

    @baoz
    有没有小点的 EXP用大马传不行 服务器也不能用 wget ftp

  28. 2010年6月27日20:35 | #29

    有漏洞, update 了应该没问题吧

  29. 2010年6月28日13:51 | #30

    没问题

  30. 2010年8月24日12:57 | #31

    文不對題

评论分页
1 2 3276