溯源取证 - 流量分析 中等难度

news2024/11/25 0:49:08

使用工具:
Brim
链接: https://www.brimdata.io/download/

Networkminer
链接: https://www.netresec.com/?page=NetworkMiner

Wireshark
Strings
ida pro

知识点:

通过本篇文章,学习ssh协议特点、学习流量导出文件、学习简单的逆向分析、学习hashcat的简单使用、学习查壳工具等

数据包已上传至博客里,大家可以自行下载,或者关注公众号回复下载

Q1

攻击者使用什么服务来访问系统?

这里可以使用wireshark来看流量包,也可以使用Brim工具
这里我们使用Brim工具,输入count() by _path | sort -r的含义是对数据进行统计,并按照统计结果的数量进行逆序排序。
解析该命令的具体步骤如下:

count():这是一个聚合函数,用于对数据进行计数。
by _path:通过字段 _path 对数据进行分组,表示按照 _path 字段的值进行统计。
|:管道符号,表示将前一个操作的结果作为输入传递给后一个操作。
sort -r:对前一步的结果进行逆序排序,-r 表示逆序(从大到小)排序。

综合起来,该命令的作用是对数据进行计数,并按照计数结果的数量进行逆序排序,以便查看出现频率最高的 _path 值。
在这里插入图片描述
所以第一题答案是 ssh

Q2

攻击者使用什么手法攻击系统?
这里其实就是ssh爆破,用英语来表达就是 bruteforce

Q3

攻击者可能使用什么工具来执行此攻击?
这里在流量包里是看不出来的,使用的是hydra

Q4

有多少次失败的尝试?
我们使用Brim工具,直接筛选ssh服务即可
在这里插入图片描述
这里就是52次爆破失败记录,那么我们如果使用 wireshark工具应该如何查看呢?
这里面简单的介绍一下ssh协议

首先就是ssh协议依然是寄托于tcp/ip协议,所以说第一步依然是三次握手,我们此次以本次案例介绍,tcp.stream eq 53为登录成功记录
在这里插入图片描述
在这里插入图片描述
客户端向服务端发送一个TCP数据包,这个数据包的TCP头设置了SYN标志。服务端向客户端回复一个SYN和ACK标志以及包含的它的初始序列号的数据包。
最后,客户端向服务端发送一个设置ACK标志的数据包,这样就具备所需要正常通信所需的信息。

之后就是SSH版本协商阶段,服务端将自己的SSH协议版本发送到客户端。客户端将自己的SSH协议版本发送到服务端
在这里插入图片描述
密钥协商阶段从客户端和服务端相互发出Key Exchange Init请求开始,主要是告诉对方自己支持的相关加密算法列表、MAC算法列表等。
在这里插入图片描述
客户端发送D-H公钥,服务端与客户端使用D-H算法生成会话密钥key。服务端回复,服务端与客户端使用D-H算法生成会话密码key
在这里插入图片描述
服务端回复如下:
一个服务端的公钥,即证书,客户端会将该公钥与本地公钥对比,看是否是被信任的服务器,如过是第一次访问则会询问用户是否信任这样的公钥。
服务端回复的D-H公钥
签名
在这里插入图片描述
这个时候,服务端端还会回复一个new Key包 用于表明服务端可以使用会话密码key加密消息了。
在这里插入图片描述
在这里插入图片描述
通信结束后,四次挥手
在这里插入图片描述
而其他的ssh数据包是没有这个完整的过程的,缺少最后一步的四次挥手
在这里插入图片描述
所以如果不借助工具,就需要一个流一个流的筛选,这也是为什么借助brim这款工具的原因,他为我们节约了大量的时间,国内比较好的工具,比如科来网络分析系统,如果导入规则的话也可以达到相似的效果

Q5

使用哪些凭据(用户名:密码)来获取访问权限?
题目提示:
shadow.log and sudoers.log

这里推荐使用kali自带的 hashcat工具,直接把shadow.log拷贝过去,再找一个全一些的字典就可以,爆破出哪个是哪个

hashcat  shadow.log password.txt -m 1800 --show 

在这里插入图片描述
这里用的字典比较小,导致后面遇到了需要使用大字典的题目的时候很难受,所以说这道题的答案其实不应该是唯一的,理论上来讲,我觉得不应该根据shadow.log来进行判断,因为字典足够大时间足够多,什么密码都是可以破解出来的

Q6

还有哪些其他凭据(用户名:密码)可用于获取访问权限,也具有 SUDO 权限?
题目提示:
shadow.log and sudoers.log

这里直接使用kali自带的字典去爆破,字典存放在/usr/share/wordlists/目录下,rockyou.txt.gz

在这里插入图片描述
解压直接用就行,字典很大很大,百万字典,爆破了一晚上才出结果

hashcat  shadow.log rockyou.txt  -m 1800 

在这里插入图片描述
然后去sudoers.log看一眼,主要是看一下sudo用户有哪些
在这里插入图片描述
对照后 sean:spectre

Q7

攻击者是用什么工具在系统上下载了恶意文件?

这里面我们可以着重关注一下http协议内容,这里大家可以使用wireshark或者是firm都行

在这里插入图片描述
我们筛选了http协议后,将滚动条拉到最后方,我们看一下resp_mime_types列,此列内容大致就是类似于content-type,可以通过这个知道可执行文件的是哪一条
但是实际上,所有的http协议中的User-agent头在此次演示环境都是一样的
在这里插入图片描述所以此题的答案是Wget

Q8

攻击者下载多少个文件来执行恶意软件安装?

这里继续接上题,这里其实我是没明白什么意思,然后偷窥了一下别人的,因为这里面下载的其实都是bmp镜像,按照我的理解是下载了多少个就应该是几个,但是实际上答案是3个

在这里插入图片描述
不过我用wireshark看了一下下载的东西,就明白为什么是3个了
在这里插入图片描述在这里插入图片描述

Q9

恶意软件 MD5 哈希是什么?
这里推荐一个面安装的工具,NetworkMiner ,该工具可以直接分析流量包下载的文件的详细信息,或者也可以使用wireshark的导出功能进行单独计算
在这里插入图片描述
其实笔者也不确定这三个究竟哪一个文件才是问题所在,但是可以挨个试一下
在这里插入图片描述
当然了大家也可以用wireshark进行导出文件,然后自己去计算
在这里插入图片描述

Q10

恶意脚本通过修改什么文件,已达到可以做到自启动的效果?

将三个文件全部导出来后,查看文件内容
首先将文件从wireshark导出,但是导出来的东西是不能直接查看的(是二进制文件),所以需要使用strings工具进行转化

在这里插入图片描述
文件1内容:
在这里插入图片描述
文件2内容:
在这里插入图片描述
文件3内容:
在这里插入图片描述
解析如下:
1.将名为“1”的文件移动到 /var/mail/mail,并为该文件添加可执行权限。
2.向 /etc/rc.local 文件写入一行命令,以在系统启动时自动运行 /var/mail/mail 并将其输出的进程 ID 记录到 /proc/dmesg 中。这会导致 mail 进程在系统启动时自动运行,并且其进程 ID 可以从 /proc/dmesg 中获取。
3.使用 nohup 命令在后台运行 /var/mail/mail,并将其输出重定向到 /dev/null(即不会输出任何信息)。
4.将名为 “2” 的文件移动到 /lib/modules/uname -r/sysmod.ko,其中 uname -r 将被替换为当前内核的版本号。然后通过运行 depmod -a 命令更新模块依赖关系。
5.将 “sysmod” 字符串添加到 /etc/modules 文件中,以在系统启动时自动加载 sysmod 模块。
6.使用 modprobe 命令加载 sysmod 模块。
7.等待 1 秒钟,然后将 mail 进程的进程 ID 记录到 /proc/dmesg 中。
8.最后,删除名为“3”的文件。
所以此题答案为 /etc/rc.local

Q11

恶意软件将本地文件保存在什么位置?
根据上述分析,恶意软件将保存在 如下位置
/var/mail/

Q12

ps.log缺少什么进程?

在这里插入图片描述
题意其实是在说,有一个进程隐藏了,我们需要知道是谁隐藏了。翻了翻ps.log文件,发现少了 /var/mail/mail 进程,因为该进程会自启,但是在ps.log里没出来
使用idea查看2文件,只看到了隐藏进程,但是看不出来是啥引起的
在这里插入图片描述

Q13

用于从 ps.log 中删除此信息的主文件是什么?

mv 2 /lib/modules/`uname -r`/sysmod.ko
depmod -a
echo "sysmod" >> /etc/modules
modprobe sysmod
sleep 1
pidof mail > /proc/dmesg
rm 3

从这一部门可以看出,该脚本利用sysmod.ko 删除文件

Q14

在 Main 函数中,是什么函数使目标机器向恶意服务器进行请求?

使用idea打开文件1,发现混淆了,而后翻垃圾看到用的upx压缩
在这里插入图片描述
可以使用工具查壳
在这里插入图片描述
upx.exe –o 别名 –d 现名 进行脱壳
在这里插入图片描述
脱壳后的文件为11 ,使用ida打开,可以直接看到主main函数了
在这里插入图片描述
我们简单解读一下
这个伪代码片段是一个 C 语言程序的主函数,接受命令行参数并使用它们来生成密钥。然后,它循环请求文件、打开文件、读取文件、解密文件和处理文件,直到成功处理了一个文件为止。
在 while 循环中,程序会递增 v9 直到等于 4,然后重置为 0。这个变量用于轮流访问地址数组中的元素。
如果成功处理了一个文件,程序将返回 1。否则,程序将等待 1 秒钟然后重新开始循环。

在这里插入图片描述
我们通过前面的题推断,这个恶意文件会写入到/var/mail里面,所以我们跟进requestFile这个函数
在这里插入图片描述
该函数的主要作用是从网上下载文件并保存到本地。在下载前,该函数使用了encode和lookupMod函数来获取当前索引所对应的模块,并将其作为参数拼接到wget命令中。然后,该函数调用sprintf函数生成一个字符串s,其中包含了wget命令以及一些其他参数。生成的字符串s将被用于执行一个shell命令。
该函数使用系统命令wget在后台执行该字符串s所表示的命令,并将输出结果返回给程序。然后,该函数关闭了由popen打开的管道,并返回一个值。
最后,该函数在函数返回之前还进行了一些堆栈操作,确保返回时堆栈指针与进入该函数时相同
所以此题的答案就是requestFile

Q15

恶意软件通信的其中一个 IP 以 17 开头。提供完整的 IP
在这里插入图片描述
currentIndex 变量可能是一个索引值,用于访问 lookupFile() 返回的字符串数组中的特定元素。然后,将 /var/mail/ 字符串和字符串数组中的特定元素连接起来,形成最终的字符串。这个字符串可能是用于打开一个特定的邮件文件。
所以我们跟进lookupFile函数里面的currentIndex 变量
在这里插入图片描述

Q16

恶意软件从外部服务器请求了多少个文件?

这里直接使用wireshark筛选http流量
在这里插入图片描述
数 image/bmp就可以,一共是9个

Q17

恶意软件从攻击者服务器接收的命令是什么?格式:按字母顺序以逗号分隔

这个我是真没做出来

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

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

相关文章

卫星定位北斗芯片AT6558一款高性能BDS/GNSS多模卫星导航接收机SOC单芯片

1 芯片简介 AT6558R是一款高性能BDS/GNSS多模卫星导航接收机SOC单芯片,片上集成射频前端, 数字基带处理器,32位的RISCCPU,电源管理功能。 芯片支持多种卫星导航系统,包括中国的北斗卫星导航系统BDS,美国的GPS,俄罗斯 的…

Mysql DDL执行方式-pt-osc介绍 | 京东云技术团队

1 引言 大家好,接着上次和大家一起学习了《MySQL DDL执行方式-Online DDL介绍》,那么今天接着和大家一起学习另一种MySQL DDL执行方式之pt-soc。 在MySQL使用过程中,根据业务的需求对表结构进行变更是个普遍的运维操作,这些称为…

elasticsearch分词,排序,分页,高亮简单示例

目录 1. 创建ES实体2. 创建查询实体3. 查询方法实现3.1 总体代码3.2 构建查询条件3.2.1 关键词分词 3.3 高亮处理4.总体查询代码 记,写一个简单的es分词demo,es版本6.8.12 如果使用es7有些方法可能会有所改变,请参考7的文档 es安装教程:http:…

SUSE系统上安装HANA

一:安装SUSE操作系统 1.1 准备安装镜像 SLE-15-SP1-安装程序-DVD-x86_64-GM-DVD1 SLE-15-SP1-软件包-x86_64-GM-DVD1 SAP HANA安装文件 IMDB_SERVER20_032_0-80002031.SAR 1.2 引导系统 1.3 选择要安装的产品 SUSE Linux Enterprise Server for SAP Applications 15 SP…

Stable Diffusion教程(5) - 文生图教程

配套视频教程: https://v.douyin.com/UyHNfYG/ 文生图界面标注如下 1 提示词和反向提示词 提示词内输入的东西就是你想要画的东西,反向提示词内输入的就是你不想要画的东西 提示框内只能输入英文,所有符号都要使用英文半角,词语…

企业级信息系统开发讲课笔记4.5 掌握Spring Boot多环境配置

文章目录 零、学习目标一、项目进行多环境配置的必要性二、使用Profile文件进行多环境配置(一)创建Spring Boot项目(二)创建多环境配置文件1、全局配置文件改名2、模拟开发环境3、模拟测试环境4、模拟生产环境 (三&…

Unity基础 音频组件以及音频播放

在游戏开发中,声音是一个重要的环节。Unity中的声音组件可以帮助开发者轻松地控制游戏中音频的播放、音量、循环等属性,从而实现更好的游戏体验。本文将详细介绍Unity声音组件的相关概念和技术,以及其在游戏、影视等领域的广泛应用和发展前景…

银行联行号-联行号api接口-联行号数据源

接口地址: https://登录后显示/api/180/348(支持:http/https) 数据源:https://www.wapi.cn/source/8.html 网站地址:https://www.wapi.cn 返回格式:json,xml 请求方式:GET,POST 请求说明: 银行联行号-联行…

数据集:T-Drive(北京出租车轨迹数据)

1 数据来源 T-Drive trajectory data sample - Microsoft Research 2 数据介绍 数据集包含了2008年2月2日至2月8日期间在北京市内的10,357辆出租车的GPS轨迹。总共包含约1500万个GPS点,轨迹总里程达到了900万公里。 图1显示了两个连续点之间的时间间隔和距离间隔…

Apache 配置和应用

目录 构建虚拟 Web 主机 Options指令解释 Options指令常用选项 AllowOverride指令解释: 地址限制策略: httpd服务支持的虚拟主机类型包括以下三种: 基于域名的虚拟主机 1.为虚拟主机提供域名解析 2.为虚拟主机准备网页文档 3.添加虚拟…

【服务器】springboot实现HTTP服务监听

文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…

Mysql 异常,“Cause: com.mysql.cj.jdbc.exceptions.MySQLTimeoutException”

Cause: com.mysql.cj.jdbc.exceptions.MySQLTimeoutException: Statement cancelled due to timeout or client request 简言:这种异常从字面翻译过来:mysql 请求链接超时,具体超时是什么原因导致的,可以根据情况分析下。 异常详…

【黄啊码】PHP商城中的积分任务系统实现

大家好,我是黄啊码,前几天有位小伙伴问我,商城中的任务系统是怎么实现的? 积分作为一种营销手段,被广泛运用于线上/线下的产品中,以此来增加用户对于产品的粘性。比如天猫积分可以用来兑换商品&#xff0c…

uni-app通过vue.config.js在项目中配置跨域代理

其实这个 如果你用nginx去配肯定再好不过 不过 一般大家也都不想把开发环境弄那么复杂 最好还是在项目中配置 那么 我们选择项目跟目录右键 选择 使用命令行窗口打开所在目录 在新弹出的命令行中引入依赖 npm install http-proxy-middleware --save-dev然后我们的依赖就进来…

【通信接口】CAN总线协议

目录 一、什么是CAN 1、CAN 的概念 2、节点构成(CAN 总线通信模型) 3、差分信号(电平特性) 4、CAN 总线的特点 二、CAN 总线协议的通信过程 1、发送过程 2、接收过程 3、概括 三、CAN 通信帧的分类 一、什么是CAN 1、C…

易基因:全基因组ChIP-seq分析揭示细菌转录因子PhoB的基因内结合位点|mBio

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 细菌编码许多转录因子(transcription factor,TF),这些转录因子通过与启动子周围的DNA结合并调控RNA聚合酶(RNAP)全…

微服务架构打造的供应链系统、采购配送系统,支持SaaS模式

一、开源项目简介 haohan-scm 介绍 基于pig微服务架构打造 供应链系统,采购配送系统。为客户提供仓储管理、订单管理、打单、货源采购、分拣、配送等系统功能。 二、开源协议 使用AGPL-3.0开源协议 三、界面展示 系统截图 四、功能概述 基于pig微服务架构打…

电脑重装系统需要多长的时间

电脑重装系统是一个涉及多个步骤和因素的过程,所需的时间会因个体差异和系统配置而异。本文将解析电脑重装系统所需的时间,并提供一些因素和建议,帮助您对整个过程有一个准确的预期。 工具/原料: 系统版本:windows8系…

c语言的预处理和编译

预处理 文件包含 当预处理器发现#include指令时,会查看后面的文件名并把文件的内容包含到当前文件中 两种写法 尖括号:引用的是编译器的库路径里面的头文件。 双引号:引用的是程序目录中相对路径中的头文件,如果找不到再去上面…

【redis基础】事务|管道|发布订阅

大家好~这里是redis系列文章之《【redis基础】事务|管道|发布订阅》上一篇文章:redis持久化【RDBAOF】持久化双雄_努力努力再努力mlx的博客-CSDN博客 目录 事务 概念 作用 数据库事务vs redis事务 常用指令 情况1:正常执行 情况2:放弃…