我听说过Dirty COW,但找不到有关该bug范围的任何体面的文章。漏洞利用似乎可以覆盖任何不可写的文件,这让我猜测可以通过替换SUID程序来获得本地根目录。是对的吗?我们还了解Dirty COW吗?可以远程利用它吗?它会影响Android吗?

评论

网站上写着“ Dirty COW”(不是脏牛或dirtyc0w),cow是对CoW的引用,表示写时复制。
@LéoLam:这里是dirtyc0w:github.com/dirtycow/dirtycow.github.io/blob/master/dirtyc0w.c

这就是PoC的名字,就像有一个神奇宝贝c,一个牛郎。如果您查看回购说明,则说明那里是“ Dirty COW”。

有关更多详细信息,请参见错误报告。

#1 楼

没有其他漏洞,就不能远程利用它。您需要已经能够在系统上执行命令。

经典示例是Web Shell。假设服务器正在运行一个具有漏洞的Web应用程序,该应用程序允许您上传Web Shell或执行系统命令。这些命令通常将以低特权用户(有时称为www-data或类似用户)的身份执行。利用此漏洞,您可以覆盖文件/etc/passwd以将www-data的UID设置为0。现在,www-data具有root特权。

但是,我尝试了一些操作,但修改/etc/passwd在我的系统上不起作用。您可以将用户的UID设置为0,但随后必须重新登录,如果只有Web Shell,这实际上不是一个选择。到目前为止,我见过的最好的武器利用程序会覆盖/usr/bin/passwd,它是用于更改用户密码并设置了SUID位的二进制文件,其中包含执行/bin/bash的shellcode。该漏洞利用的一些限制似乎是:您只能覆盖现有字节,不能向文件添加任何内容。我也无法向文件中完全写入4KB以上的文件。

关于影响Android,我在Android 4.4 git repo中搜索了相关功能(follow_page_pte),但没有找到匹配项,因此我想说“不”,但不要在此引用我。

编辑:Android受到了影响-请参阅此概念证明。

评论


android git repo不一定需要调用follow_page_pte才容易受到攻击。 Android应用程序可能包含本机C代码,因此原则上也可以包含类似于漏洞利用程序的C代码。实际上,Android的沙箱模型可以缓解某些攻击。

–James_pic
16-10-21在15:55

github.com/timwr/CVE-2016-5195

– s3v3n
16-10-22在17:55

注意:Shellshock漏洞还要求“可以在系统上执行命令”,但是由于某些Web服务器软件的工作方式,它仍然允许远程执行代码。如果我们在这里遇到类似的情况,我也不会感到惊讶。

– Nzall
16-10-22在22:11

重写/ etc / passwd,然后导致系统重新引导(填充tmp?)或以某种方式导致新的www-data帐户登录? (填写您自己的本地tmp吗?是否执行另一个http请求?是否执行了许多http请求?)

– ak牛
16-10-24在14:27

@Nzall:Shellshock是一个完全不同的漏洞利用。它更像是一种注入式攻击,因此,如果环境变量包含命令,则可以“退出”环境并获得对本地Shell的访问权限。因此,shellshock PLUS脏牛=极毒。因此,基本上,shellshock是提供本地用户访问权限的远程漏洞利用,dirtycow是将root用户访问权限授予具有本地用户访问权限的人员的漏洞利用漏洞。不用说,这种组合非常危险。

–塞巴斯蒂安·尼尔森(Sebastian Nielsen)
16-10-28在4:54

#2 楼

脏牛漏洞是Linux内核版本2.6.22和更高版本中的特权提升漏洞;它自2007年以来一直存在,并已于2016年10月18日修复。
dirtyc0w错误的可能影响是什么?
此漏洞允许具有本地系统帐户的攻击者修改磁盘二进制文件,而绕过标准权限机制,该机制会在没有适当权限集的情况下阻止修改。 br />
可以远程利用吗?
不能直接远程利用吗?首先,您需要另一个缺陷,使您可以远程访问该系统,正如@IMSoP在其评论中所述,
它被评为重要漏洞:

重要影响
此评级提供的漏洞很容易损害机密性,完整性或资源可用性。这些类型的漏洞允许本地用户获得特权,允许未经身份验证的远程用户查看应通过身份验证保护的资源,允许经过身份验证的远程用户执行任意代码或允许远程用户拒绝服务。 br />
会影响Android吗?
是的,因为Android使用Linux内核。

我受到影响了吗?
如果有运行Linux内核的设备高于2.6.22,则很有可能会受到攻击。对于所有版本的Android,无论它们来自Samsung,Google,Cyanogen,MIUI还是其他供应商,都存在相同的问题,因为它们尚未发布安全更新。
为了利用此漏洞,攻击者需要在受影响的设备,在Android情况下,可以通过USB上的Android调试桥(ADB)或通过安装利用漏洞利用的应用程序来完成。

更新
一个安全搜索者在此博客上描述了如何远程利用该漏洞。

该利用漏洞可用于提供Shell访问权限的Web托管提供商,以便一个客户可以攻击其他客户甚至服务管理员。特权升级漏洞也可以与针对其他漏洞的攻击结合使用。例如,网站中的SQL注入漏洞通常允许攻击者仅以不受信任的用户身份运行恶意代码。但是,与逐步升级的漏洞结合使用,此类攻击通常可以达到令人垂涎的root状态。
受影响的Linux发行版的列表是什么?
我该如何解决?


评论


我认为这是一个术语上的混乱:从您的描述来看,它不能直接远程使用。您首先需要另一个缺陷,才能使您可以远程访问系统。一旦您有能力运行任意命令,这些命令就有效地在系统本地。例如,从这种意义上说,在已建立的SSH连接上运行的命令通常不会被归类为“远程”,因为它们与在物理上连接到系统的终端上键入的命令之间没有什么有意义的区别。

–IMSoP
16-10-21在13:42

-1该错误不可远程利用。

–psmears
16-10-21在16:28

如果您假设存在可以使您本地访问的次要缺陷,那么所有内容都是“可远程利用的”。所谓“可远程利用”,通常是指:无需本地访问Web Shell或类似内容即可触发该缺陷。

–巴库留
16-10-21在16:45

我认为您误解了定义。当漏洞至少满足列出的条件之一时,它们被标记为“重要”-在这种情况下,它允许本地用户获得特权,或者可以允许经过身份验证的远程用户这样做。如果已知该漏洞可被未经身份验证的远程用户直接利用,则将其标记为“关键”。 (N.B.我不是在这里正式为RH发言)

–mattdm
16-10-21在17:24



您对android漏洞利用的答案研究不足。 Android确实使用Linux内核,但这并不意味着可以在Android中利用此漏洞。另外,关于远程利用的答案充其量是一种误导。

– Steve Sether
16-10-21在18:25



#3 楼

CVE-2016-5195是所谓的特权升级漏洞。它允许您将特权级别从普通Linux用户提升为root用户。但是特权提升漏洞通常是本地漏洞(这意味着它们在本地运行),这意味着您已经需要登录到操作系统。

我正在检查的公共漏洞允许编写由root拥有的文件,这些文件是只读的,或者非root用户根本无法访问。这使您可以覆盖管理文件。您可以利用它成为根。例如。您可以在/etc/passwd上添加一行

hack::0:0:,,,:/home/kai:/bin/bash


。这会将没有密码的root用户添加到框中。

#4 楼

至少它确实会影响Android 5.0.1(内核版本3.10.54+)。我只是在使用Termux的设备上试用了此代码,然后完美地编辑了root拥有的文件。我喜欢这一点,因为该设备没有可用的根目录。 br />实际上,我只是尝试写入由/proc/self/mem用户拥有的文件,该用户拥有SD卡上的所有文件。 Termux本身(通常)不允许写入SD卡。当我在此类文件上尝试dirtyc0w时,设备会挂起并在几秒钟后自动重启。在挂起过程中,即使sdcard也不输出任何信息。不知道发生了什么事。

#5 楼



原则上讲,特权升级非常可怕,因为它或多或少使所有访问控制变得毫无意义。实际上,希望它无关紧要。首先,您必须具有有限的用户访问权限。

对于服务器而言,这意味着维护程度不高的服务器系统(现在可以被稍微利用)将是可移植的。但是,这并不是历史上的第一个特权升级漏洞。
对于维护良好的系统,其影响应该接近于零(它们到目前为止尚未被利用,并且应该现在进行更新)。 br />
不幸的是,对于7.0之前的所有Android手机,这意味着存在一种利用程序,可能允许恶意应用程序接管手机。这是一个非常可怕的想法,但到目前为止似乎还没有发生过,否则整个星球都会出现恐慌,混乱和谋杀。自动更新将很快解决此问题,同时不要安装新的应用程序(您手机上已经存在多个月的应用程序显然没有劫持您的手机,因此它们可能无害)...问题解决。
现在,还有另一种越狱电话的方法(至少到下一次系统更新为止)。

这显然也意味着可以对您的计算机和计算机进行物理访问的人用户帐户可以使您的系统成为root用户...但是他们也可以只是抓住您的计算机并带走它,或者窃取硬盘,或者使用Firewire / Thunderbolt,它们基本上是通过电缆直接访问内存,从CDROM引导或其他200件事,所以我认为总体上这不是大问题。这只是某人可以做的另一件事。

更重要的是

由于这是第二起长期以来备受瞩目的事件(在CVE-2008-0166之后),维护人员代表“我在乎什么?”提出了可以说是严重的安全问题。问题,我希望这将对工程过程带来最大的影响。

关于此漏洞的最大问题,我认为是在2005年发现并修复的(只是一个理论上的问题,发生的可能性很低),但后来又重新提出,因为它在1990年代初期的某些IBM大型机系列中引起了一个鲜有人知的问题。坦白说,这其中有99%的Linux用户根本不在乎,而仅依靠s / 390的系统相关补丁/修复程序就可以完成。但这并没有发生,直到11年之后,这个问题才逐渐消失。可能只是因为Valgrind发出了警告。

也许,这将有助于使人们更加了解维护者的重要性,了解代码更改对绝大多数用户以及整个用户的确切含义。关于代码更改的更严格的评估(需要同行评审?)可能会演变。希望是。

评论


“自动更新将很快解决此问题”-不知何故,我不相信您。实际获得自动更新的手机百分比是多少?

– d33tah
16-10-22在11:49

@ d33tah:我显然不知道(我怎么会)。但是,看到电话几乎“多归制造商所有”比所有者拥有多近100%了吗?我的手机(这是iPhone,不是Android,但无论如何)似乎每两周至少自动更新一次(就像每天一样),因此,如果有的话,可以将其关闭。隐藏的是,我什至不知道在哪里可以找到它。当然,我可以延迟更新,但是每次我按下唤醒按钮时,它都会让我“立即安装”。总而言之,虽然令人烦恼,但我认为这种频繁的自动更新是一项好功能。

–达蒙
16-10-23在11:45

@Damon两年前发布了Android 5.0,但仍有50%左右的Android手机仍在运行4.4或更早版本。参见developer.android.com/about/dashboards。

–suriv
16-10-23在13:27



@Damon Alas,Android的更新情况远远不同于iOS的更新情况。除了(相对)少数主要制造商现在已开始及时维修少数主要运营商提供的几种手机型号外,大型OEM厂商生产的Android手机的所有者通常仍可以期望(a)实际更新在Google首次将它们发布给OEM的几周或几个月后,即可使用手机,或者(b)完全没有更新。

–大多数情况下
16-10-24在19:12

#6 楼

卫报似乎说是“是”,但它似乎取决于所讨论的Android版本:

这也适用于Android:移动操作系统受到影响。虽然高端Android设备(例如Galaxy S7和Pixel)会定期进行安全更新,但售出的大多数Android设备几乎都不会收到售后更新。
Google拒绝置评,但证实Android是受影响的Linux发行版之一。该公司已发布了合作伙伴安全建议,以提醒Android合作伙伴,其中一个步骤是向这些合作伙伴发出补丁。


#7 楼

该错误使攻击者可以执行任意代码以写入“只读”内存。 Linux将经常使用的文件缓存在只读存储器中。如您所料,这使您可以执行以下操作:更改setuid根文件的内容,以root身份执行外壳程序之类的任意代码。

该错误本身无法远程利用因为它要求攻击者执行由攻击者创建的特定可执行文件。通常,当我们使用“可远程利用”一词时,它并不需要执行任意代码的能力。显然作为ssh访问。这可能是造成某些混乱的原因,因为攻击者不一定总是具有代码执行特权。潜在的是,共享的自动构建环境可能容易受到这种类型的利用,因为它们通常允许开发人员执行任意代码。在这种情况下,攻击者可能会获得root特权。

如果可以在Android中利用此错误,我认为我没有资格回答。如果它可以在Android上利用,则范围很可能仅限于能够“ root”设备的手机所有者,而不是远程攻击者获得对该手机的任何控制权。

评论


这仅意味着应用程序沙箱无法运行,并且任何应用程序都可以对设备进行伪装,无论用户是否批准(例如在MS-DOS中)

–显示名称
16-10-23在5:31