【Vulnhub靶机】lampiao--DirtyCow

文章详细介绍了Linux内核的脏牛漏洞,源于Copy-on-Write机制的竞争条件,导致低权限用户可提权。内容包括漏洞原理、影响版本、信息收集方法、漏洞利用步骤以及权限提升和文件传输等技术细节。

靶机地址:lampiao

下载地址:Lampião: 1

漏洞介绍

简介

脏牛(Dirty Cow)是Linux内核的一个提权漏洞,之所以叫Dirty Cow,Linux内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞,导致可以破坏私有只读内存映射。一个低权限的本地用户能够利用此漏洞获取其他只读内存映射的写权限,有可能进一步导致提权漏洞。竞争条件,指的是任务执行顺序异常,可导致应用崩溃,或令攻击者有机可乘,进一步执行其他代码。利用这一漏洞,攻击者可在其目标系统提升权限,甚至可能获得root权限。脏牛的CVE编号是CVE-2016-5195。

原因

很多情况下,我们希望能够并行地去处理多个相同的进程(比如我们需要去并行计算一些东西),所以内核中就存在复制进程的操作,而fork()函数就是用来复制进程的函数,它可以拷贝当前进程的内存空间,创建一个新的内存空间,这样我们就拥有了两个完全一样的进程空间。但是这个复制过程是很耗费空间和时间的,因为每个子进程都有和父进程一样大的物理空间,但是这些进程可能并不会执行写的操作,也就是不会对原始的文件进行更改,那这种浪费就是没有必要的,所以我们采取了COW(Copy On Write)技术进行优化。

COW(Copy On Write)技术是一种内存管理技术,它在进程复制时,不会立即为进程分配物理内存,而是为进程建立虚拟的内存空间,将虚拟空间指向物理空间,便于读取文件;只有当需要执行文件写操作的时候,才会复制一份物理内存空间分配给它,然后进程在这个复制完的物理内存空间中进行修改,而不会影响其他进程。换句话说,在COW机制中,当多个进程共享一个只读文件的时候,内核会把该文件的内存映射到这些进程的虚拟地址空间中,这些进程都可以读取该文件的内容,当有进程要修改文件时,就会把这个原始文件的状态改成可写状态,然后内核会将该原始文件复制一份,原始文件再改回只读状态,然后进程就修改这份副本,而原始文件仍然可以被其它进程共享,这就是Copy-on-Write的核心思想。

原始只读文件——>修改为可写状态——>复制原始只读文件——>原始状态改回可读。

但是在这个过程中,存在竞态条件。假如现在多个进程同时共享一个只读文件,那么内核可能会把这个文件复制多次,使得每个进程可以修改,但是在内核将原始只读文件的访问状态从可写改回只读之前,多个进程都可以访问和修改原始文件,导致了竞态条件的产生,如果有恶意进程在这段时间进行了修改,那么修改的就是原始文件,从而产生了漏洞。

该漏洞利用了Copy-on-Write机制中的竞态条件,攻击者可以利用这个竞态条件来获取对一个本来只读的文件的写权限,从而提升为本地管理员权限。

类型

内核竞态条件漏洞

版本

Linux kernel>2.6.22的所有Linux系统(即:从2007年发布的2.6.22开始,到2016年10月18日为止,这中间发行的所有Linux系统都受影

### 关于VulnHub靶机AI-WEB1的信息 针对VulnHub平台上的AI-WEB1靶机,该虚拟机旨在提供给有兴趣了解Web应用程序安全性的个人一种实践环境。通过这一挑战,参与者可以探索常见的Web应用漏洞以及如何利用这些弱点来获得系统的进一步访问权限。 #### 初始侦察阶段 在开始任何实际攻击之前,进行全面的情报搜集至关重要。这通常涉及到使用诸如`Nmap`这样的工具来进行端口扫描和服务版本检测: ```bash nmap -A <target_IP> ``` 上述命令能够揭示开放的服务及其潜在的安全配置缺陷[^3]。 #### Web服务器枚举 一旦确认目标运行着HTTP(S)服务,则应立即启动目录遍历尝试。可借助像`Dirb`或更现代的选择如`Gobuster`等工具完成这项工作: ```bash gobuster dir -u http://<target_ip> -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt ``` 此过程有助于发现隐藏页面和管理接口,它们可能是后续入侵的关键入口点。 #### 应用层挖掘 对于基于PHP构建的应用程序来说,源码泄露是一个常见问题。如果运气好,在上一步找到的路径里可能会存在`.php~`或其他临时文件形式暴露出来的代码片段。仔细审查这部分内容往往能带来意想不到的收获——比如硬编码凭证或是调试模式下的敏感信息泄漏。 #### 数据库交互测试 许多老旧CMS(内容管理系统)容易受到SQL注入的影响。当遇到带有查询参数的URL时,不妨试试经典的单引号闭合技巧;而对于表单提交,则可通过修改POST数据包中的字段名与值组合来进行试探性输入验证绕过[^8]。 #### 提升权限方法 成功突破前端防护之后,下一步便是考虑怎样扩大战果直至取得root shell。Linux系统下,检查SUID位设置不当的二进制文件是一项基本技能;而Windows环境中则需留意计划任务、注册表键值异常变动等情况。 #### Drupal特定注意事项 鉴于部分描述提及到Drupal CMS, 若确实如此的话,值得注意的是有关于此框架内核升级机制的一个已知特性:即管理员账户密码可以通过编辑数据库记录的方式实现重置而不依赖原有认证流程[^9]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

过期的秋刀鱼-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值