溯源取证-Linux内存取证 中难度篇

news2024/11/17 1:57:53

原谅我这么晚才出来文章,因为最近忙着录课,至于为啥没有基础篇,是因为靶场里没看见,哈哈

这个也是研究了好几个晚上才出来的东西,此处场景为linux环境下的rootkit病毒,我们通过这篇文章可以通过内存取证发现rootkit病毒相关的知识,我个人觉得还是挺实用的,比较linux的rootkit病毒在不借助工具的前提下是不太好发现的

使用工具:
volatility_2.6_lin64_standalone

环境:
kali linux
python 2.7

需要着重注意的是,此次测试环境芮然依然是kali linux,但是使用的volatility_2.6工具不再是集成工具,而是python脚本了,大家需要重新下载或者是获取此工具

1.机器上安装的 CentOS 版本是什么?

strings  dump.mem| grep -i  "Linux release"

在这里插入图片描述
或者直接解压文件
在这里插入图片描述
在这里插入图片描述
链接: https://forums.centos.org/viewtopic.php?t=74194
在这里插入图片描述

2.在 bash 历史记录中有一个命令包含一条奇怪的消息。你能读懂吗?

此次我们需要使用 python版本的脚本,集成式的脚本不太适用于linux环境,我们首先看一下集成式的volatility_2.6_lin64_standalone工具,里面是没有linux的环境的

./volatility_2.6_lin64_standalone --info 

在这里插入图片描述
我们看一下python脚本形式的,忽略报错即可

python2 vol.py --info   

在这里插入图片描述
所以我们需要使用python格式的脚本进行实验,环境为python2.7

 python2 vol.py -f ../c73-EZDump/dump.mem  --profile=LinuxCentos7_3_10_1062x64 linux_bash

在这里插入图片描述
我们直接进行base64编码转换即可

echo 'c2hrQ1RGe2wzdHNfc3Q0cnRfdGgzXzFudjNzdF83NWNjNTU0NzZmM2RmZTE2MjlhYzYwfQo=' | base64 -d

在这里插入图片描述

3.可疑进程的 PID 是什么?

python2 vol.py -f ../c73-EZDump/dump.mem  --profile=LinuxCentos7_3_10_1062x64 linux_psaux 

在这里插入图片描述
很明显,该pid进程执行了个nc的脚本,该命令是用来链接肉鸡用的

4.攻击者下载了后门程序以获得持久性。这个后门隐藏的信息是什么?

 python2 vol.py -f ../c73-EZDump/dump.mem  --profile=LinuxCentos7_3_10_1062x64 linux_bash  

我们回到问题2,会发现,历史命令中,有一条向github下载东西的指令
在这里插入图片描述
但是我们直接使用浏览器访问github,发现该文件其实就是一个普通的备份工具
在这里插入图片描述
首先检查用户是否已 root 身份运行脚本,如果不是,则提示用户需要 root 权限才能进行备份操作。
然后读取用户输入的选择,选择备份的方式 (生成新 Snapshot、使用最近 Snapshot 或使用最近 Diff 文件)。
如果用户没有提供任何选择,则提示用户并提供备份选项。
如果用户选择生成新 Snapshot,则要求用户指定要备份的目录,并使用 app.snapshot.generateSnapshot() 函数生成新的 Snapshot。
如果用户选择使用最近 Snapshot,则要求用户指定要备份的目录,并使用 app.snapshot.getLast() 函数获取最近生成的 Snapshot。
如果用户选择使用最近 Diff 文件,则要求用户指定要备份的目录,并使用 app.compare.getLast() 函数获取最近生成的 Diff 文件。
如果用户选择使用 Diff 文件进行备份,则使用 app.backup.copyFiles() 函数将 Diff 文件备份到指定的目录中。
最后,程序会打印出备份程序已停止的提示信息。
而后我查看了一下 …/app/snapshot.py 文件和 …/app/compare.py 文件,没发现任何端倪
在这里插入图片描述
似乎没有什么问题的样子
问题就在这了,如果使用git命令下载完整脚本,snapshot内容如下

git clone https://github.com/tw0phi/PythonBackup

在这里插入图片描述
在这里插入图片描述
和明显,直接访问github是看不到该隐藏内容的,实际上该脚本并不是什么恶意文件,只不过这个链接是我们解题需要用到的罢了

curl https://pastebin.com/raw/nQwMKjtZ 

在这里插入图片描述
这次可以看见,该脚本其实是执行 ncat的命令了

echo c2hrQ1RGe3RoNHRfdzRzXzRfZHVtYl9iNGNrZDAwcl84NjAzM2MxOWUzZjM5MzE1YzAwZGNhfQo= | base64 -d

解析base64编码内容,获得flag
在这里插入图片描述

5.攻击者的 IP 地址和目标计算机上的本地端口是什么?

python2 vol.py -f ../c73-EZDump/dump.mem  --profile=LinuxCentos7_3_10_1062x64 linux_netstat

在这里插入图片描述
结果太多了,我们可以过滤一下

python2 vol.py -f ../c73-EZDump/dump.mem  --profile=LinuxCentos7_3_10_1062x64 linux_netstat | grep "12345"

因为上面我们看到,ncat的命令开启了12345作为通信端口,所以我们可以直接过滤12345作为关键数据
在这里插入图片描述

python2 vol.py -f ../c73-EZDump/dump.mem  --profile=LinuxCentos7_3_10_1062x64 linux_bash_env | grep "192.168.49.1"

为了验证我们的猜想,我们执行该命令,看一下该地址正在使用的其他信息
在这里插入图片描述

6.攻击者执行的第一个命令是什么?

python2 vol.py -f ../c73-EZDump/dump.mem  --profile=LinuxCentos7_3_10_1062x64 linux_psaux 

在这里插入图片描述
我们可以看到,在执行了ncat命令后,执行了python -c import pty; pty.spawn(“/bin/bash”) 该命令,此命令允许生成新的 tty

7.更改用户密码后,我们发现攻击者仍然具有访问权限。你能知道怎么做吗?

接上题,攻击者生成了新的tty之后,访问了/etc/rc.local目录文件,rc.local 是一个脚本,其内容在所有系统服务启动后执行,大家可以理解为计划任务
我们可以直接转储此进程或者是转储他的父进程,这里我转储他的父进程2887
在这里插入图片描述

mkdir 2887  

在这里插入图片描述

python2 vol.py -f ../c73-EZDump/dump.mem  --profile=LinuxCentos7_3_10_1062x64 linux_dump_map --pid 2887 -D 2887/

在这里插入图片描述

生成了很多的文件,我们筛选一下

find 2887 -name "*.vma" -type f -exec file {} \; -exec grep -q "/etc/rc.local" {} \; -print  

首先我们筛选一下 包含/etc/rc.local字符串的文件有哪些
在这里插入图片描述
很显然,只有task.2887.0x7f673821e000.vma文件符合
我们进入该文件,继续检索

strings -a task.2887.0x806000.vma| grep "/etc/rc.local" -A 10 -B 10

在这里插入图片描述
很明显,攻击者在该文件写入了加密密钥,但是没有找到我们需要的东西,我们继续检索

strings -a task.2887.0x806000.vma| grep "ssh-rsa " -A 10 -B 10

在这里插入图片描述
此时我们看到,有一个played条目

shkCTF{rc.l0c4l_1s_funny_be2472cfaeed467ec9cab5b5a38e5fa0}

在这里插入图片描述

8.攻击者使用的 rootkit 的名称是什么?

python2 vol.py -f ../c73-EZDump/dump.mem  --profile=LinuxCentos7_3_10_1062x64 linux_dmesg | grep "out-of-tree" -A 5 -B 5

该命令用于提取系统内存信息,通过分析系统内存信息来查看哪一个模块是没有进行系统认证的,通常情况下,rootkit病毒的模块都是没有进行系统认证的
在这里插入图片描述
我们可以看到内核警告,指出加载的 sysemptyrect 模块未经验证,可能会损害内核,即模块不受信任。
然后执行CRC65加密。

python2 vol.py -f ../c73-EZDump/dump.mem  --profile=LinuxCentos7_3_10_1062x64 linux_check_syscall | grep "HOOKED"

我们可以看到其中一个系统调用(系统调用编号 88 是 symlink)被 sysemptyrect 模块拦截,内核也向该模块发出警告
在这里插入图片描述

9.rootkit 使用 crc65 加密,秘钥是什么?

strings -a dump.mem| grep "sysemptyrect" -A 5 -B 5

直接按照该 rootkit的关键字搜索就行

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

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

相关文章

Jmeter测试dubbo服务

1、什么是dubbo接口 Dubbo 接口是阿里巴巴开源的致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案,dubbo框架告别了传统的web service的服务模式,进而改用provider和consumer模式进行服务。为什么是高性能的呢&#xff1f…

制作四个文件启动的镜像

一 环境搭建:vivado2018.3,petalinux2018.3, 1.petalinux环境设置 所使用的编译环境需要使用petalinux这个软件,《第五章Petalinux 的安装》里面的5.1-5.4。有详细的安装过程,按照第五章的顺序把环境搭建好。可以不装…

【PR 基础】新建序列

目录 一、新建序列 二、序列预设 三、设置 一、新建序列 在如下区域点击鼠标右键,选择 新建项目-》序列 或 点击工具栏中的文件-》新建-》序列 二、序列预设 (1)时基:就是指帧速率,也就是每秒播放帧的数量&#xf…

iOS Matter 操作证书签发方案

在 Matter 配网和操作中,为了信息交互的安全,在配网时,Commissioner自身需要完整的证书,同时需要向设备安装操作证书。 Matter 证书包含: RCA: 根证书 ICA: 中间证书,可选 NOC: 操作证书(注意有以下两种…

人工智能的前沿信息获取之使用文献数据库

人工智能的知识更新迭代非常迅速,因此对人工智能前沿的跟踪非常必要。本文主要介绍了使用文献数据库获取人工智能前沿信息的方法。 文献数据库是检索和下载论文的主要工具,对文献进行检索和下载的技巧在本科公共基础课《文献检索》或《信息检索》等类似…

家庭智能触摸面板开关一Homekit智能

触摸开关,即通过触摸方式控制的墙壁开关,其感官场景如同我们的触屏手机,只需手指轻轻一点即可达到控制电器的目的,随着人们生活品质的提高,触摸开关将逐渐将换代传统机械按键开关。 触摸开关控制原理 触摸开关我们把…

【ESP-IDF】介绍NVS

ESP-IDF是一款由乐鑫科技(Espressif Systems)开发的面向ESP32和ESP32-S系列芯片的开发框架,NVS(Non-Volatile Storage)是其中的一项功能。 NVS是一种用于在嵌入式系统中保存持久化数据的键值存储库。在ESP-IDF中&#…

虚拟化技术 — SR-IOV 单根 I/O 虚拟化

目录 文章目录 目录SR-IOVSR-IOV VEBSR-IOV VEPASR-IOV Multi-ChannelSR-IOV OvSSR-IOV 的应用使能 SR-IOV VFs挂在 VF 到 KVM 虚拟机中SR-IOV 的 NUMA 亲和性VF 的网络配置VFs Bonding SR-IOV 虚拟机的热迁移问题 SR-IOV 传统的 I/O 虚拟化方案需要 VMM 来捕获和模拟 VM 的 I…

400左右蓝牙耳机什么牌子音质好?400左右的无线蓝牙耳机推荐

过去几年苹果的AirPods深受大家欢迎,但要论最佳耳机,还要考虑佩戴类型,功能上又分降噪水平,甚至价格上也要实惠,毕竟对于不想太高预算来获得出色音质和舒适度的人来说,这也是他们心中的"最佳"产品…

Kubernetes那点事儿——调度策略

Kubernetes那点事儿——调度策略 前言一、静态Pod二、nodeSelector 节点选择器三、nodeName四、taint污点五、tolerations污点容忍六、容器资源限制七、nodeAffinity节点亲和性 前言 Kubernetes的强大之处离不开它的调度系统,它为Pod调度到某个Node上提供了多种方式…

Linux学习_设备树实现中断

Linux学习_设备树实现中断 中断层级结构设备树_中断控制器设备树_中断子节点驱动程序获取GPIO获取中断号申请中断中断处理函数 中断层级结构 就硬件而言,中断控制器指的就是GIC,但是实际在软件上,图中的GPIO等我们也称之为中断控制器。 外部…

[PyTorch]预训练权重的转换

众所周知,使用大量数据预训练后的骨干网络可以提升整个模型的泛化能力,而我们如果将网络的骨干网络替换后则不能直接使用原来的权重。这个项目的作用是在你替换骨干网络后可以将网络预训练权重一并“偷”过来。 下给结论:将DeeplabV3的骨干网…

详解 TCP(三次握手 + 四次挥手 + 滑动窗口 + 拥塞控制 + 和 UDP 做对比)

文章目录 1. TCP / IP五层模型和OSI七层模型1)OSI七层模型2)TCP/IP 五层模型 2. TCP和UDP1) TCP首部结构2)UDP首部结构3)TCP和UDP的区别2.2 UDP和TCP对应的应用场景 3. TCP 建立连接时的三次握手1)为什么需…

虚拟专用网VPN与网络地址转换NAT技术

1、专用网络或本地互联网 一方面现在随着个人电脑的增大,IP地址十分紧缺,所以如果为每一台电脑都分配个一个全球IP地址(唯一的)不太现实;另外一方面,很多机构(比如大公司)往往只需要…

阿里正式加入ChatGPT战局,“通义千问”上线后表现如何?

ChatGPT发布后,数月间全世界都对AI的能力有了新的认知。 ChatGPT掀起的战局,现在又多了一位选手了! 阿里版类ChatGPT突然官宣正式对外开放企业邀测,由达摩院开发,名为“通义千问” 顾名思义,阿里正式加入Ch…

java实现钉钉自定义机器人发送消息

钉钉作为现在很多企业的移动办公平台,具有很多很强大的功能,可以帮助我们更加及时的发现问题,解决问题,今天我们做一个java实现钉钉自定义机器发送消息的功能。 首先,先放出官方文档地址:https://open.ding…

GIS在城市规划中的作用与应用

山海鲸可视化-GIS影像 简介 GIS(地理信息系统)是一种用于捕获、存储、管理、分析和显示地理空间数据的技术和工具。GIS可以用于各种领域,包括城市规划、土地管理、自然资源管理、公共安全、环境保护、气象预报、交通运输、农业、地质勘探、…

支持多模型数据分析探索的存算分离湖仓一体架构解析(上)

当企业需要建设独立的数据仓库系统来支撑BI和业务分析业务时,有了“数据湖数据仓库”的混合架构。但混合架构带来了更高的建设成本、管理成本和业务开发成本。随着大数据技术的发展,通过在数据湖层增加分布式事务、元数据管理、极致的SQL性能、SQL和数据…

Python实现哈里斯鹰优化算法(HHO)优化Catboost分类模型(CatBoostClassifier算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 2019年Heidari等人提出哈里斯鹰优化算法(Harris Hawk Optimization, HHO),该算法有较强的全…

BI数据可视化报表模板分享,附免费下载方法

奥威BI软件上既有大量单张下载套用的BI数据可视化报表模板,又有以通用标准方案、行业通用方案为基础打造的标准化BI数据可视化报表模板套装,下载套用即可完成整个企业的BI数据可视化分析。这些BI数据可视化报表模板的效果如何,怎么下载&#…