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

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

这个也是研究了好几个晚上才出来的东西,此处场景为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.mfbz.cn/a/12565.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于广泛数据增强的新型白质束ONE-SHOT分割

文章目录 One-Shot Segmentation of Novel White Matter Tracts via Extensive Data Augmentation摘要方法One-Shot分割的广泛数据增强 实验结果 One-Shot Segmentation of Novel White Matter Tracts via Extensive Data Augmentation 摘要 探索了新WM束的One-Shot分割问题由…

揭秘阿里新大招:大模型只是前菜

技术的代际变革往往对商业格局产生深远影响。眼下,随着产业各界对大模型的投入布局加深,一个业界共识逐渐诞生:大模型正在改变云生态,将为云计算行业带来新的奇点。 在过去的一段时间里,市场研究机构IDC在2022年底的预…

瑞吉外卖项目——读写分离

读写分离 读和写所有压力都由一台数据库承担,压力大数据库服务器磁盘损坏则数据丢失,单点故障 Mysql主从复制 介绍 MySQL主从复制是一个异步的复制过程,底层是基于Nysql数据库自带的二进制日志功能。 就是一台或多台MysQL数据库&#xf…

偶数科技发布实时湖仓数据平台 Skylab 5.0

2023 年 4 月 11 日, 偶数发布了最新的实时湖仓数据平台 Skylab 5.0,平台各个组件进行了全面升级。新版 Skylab 的发布标志着偶数科技具有从数据存储、计算、管理到分析、应用和 AI 能力的完整的数据管理生态闭环,帮助用户实现批流一体、实时…

LeetCode LCP 04. 覆盖【二分图最大匹配,匈牙利算法】困难

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

[Java]Session机制

什么是Session Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需…

springboot整合redis

一、总体概述 1、redis配置文件 redis.conf配置文件,改完后确保生效,记得重启,记得重启 默认daemonize no 改为 daemonize yes 默认protected-mode yes 改为 protected-mode no 默认bind 127.0.0.1 改为 直接注释掉(默认bind 127.0.0.1只能…

ApplicationContextAware接口

一、ApplicationContextAware接口的基本介绍 public interface ApplicationContextAware extends Aware {void setApplicationContext(ApplicationContext applicationContext) throws BeansException;}在Spring/SpringMVC中,我们拿到IOC容器无非有三种方式&#x…

HCIE-Cloud Computing LAB常见问题收集谱

第一题:FusionCompute 扩容CNA与对接共享存储 FusionCompute:关联存储资源失败 物理阵列里面太多没清理的了。然后去排查问题,存储地址也正确,管理接口也互联,IQN号也修改了,结果是启动器快满了 排查网…

Javaweb基础配置模板(mybatis+javaweb)

1.大纲规划图 本配置涉及的技术:mybatis,javaweb,json转换&#xff0c;分页查询等 2.导入相关的配置文件pom.xml 2.1 依赖文件 <dependencies> <!-- 测试依赖--><dependency><groupId>junit</groupId><artifactId>junit</artifact…

如何把视频里的声音提取出来,4种有效方法学起来

在我们日常生活中&#xff0c;可能会有需要从视频文件中提取音频的情况&#xff0c;比如想要将视频中的歌曲或语音内容提取出来&#xff0c;或者电脑上看视频时&#xff0c;总有一些很有意思的BGM&#xff0c;想录下来或者提取出来单独使用&#xff0c;不过有些小伙伴可能不知道…

[abc复盘] abc297 20230409

[atc复盘] abc297 20230409 一、本周周赛总结A - Double Click1. 题目描述2. 思路分析3. 代码实现 B - chess9601. 题目描述2. 思路分析3. 代码实现 C - PC on the Table1. 题目描述2. 思路分析3. 代码实现 D - Count Subtractions1. 题目描述2. 思路分析3. 代码实现 E - Kth …

AOP通知中获取数据

AOP通知中获取数据 之前我们写AOP仅仅是在原始方法前后追加一些操作&#xff0c;接下来我们要说说AOP中数据相关的内容&#xff0c;我们将从获取参数、获取返回值和获取异常三个方面来研究切入点的相关信息。 获取切入点方法的参数&#xff1a;所有的通知类型都可以获取参数 …

【JSP学习笔记】3.JSP 指令及动作元素

前言 本章介绍JSP的指令和动作元素。 JSP 指令 JSP指令用来设置整个JSP页面相关的属性&#xff0c;如网页的编码方式和脚本语言。 语法格式如下&#xff1a; <% directive attribute"value" %>指令可以有很多个属性&#xff0c;它们以键值对的形式存在&am…

数云融合|新手入门,5分钟秒懂开源

目录 一、开源软件开源领域的两大组织&#xff1a;FSF和OSI 二、开源许可证开源意味着免费吗&#xff1f; 三、开源技术应用领域四、总结 一、开源软件 开源即开放源代码&#xff0c;他的核心是源代码公开&#xff0c;任何人都可以查看、使用、修改和分发。与之相对的是闭源&a…

技术+商业“双轮”驱动,量旋科技加速推进全方位的量子计算解决方案

【中国&#xff0c;深圳】4月14日&#xff0c;在第三个“世界量子日”&#xff0c;以“‘双轮’驱动 加速未来”为主题的量旋科技2023战略发布会在线上举办。 本次发布会&#xff0c;量旋科技全线升级了三大业务线产品&#xff1a;其中重点布局的超导量子计算体系产品&#xf…

DolphinScheduler×T3出行 | 打造车联网一站式数据应用交互体验

点击蓝字 关注我们 用户案例 | T3 出行 业务挑战 作为一家车联网驱动的公司&#xff0c;T3出行汇聚了“人、车、路、云”各端的海量数据。为了承载如此多元化的数据以更好地释放数据价值&#xff0c;T3出行构建了以Apache Hudi为基础的企业级的数据湖&#xff0c;并在此之上搭建…

1 分钟给 Siri 升个级!从智Z变身 ChatSiri!

原文链接&#xff1a;https://forum.laf.run/d/79/17 众所周知&#xff0c;Siri 是一个智 Z&#xff01;那么如果能接入大火的 chatGPT&#xff0c;是不是就会从智 Z 变成人工智能&#xff1f;&#xff01; 众所周知&#xff0c;Laf 是一个集函数、数据库、存储为一体的云开发…

第五章_Redis事务

是什么 官网 能做什么 一个队列中&#xff0c;一次性、顺序性、排他性的执行一系列命令 Redis事务 VS 数据库事务 1 单独的隔离操作 Redis的事务仅仅是保证事务里的操作会被连续独占的执行&#xff0c;redis命令执行是单线程架构&#xff0c;在执行完事务内所有指令前是不可…

消息队列kafka及zookeeper机制

目录 一、zookeeper 1、zookeeper简介 2、zookeeper特点 3、zookeeper工作模式及机制 4、zookeeper应用场景及选举机制 5、zookeeper集群部署 ①实验环境 ②安装zookeeper 二、消息队列kafka 1、为什么要有消息队列 2、使用消息队列的好处 3、kafka简介 4、kafka…