应急响应练习2
目录
1. 请提交攻击者的ip与系统版本
2. 攻击者通过某个组件漏洞获得服务器权限,请提交该组件的名称
3. 请提交攻击者首次攻击成功的时间
4. 请提交攻击者上传的webshell文件绝对路径
5. 请提交攻击者使用的webshell管理工具
6. 攻击者进一步留下的免杀的webshell在网站中,请提交该shell的原文内容
7. 攻击者修改了某文件,导致webshell删除后,攻击者仍然拥有服务器权限,请提交该文件的绝对路径
8. 请提交网站服务连接数据库使用的数据库账号和密码
9. 请提交攻击者在数据库中留下的信息,格式为:flag{...}
10. 请分析攻击者的入侵行为与过程
练习环境: Linux localhost 3.10.0-1160.el7.x86_64
1. 请提交攻击者的ip与系统版本
到文件根目录看到有www目录

查看www的web日志
www/wwwlogs/172.16.24.128-access_log
(如果实在是找不到web日志就通过find查找find -name '*access*log*' -type f)
cat ./172.16.24.128-access_log

单独筛选出POST数据
cat www/wwwlogs/172.16.24.128-access_log | grep POST
这里能看到172.16.24.1这个ip多次访问tt1.php这个文件,很可疑

单独查找tt1.php
cat www/wwwlogs/172.16.24.128-access_log | grep tt1.php
这里能看到黑客执行了phpinfo()获取了网站配置信息

黑客ip:172.16.24.1
系统:Windows NT 10.0; Win64; x64
2. 攻击者通过某个组件漏洞获得服务器权限,请提交该组件的名称
这里先略过,先把web日志分析完再来做
这里先去看用户配置文件passwd里的ront用户
cat etc/passwd | grep 0:0
这里发现除了root用户还有一个www用户和msf用户有root权限

查看所有用户登录时间
没什么收获

这里去看home目录下的用户
这里有www用户的目录

查看www用户的历史命令记录
这里 .bash_history是隐藏文件
这里发现www用户执行过cve-2021-3156漏洞的python文件
似乎是系统漏洞
还执行过 ./suggester.sh来进行信息搜集
因为比赛的时候是没有网的所以这里不去搜索这个文件是哪个组件的漏洞

现在去查系统日志文件
/var/log/message 内核消息及各种应用程序的公共日志信息,包括启动、I/O错误、 网络错误、
/var/log/cron Crond周期性计划任务产生的时间信息
/var/log/dmesg 弓|导过程中的各种时间信息
/var/log/ maillog 进入或发出系统的电子邮件活动
/var/log/lastlog 每个用户最近的登录事件
/var/log/secure 用户认证相关的安全事件信息
/var/log/wtmp 每个用户登录注销及系统启动和停机事件
/var/log/btmp 失败的、错误的登录尝试及验证事件
这里先看secure文件
当看到www用户时发现用户进行了提权, 使用的是sudo组件的漏洞

组件: sudo
3. 请提交攻击者首次攻击成功的时间
继续分析
这里能明显看到,黑客上传成功后门以后先是访问了一下是否存在,后续便通过工具连接

首次攻击成功实践:[04/Oct/2023:22:30:18 +0800]
4. 请提交攻击者上传的webshell文件绝对路径
全局搜索tt1.php
find / -name 'tt1.php' -type f

文件绝对路径:/www/wwwroot/172.16.24.128/wp-content/plugins/wp-file-manager/lib/files/tt1.php
5. 请提交攻击者使用的webshell管理工具
从后门文件来看看不出是使用的那种webshell管理工具
那么只能从webshell管理的流量上下手

继续分析web日志
数据包流量特征:
中国菜刀:
1,请求包中:ua头为百度,火狐
2,请求体中存在eavl,base64等特征字符
3,请求体中传递的payload为base64编码蚂蚁宝剑:
使用普通的一句话都存在以下特征:
每个请求体都存在@ini_set(“display_errors”, “0”);@set_time_limit(0)开头。并且后面存在base64等字符
响应包的结果返回格式为:随机数 响应内容 随机数冰蝎2.0
第一阶段请求中返回包状态码为200,返回内容必定是16位的密钥
请求包存在:Accept: text/html, image/gif, image/jpeg, ; q=.2, /; q=.2
冰蝎3.0
请求包中content-length 为5740或5720(可能会根据Java版本而改变)
每一个请求头中存在
Pragma: no-cache,Cache-Control: no-cache
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/*;q=0.8,application/signed-exchange;v=b3;q=0.9哥斯拉
所有请求中Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
从整体来看像是菜刀

shell管理工具:菜刀
到这里以后回到第二步
6. 攻击者进一步留下的免杀的webshell在网站中,请提交该shell的原文内容
这里我还是老样子全局搜索所有可能为后门的文件
cat `find / -name '*.php' -type f` | grep eval
这里我一般会找三个后门文件后缀 asp jsp php,最常见的就是php所以首先查找
第二筛选内容也是后门文件的特征assert eval system之类的函数
当看到这里时找到免杀后门文件
这里的后门文件先用a接受json加密后的命令,再用data接受解密后的,再输出执行后的data

通过内容特征找这个文件
find / -name '*.php' -type f | xargs grep 'cdp'

后门免杀文件路径:/www/wwwroot/172.16.24.128/wp-admin/user/passthru.php
7. 攻击者修改了某文件,导致webshell删除后,攻击者仍然拥有服务器权限,请提交该文件的绝对路径
到这里主要需要分析的就是自启动项目还有就是恶意文件了
先看网络有没有外联其他ip

查看进程ps -aux
这里发现了反弹shell

继续查看此进程详情
这里并没有任何信息, 猜测是写在开机自启动或者定时任务里的命令

查看定时任务列表
没有定时任务, 手动去查

cat /etc/init.d/rc.local cat /etc/rc.local ls -alt /etc/init.d
查看init.d文件夹下的所有文件的详细信息
并没有什么有用信息

查看定时任务
发现反弹shell代码

路径: /etc/crontab
8. 请提交网站服务连接数据库使用的数据库账号和密码
这里去找网站的配置文件, 配置文件里有账号密码
找不到的话可以搜索www目录下的config文件

账号: sql172_16_24_12
密码: sqlpass
9. 请提交攻击者在数据库中留下的信息,格式为:flag{...}
登录mysql

使用在配置文件看到的数据库

查表

查数据

flag{th1s_ls_fl99999g1}
10. 请分析攻击者的入侵行为与过程
- 通过web端漏洞上传后门文件
- 再通过后门文件上传免杀webshell
- 通过系统漏洞提权
- 为了保持权限在定时文件中加入反弹shell
相关文章:
应急响应练习2
目录 1. 请提交攻击者的ip与系统版本 2. 攻击者通过某个组件漏洞获得服务器权限,请提交该组件的名称 3. 请提交攻击者首次攻击成功的时间 4. 请提交攻击者上传的webshell文件绝对路径 5. 请提交攻击者使用的webshell管理工具 6. 攻击者进一步留下的免杀的webs…...
JS算法练习 11.13
leetcode 2625 扁平化嵌套数组 请你编写一个函数,它接收一个 多维数组 arr 和它的深度 n ,并返回该数组的 扁平化 后的结果。 多维数组 是一种包含整数或其他 多维数组 的递归数据结构。 数组 扁平化 是对数组的一种操作,定义是将原数组部…...
js升序排序
function sortByKey(array, key) {return array.sort(function(a, b) {var x Number(a[key]);var y Number(b[key]);return x < y ? -1 : x > y ? 1 : 0; //或者 return x-y});}...
2023亚太杯数学建模C题思路
文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料5 最后 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 2023年第十三…...
【ArcGIS Pro微课1000例】0030:ArcGIS Pro中自带晕渲地貌工具的妙用
在ArcGIS中,制作地貌晕渲效果通常的做法是先制作山体阴影效果,然后叠加在DEM的下面,再改变DEM的透明度来实现。而在ArcGIS Pro中自带了效果显著的晕渲地貌工具。 文章目录 一、晕渲地貌工具1. 符号系统2. 栅格函数二、山体阴影效果1. 工具箱2. 栅格函数打开ArcGIS Pro3.0,加…...
【原创】java+swing+mysql办公用品管理系统设计与实现
摘要: 办公用品管理系统是一个设计和实现办公用品库存和使用管理的信息系统。此系统可以提高办公用品的利用率,减少浪费,使办公用品管理更加高效、规范、便捷。本文主要介绍使用javaswingmysql技术去开发实现一个办公用品管理系统。 功能分…...
sqlalchemy查询数据为空,查询范围对应的数据在数据库真实存在
记录一个开发过程遇到的小bug,构造些伪数据还原并解释。 """ 场景:传参触发了查询条件,数据库中是存在传参对应范围的数据,但是通过查询条件得到的查询结果为空 """ 入参场景一: start_time = "2023-11-13" end_time = "202…...
Code Former安装及使用
Code Former是南洋理工大学和商汤科技联合研究中心联合开发一款AI人脸修复算法,通过该算法,可以对已经模糊的图片进行人脸修复,找回斑驳的记忆 由于网上对于Code Former的封装,全都是要花钱,或者需要其他什么曲折的方式…...
SpringMVC--@RequestMapping注解
RequestMapping注解 RequestMapping注解的功能RequestMapping注解的位置RequestMapping注解的属性1、value属性2、method属性3、params属性(了解) 补充RequestParamRequestHeaderRequestBody RequestBody获取json格式的请求参数 ResponseBodyRestControl…...
ARM寄存器及功能介绍/R0-R15寄存器
1、ARM 寄存器组介绍 ARM 处理器一般共有 37 个寄存器,其中包括: (1) 31 个通用寄存器,包括 PC(程序计数器)在内,都是 32 位的寄存器。 (2) 6 个状态寄存器…...
js删除json数据中指定元素
delete 删除数组方法: function removeJSONRows() {var tab {"dataRows": [{"id": 1,"name": "使用部门"},{"id": 2,"name": "车辆走行路线"},{"id": 3,"name": &quo…...
广州华锐互动:VR刑侦现场执法实训助力警察全面提升警务能力
随着科技的不断发展,虚拟现实(VR)技术在多个领域开始得到广泛应用,其中包括公安执法培训。VR刑侦现场执法实训系统是一种采用虚拟现实技术,为公安执法人员提供模拟真实环境的培训工具。通过这种平台,公安人…...
多线程 浏览器渲染引擎 图形用户界面(GUI,Graphical User Interface)应用程序
目录 多线程浏览器渲染引擎图形用户界面(GUI,Graphical User Interface)应用程序 👍 点赞,你的认可是我创作的动力! ⭐️ 收藏,你的青睐是我努力的方向! ✏️ 评论,你的…...
echarts饼图label显示不全原因?
echarts饼图label显示不全原因? 标签数量过多:当饼图的扇形数量较多时,为了保证图形的清晰性,ECharts 可能不会显示所有的标签,而是选择显示部分标签或者不显示标签。标签过长:如果标签的文字过长…...
暖手宝上架亚马逊美国站UL499报告测试标准要求
暖手宝是运用物理及化学原理研制的自动取暖保健用品。该产品以其自动生热,有趣,实用等新颖独特的优势,深受欢迎——暖手宝具有自动取暖,理疗保健等多种功能。只要插上电源等上10分钟左右就能发热,最后一种是通过锂电池…...
2023数据结构期中测验-2023秋-计算机+未来网络专业
这里写目录标题 选择题函数题6-1 求链式表的表长6-2 逆序数据建立链表6-3 删除单链表偶数节点6-4 求二叉树高度6-5 先序输出叶结点 选择题 2-1 下述程序段的时间复杂度为( ) for(i0; i<n-1; i)for(j0; j<n-1-i…...
解锁内存之谜:从C到Python、Java和Go的内存管理对比
前言 在编程世界中,内存是宝贵的资源,而管理它却是一个复杂的挑战。不同的编程语言以其独特的方式处理内存分配和释放。从C语言的显式malloc和free到Python、Java和Go的自动内存管理,每种语言都有其独特之处。本文将深入探讨各种编程语言中的…...
Redirect:301和302不同场景选择问题
redirect场景,一般来说,会有大量用户在收藏夹里放着你的官网主页。但是用户收藏的url未必会跟着官网url的变动一起自动更新 这个官网主页因为一些其他的原因,需要迁服务器或者换ip等等。所以在换之前要搞一个redirect,把访问引流…...
ChromeDriver谷歌浏览器驱动下载安装与使用最新版118/119/120
ChromeDriver谷歌浏览器驱动下载安装与使用最新版118/119/120 1. 确定Chrome版本 我们首先确定自己的Chrome版本 Chrome设置->关于Chrome 可以看到,当前chrome是最新版本:119.0.6045.124(正式版本) (64 位&#…...
研究生做实验找不到数据集咋办?
做实验找不到数据集咋办?这是很多研究者和开发者都会遇到的问题。数据集是实验的基础,没有合适的数据集,就无法验证模型的性能和效果。那么,有没有什么方法可以快速地找到我们需要的数据集呢?本文将介绍4个常用的数据集搜索平台,希望能够帮助大家解决这个难题。下面以室内…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...
DiscuzX3.5发帖json api
参考文章:PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下,适配我自己的需求 有一个站点存在多个采集站,我想通过主站拿标题,采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...
论文阅读:Matting by Generation
今天介绍一篇关于 matting 抠图的文章,抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法,已经有很多的工作和这个任务相关。这两年 diffusion 模型很火,大家又开始用 diffusion 模型做各种 CV 任务了&am…...
接口 RESTful 中的超媒体:REST 架构的灵魂驱动
在 RESTful 架构中,** 超媒体(Hypermedia)** 是一个核心概念,它体现了 REST 的 “表述性状态转移(Representational State Transfer)” 的本质,也是区分 “真 RESTful API” 与 “伪 RESTful AP…...
