应急响应靶机——WhereIS?

用户名及密码:zgsf/zgsf


下载资源还有个解题.exe:

1、攻击者的两个ip地址

2、flag1和flag2

3、后门程序进程名称

4、攻击者的提权方式(输入程序名称即可)


之前的命令:


1、攻击者的两个ip地址

先获得root权限,查看一下历史命令记录:

看样子攻击者在/桌面/tmp目录可能写了一个脚本upgrade.sh和对system.log文件进行了一些操作


赋予“开启环境.sh”执行权限:


但是发现upgrade.sh文件消失了


find命令查看upgrade.sh文件在哪

呃,应该是删掉了?先看看system.log文件在哪吧


find / -name 'system.log' 2>/dev/null

找到system.log的文件路径/home/.system_config/system.log


cat命令查看system.log文件内容:

看样子,第一个攻击者IP应该是192.168.31.64


本来想直接用grep命令搜索含有“192.168.31.64”的文件的内容的,但没反应:

grep -rnw '/' -e "192.168.31.64" 2>/dev/null


直接看看计划任务程序:

cat /etc/crontab

只有这一个任务计划程序,这应该是攻击者留下的恶意脚本,查看一下

很明显这是个反弹shell,通过 TCP 连接到192.168.31.64:1133并提供对系统的远程控制

攻击者第一个IP就是192.168.31.64


查看靶机IP时发现还有个docker,从这入手分析一下:

docker ps -a

可以看到容器有rabbitmq,webdav,phpadmin,think,nignx,mysql,而且只有webdav容器正在运行,其他容器都处于Exited状态,查询了一下相关资料:

其中thinkphp的漏洞风险更大,优先去排查该容器


启动think容器并查看是否成功启动:

docker start 1d1aa8b3f126

docker ps


进入think容器:

docker exec -it 1d1aa8b3f126 sh

ls -a

thinkphp框架的默认日志路径是:

ThinkPHP 5.1/6.x/7.x/8.x runtime/log/

ThinkPHP 3.x/5.0 runtime/Logs/

顺着路径下去访问,发现有个22.log:


查看22.log文件内容:

可以看到192.168.31.251进行恶意操作,执行远程命令,显示phpinfo

攻击者第二个IP就是192.168.31.251

答案:192.168.31.64和192.168.31.251


2、flag1和flag2

本来想直接

find / -name *flag*查找关键词“flag”

grep -Ern "\{[^\}]*\}" /查找关键词括号“{}”

但结果太多了,换种思路


先前history命令看到还进入了/home/.system_config目录,先去看看吧:

ls -a发现有个systemd_null文件,cat命令查看发现贼多信息,看不过来


没有头绪了,看看别人的WP,发现在/home目录下有个.system文件,cat命令查看一下找到flag:

找到第一个flag:

SYS{ZGSFYYDSadmin}


第二个flag也是找不到了,看了别人的WP才知道需要查看容器内文件变化:

最后在nginx容器里发现有个index.html和www.txt,这并不常见:

docker diff 2da3b55bd66c


启动nginx容器,并进去查看这两个文件内容:

docker start 2da3b55bd66c

docker exec -it 2da3b55bd66c sh

找到第二个flag:

zgsf{yerhawtigouhegih}

答案:SYS{ZGSFYYDSadmin}和zgsf{yerhawtigouhegih}


3、后门程序进程名称

上传whoamifuck.sh并赋予权限:

chmod 777 whoamifuck.sh


查看一下whoamifuck.sh的命令:

./whoamifuck.sh -h


查看是否存在的webshell文件:

./whoamifuck.sh -w /

发现存在一个peiqi.php文件,但感觉不是什么后门程序进程


根据先前的history命令看到的历史命令提及到system.log,觉得应该从这里入手:

这个命令是在后台启动一个system_null文件,并让它监听靶机的8899端口,同时将输出日志保存到system.log文件

但还有个就是systemd_null文件,并让它监听靶机的8896端口,同时将输出日志保存到system.log文件

猜测应该是打错文件名了,正确的应该是systemd_null文件,因为前面看到了有个systemd_null文件


用find命令各自检索一下文件名:

find / -name system_null

find / -name systemd_null

发现只有systemd_null文件的文件路径


先查看一下system.log文件内容:

这时候突然想起来这就是第一问的操作,那后门程序进程名就是systemd_null

答案:systemd_null


4、攻击者的提权方式(输入程序名称即可)

根据第一问和第二问通过docker容器获得的答案,猜测应该是通过docker来提权,直接journalctl _COMM=sudo > sudo.txt,使用systemd的系统查看sudo命令的历史,保存为sudo.txt文件

发现还有安装docker容器的命令,但还是那个问题,关键词“docker”太多了,没法确定,换种思路


经了解,攻击者获取到docker的权限之后是利用的容器逃逸进行的提权,而容器逃逸需要一定条件,去检查docker.sock是否可访问

find / -name docker.sock

发现有两个docker.sock,先看看第一个


ls -la /var/run/docker.sock

但docker.sock文件大小是0,有点奇怪,再看看另一个docker.sock文件:

发现文件大小也是0,可权限不太一样,但还是确定了通过docker提权

答案:docker


答案总结:

1、192.168.31.64和192.168.31.251

2、SYS{ZGSFYYDSadmin}和zgsf{yerhawtigouhegih}

3、systemd_null

4、docker

原来有提示6个字符啊,那大概都猜得出来是docker,成功攻克该靶机!

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

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

相关文章

变量函数实战:高保真APP原型“发票页面”动态交互教程

变量函数是高保真交互原型设计中常见的高级交互功能,能够避免重复复制与手动修改页面元素和逻辑标注,让演示更有真实体验感。本文分享一个高保真APP交互原型页面的实操案例,结合原型设计工具中的变量函数与逻辑判断功能,手把手教你…

量子加密通信:守护信息安全的未来之盾

摘要 在数字化时代,信息安全成为全球关注的焦点。传统加密技术面临着被量子计算破解的风险,而量子加密通信作为一种基于量子力学原理的新型加密技术,提供了理论上无条件安全的通信保障。本文将详细介绍量子加密通信的基本原理、技术实现、应用…

《Vue.js》阅读之响应式数据与副作用函数

Vue.js 《Vue.js设计与实现》(霍春阳) 适合:从零手写Vue3响应式系统,大厂面试源码题直接覆盖。重点章节:第4章(响应式)、第5章(渲染器)、第8章(编译器&…

数据处理专题(十三)

学会基本的图像处理技术。‍ OpenCV 基础 实践:使用 OpenCV 进行图像读取、显示和基本处理‍ 03 代码示例 1. 导入必要的库 import cv2import numpy as npimport matplotlib.pyplot as plt 2. 图像读取 # 读取图像image_path path_to_your_image.jpg # 替换…

springboot旅游小程序-计算机毕业设计源码76696

目 录 摘要 1 绪论 1.1研究背景与意义 1.2研究现状 1.3论文结构与章节安排 2 基于微信小程序旅游网站系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统…

P1874 快速求和

目录 题目算法标签: 动态规划, 线性 d p dp dp思路代码 题目 P1874 快速求和 算法标签: 动态规划, 线性 d p dp dp 思路 求的是最少组成 n n n的加法次数, 对于当前数字序列可以设计状态表示 f [ i ] [ j ] f[i][j] f[i][j]表示考虑前 i i i个字符, 并且和是 j j j的所有方…

知名人工智能AI培训公开课内训课程培训师培训老师专家咨询顾问唐兴通AI在金融零售制造业医药服务业创新实践应用

AI赋能未来工作:引爆效率与价值创造的实战营 AI驱动的工作革命:从效率提升到价值共创 培训时长: 本课程不仅是AI工具的操作指南,更是面向未来的工作方式升级罗盘。旨在帮助学员系统掌握AI(特别是生成式AI/大语言模型…

Linux 内核参数

文章目录 什么是内核参数参数种类配置方式1. 编译内核时配置2. 内核启动时配置3. 内核运行时配置4. 加载内核模块时配置总结 什么是内核参数 内核参数是 Linux 系统中用于控制和调整内核行为的可配置选项。这些参数影响系统的性能、安全性和各种功能特性。 参数种类 大部分参…

pythonocc 拉伸特征

micromamba install -c conda-forge pythonocc-core opencascade.js安装不起来,ai用pythonocc练个手 拉伸线框 线成面 from OCC.Core.gp import gp_Pnt, gp_Dir, gp_Vec from OCC.Core.BRepBuilderAPI import BRepBuilderAPI_MakeEdge, BRepBuilderAPI_MakeWire f…

Vue.js 页面切换空白与刷新 404 问题深度解析

在使用 Vue.js 开发单页应用 (SPA) 的过程中,开发者经常会遇到两个常见问题:页面切换时出现短暂的空白屏幕,以及刷新页面时返回 404 错误。这两个问题不仅影响用户体验,还可能阻碍项目的正常上线。本文将深入探讨这两个问题的成因…

Go 语言 slice(切片) 的使用

序言 在许多开发语言中,动态数组是必不可少的一个组成部分。在实际的开发中很少会使用到数组,因为对于数组的大小大多数情况下我们是不能事先就确定好的,所以他不够灵活。动态数组通过提供自动扩容的机制,极大地提升了开发效率。这…

Qt5.14.2 链接 MySQL 8.4 遇到的问题

问题一: "Plugin caching_sha2_password could not be loaded: 找不到指定的模块。 Library path is caching_sha2_password.dll QMYSQL: Unable to connect" 解决方法: alter user root@localhost identified with mysql_native_password by root;问题二: ERR…

Docker 部署 - Crawl4AI 文档 (v0.5.x)

Docker 部署 - Crawl4AI 文档 (v0.5.x) 快速入门 🚀 拉取并运行基础版本: # 不带安全性的基本运行 docker pull unclecode/crawl4ai:basic docker run -p 11235:11235 unclecode/crawl4ai:basic# 带有 API 安全性启用的运行 docker run -p 11235:1123…

开发工具分享: Web前端编码常用的在线编译器

1.OneCompiler 工具网址:https://onecompiler.com/ OneCompiler支持60多种编程语言,在全球有超过1280万用户,让开发者可以轻易实现代码的编写、运行和共享。 OneCompiler的线上调试功能完全免费,对编程语言的覆盖也很全&#x…

Docker-配置私有仓库(Harbor)

配置私有仓库(Harbor) 一、环境准备安装 Docker 三、安装docker-compose四、准备Harbor五、配置证书六、部署配置Harbor七、配置启动服务八、定制本地仓库九、测试本地仓库 Harbor(港湾),是一个用于 存储 和 分发 Docker 镜像的企业级 Regi…

关于高并发GIS数据处理的一点经验分享

1、背景介绍 笔者过去几年在参与某个大型央企的项目开发过程中,遇到了十分棘手的难题。其与我们平常接触的项目性质完全不同。在一般的项目中,客户一般只要求我们能够通过桌面软件对原始数据进行加工处理,将各类地理信息数据加工处理成地图/场景和工作空间,然后再将工作空…

使用 DMM 测试 TDR

TDR(时域反射计)可能是实验室中上升时间最快的仪器,但您可以使用直流欧姆表测试其准确性。 TDR 测量什么 在所有高速通道中,反射都很糟糕。我们尝试设计一个通道来减少反射,这些反射都会导致符号间干扰 (…

可视化图解算法37:序列化二叉树-II

1. 题目 描述 请实现两个函数,分别用来序列化和反序列化二叉树,不对序列化之后的字符串进行约束,但要求能够根据序列化之后的字符串重新构造出一棵与原二叉树相同的树。 二叉树的序列化(Serialize)是指:把一棵二叉树按照某种遍…

【Python】Python常用数据类型详解

Python常用数据类型详解:增删改查全掌握 Python作为一门简洁高效的编程语言,其丰富的数据类型是构建程序的基础。本文将详细介绍数字、字符串、列表、元组、字典、集合这六种核心数据类型的特点及增删改查操作,并附代码示例,助你全面掌握数据操作技巧。 一、数字(Number)…

模板引用、组件基础

#### 组件基础 1. 定义和使用简单组件 - ![alt text](./img/image-2.png) vue <!-- 在App.vue里 --> <script setup>import HelloWorld from ./components/HelloWorld.vue </script> <template><HelloWorld></HelloWorld></temp…