首页 > 技术点滴 > Linux内核20天内连爆两高危漏洞,一个命令又可以获得root权限

Linux内核20天内连爆两高危漏洞,一个命令又可以获得root权限

2009年9月1日 baoz 阅读评论 8,480 views

Linux内核漏洞最近几乎是一月一爆,在8月15号才爆了一个几乎通杀所有版本所有内核所有架构的内核漏洞;今天在学生返校的大喜日子里,竟然又爆了一个,通杀内核2.6 < 2.6.19的所有32位Linux,算是google security team给祖国学生的礼物吧。

redhat已经发布补丁 RHSA-2009:1223 – Security Advisory  https://rhn.redhat.com/rhn/errata/details/Packages.do?eid=8969

rhel4打到2.6.9-89.0.9内核就没事了,RHEL5没时间验证,基本上yum升级一下可以解决问题。

sound180给出了一个不错的临时解决方案,详见评论的34楼 http://baoz.net/linux-localroot-no-patch-again/comment-page-1/#comment-1972

我想Linux内核的开发团队需要考虑引入微软的SDL安全开发生命周期以增强Linux内核的安全性,否则用户用着真是提心吊胆。

下面展示一下这个漏洞的威力:

linuxrootagain

 

别说我是标题党,的确是一个命令就可以获得root权限吧,在32位的RHEL4里基本上是百发百中,永不落空。

包子将密切关注RedHat、Debian、Ubuntu、Gentoo等主流发行版针对此漏洞的动向,出于对用户的保护,如果您需要了解和跟踪漏洞的细节,漏洞的重现方式和重现经验,敬请关注 http://baoz.net/linux-localroot-no-patch-again/ 以获取最新资讯

cb的帖子 http://www.cnbeta.com/articles/92360.htm 很多有趣的对话。

请各位同学反馈攻击状况,现在验证到的是rhel4.7,rhel5.1是可以被攻击的。

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

  1. 企业Linux安全机制遭遇信任危机 SELinux成骇客帮凶 zz
  2. 黑客再爆Linux内核高危漏洞,一个命令可以攻击所有Linux系统
  3. openvz和xen的性能对比
  4. Linux一月内三爆漏洞,管理员速补ptrace 0day
  5. exec shield和vs space random

  1. 2009年9月1日09:11 | #1

    2.6.9内核,rhel4.7上成功提权

  2. 2009年9月1日09:28 | #2

    微软的dog,你全家死绝!

  3. 2009年9月1日09:30 | #3

    linux肉鸡多了,翻墙不愁了。

  4. 匿名
    2009年9月1日09:38 | #4

    2.6.18,rhel5.1失败

  5. met3or
    2009年9月1日09:43 | #5

    CentOS 5.3,selinux开启状态
    测试成功

  6. 2009年9月1日10:02 | #6

    什么叫一个命令啊?起码两个:编译一个,执行一个。还没算下载之类的。
    如果用&&连起来就是一个的话,多少命令都可以变成一个!

  7. 2009年9月1日10:11 | #7

    @Seaprince

    钻这牛角尖有啥意思?

  8. ken
    2009年9月1日10:19 | #8

    脑残还是幽默? ./a也叫一个命令啊

  9. 匿名
    2009年9月1日10:20 | #9

    2.6.18-92.el5PAE

    失败

  10. 2009年9月1日10:21 | #10

    @skywalker
    只是觉得用这样的标题吸引人不厚道罢了

  11. esmq
    2009年9月1日10:22 | #11

    baoz :

    fuckyou :
    微软的dog,你全家死绝!

    这位阿里的同学(不好意思,后台看了你的IP),到底是什么让你如此愤怒呢。

    同问!

  12. transtone
    2009年9月1日10:25 | #12

    及时更新内核就可以了,在爆出所谓安全漏洞的同时,其实内核早就有修复了。应该说软件的漏洞比内核漏洞更可怕。pps for linux居然需要root权限正常运行,此类软件还不知有多少。

  13. 2009年9月1日10:27 | #13

    baoz如果看了CB上你这篇文章的评论的话,我想你以后肯定不会再往CB上投稿了,因为CB几乎已经成了脑残集中营了。大堆的喷子党,用着D版的WINDOWS,骂着微软;用着QQ,骂着马化腾;用百度下着MP3,骂着百度,是在无语。。。

  14. 文明用语
    2009年9月1日10:32 | #14

    就是你告诉他 他最喜欢的女人竟然给100个男人上过
    他打死不承认时的愤怒

  15. 文明用语
    2009年9月1日10:41 | #15

    骂微软的其实没多少
    更多的人觉得QQ很好用 而马化腾摆弄法律
    至于百度MP3根本没人用 而百度这公司做恶多
    但技术水平CB的确不高
    也没到脑残的程度 至少还有人知道这不是一条命令

  16. tw
    2009年9月1日10:51 | #16

    我用2。6。31。1

  17. 2009年9月1日11:05 | #17

    lz怎么不公布一下 攻击代码呢?

    后面测试过的 有谁能分享一下代码吗?

  18. lh
    2009年9月1日11:08 | #18

    首先服务器上不要装编译环境。其次,使用新版linux很重要。

  19. Daniuwa
    2009年9月1日11:19 | #19

    顶~ 顶人不顶事

  20. pengyao
    2009年9月1日11:38 | #20

    CentOS5.2 测试系统直接崩溃,%>_<%

  21. xt9
    2009年9月1日12:36 | #21

    我猜google要推他自己的操作系统了

  22. 2009年9月1日13:00 | #22

    @文明用语
    百度的MP3没人用?但是据我所知,起码我们学校有90%的学生下载MP3,一定上百度,其次才是酷狗,GOOGLE音乐?实话说,基本没见人用过

  23. 匿名
    2009年9月1日13:20 | #23

    @flyreally
    那个小学的?这么NC……

  24. 2009年9月1日13:22 | #24

    我刚才去centos看了,关于RHSA-2009:1223已经跟进了好几个更新了,是8月24日、27日的
    为啥cnbeta转载你的博客的时候,上面写的是redhat还没放出更新呢?

  25. sker
    2009年9月1日14:12 | #25

    绝对的路过

  26. 匿名
    2009年9月1日14:26 | #26

    2.6.18-92.el5
    fail

  27. sound180
    2009年9月1日14:31 | #27

    同是AS4U6,一台可以,一台不行,为什么呢?
    $ ./a
    [-] exploit failed, try again
    $ uname -a
    Linux 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:58:04 EST 2007 i686 i686 i386 GNU/Linux
    $ cat /etc/issue
    Red Hat Enterprise Linux AS release 4 (Nahant Update 6)
    Kernel \r on an \m
    下面的可以,同时AS4U6,一台可以一台不行,奇怪?
    $ gcc -o a a.c
    $ ./a
    sh-3.1# uname -a
    Linux 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:58:04 EST 2007 i686 i686 i386 GNU/Linux
    sh-3.1# cat /etc/issue
    Red Hat Enterprise Linux AS release 4 (Nahant Update 6)
    Kernel \r on an \m

  28. 2009年9月1日14:39 | #28

    有这么严重吗?

  29. wolion666
    2009年9月1日15:53 | #29

    rhel 5.1 32位可以,5.3的64位无法编译
    错误信息:/tmp/cceMbiOm.s: Assembler messages:
    /tmp/cceMbiOm.s:84: Error: suffix or operands invalid for `push’
    /tmp/cceMbiOm.s:87: Error: suffix or operands invalid for `push’
    /tmp/cceMbiOm.s:90: Error: suffix or operands invalid for `pop’

  30. 匿名
    2009年9月1日16:18 | #30

    @met3or
    什么内核?

  31. sound180
    2009年9月1日17:55 | #31

    @sound180
    iptables的output链对UDP包做了限制会导致无法成功提权
    跟一下这个程序:
    $ strace ./a
    socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
    sendto(3, “”…, 1024, MSG_PROXY|MSG_MORE, {sa_family=AF_UNSPEC, sa_data=”\202\202\202\202\202\202\202\202\202\202\202\202\202\202″}, 16) = 1024
    sendto(3, “”…, 1024, 0, {sa_family=AF_UNSPEC, sa_data=”\202\202\202\202\202\202\202\202\202\202\202\202\202\202″}, 16) = -1 EPERM (Operation not permitted)

    对比一下源码:
    if((fd=socket(PF_INET,SOCK_DGRAM,0))==-1){
    perror(“[-] socket()”);
    return -1;
    }
    x0x.sa_family=AF_UNSPEC;
    memset(x0x.sa_data,0×82,14);
    memset((char *)buf,0,sizeof(buf));
    sendto(fd,buf,1024,MSG_PROXY|MSG_MORE,&x0x,sizeof(x0x));
    sendto(fd,buf,1024,0,&x0x,sizeof(x0x));
    if(getuid()==uid){
    printf(“[-] exploit failed, try again\n”);
    return -1;

    这段代码建了一个udp的socket,然后sendto(fd,buf,1024,0,&x0x,sizeof(x0x));而iptables如果设了output的UDP限制会导致这条语句返回-1 EPERM (Operation not permitted)
    同样如果iptables output规则做的严的话系统不受该漏洞影响

  32. 2009年9月1日18:17 | #32

    sound180 :

    @sound180
    iptables的output链对UDP包做了限制会导致无法成功提权
    跟一下这个程序:
    $ strace ./a
    socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
    sendto(3, “”…, 1024, MSG_PROXY|MSG_MORE, {sa_family=AF_UNSPEC, sa_data=”\202\202\202\202\202\202\202\202\202\202\202\202\202\202″}, 16) = 1024
    sendto(3, “”…, 1024, 0, {sa_family=AF_UNSPEC, sa_data=”\202\202\202\202\202\202\202\202\202\202\202\202\202\202″}, 16) = -1 EPERM (Operation not permitted)

    对比一下源码:
    if((fd=socket(PF_INET,SOCK_DGRAM,0))==-1){
    perror(”[-] socket()”);
    return -1;
    }
    x0x.sa_family=AF_UNSPEC;
    memset(x0x.sa_data,0×82,14);
    memset((char *)buf,0,sizeof(buf));
    sendto(fd,buf,1024,MSG_PROXY|MSG_MORE,&x0x,sizeof(x0x));
    sendto(fd,buf,1024,0,&x0x,sizeof(x0x));
    if(getuid()==uid){
    printf(”[-] exploit failed, try again\n”);
    return -1;

    这段代码建了一个udp的socket,然后sendto(fd,buf,1024,0,&x0x,sizeof(x0x));而iptables如果设了output的UDP限制会导致这条语句返回-1 EPERM (Operation not permitted)
    同样如果iptables output规则做的严的话系统不受该漏洞影响

    good job !

  33. 2009年9月1日18:56 | #33

    est :
    linux肉鸡多了,翻墙不愁了。

    呵呵. 兄台哪里找这么多机子?

  34. henryhj
    2009年9月1日22:32 | #34

    包子兄,./a叫做一条命令,不恰当吧

  35. 匿名
    2009年9月2日09:13 | #35

    你用squid用户能登录?

  36. 2009年9月2日10:41 | #36

    有点标题党的嫌疑。
    搞技术的还是严谨点好。

  37. smz0102
    2009年9月2日12:43 | #37

    centos 5.3
    测试不成功
    fstat64(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), …}) = 0
    mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7ffe000
    _llseek(3, 0, 0xbff293c4, SEEK_CUR) = -1 ESPIPE (Illegal seek)
    write(3, “mmap: Permission denied\n”, 24mmap: Permission denied

  38. smz0102
    2009年9月2日12:44 | #38

    CentOS release 5.3 (Final)
    2.6.18-128.el5

    centos 4.4测试成功!

  39. sound180
    2009年9月2日14:27 | #39

    取巧的方法,只针对上面的漏洞程序
    Iptables -A OUTPUT -p udp –dport 33410 -j DROP

  40. 匿名
    2009年9月2日14:42 | #40

    smz0102 :CentOS release 5.3 (Final)2.6.18-128.el5
    centos 4.4测试成功!

    更新到2.6.18-128.7.1.el5试试

  41. crazygx
    2009年11月2日18:00 | #41

    CentOS 4.7 成功

  42. 匿名
    2010年1月2日16:10 | #42

    2.6.18-92.el5 有没有能溢出成功的exp 32位的没有开启selinux
    麻烦大哥大姐发到我1317508037@qq.com 多谢了

  43. libertine
    2010年2月2日11:22 | #43

    ./a 能提权成功?
    你敢把a里面的东西全贴出来吗?