本文介绍: 此处场景linux环境下的rootkit病毒我们通过这篇文章可以通过内存取证发现rootkit病毒相关的知识,我个人觉得还是挺实用的,比较linuxrootkit病毒在不借助工具的前提下是不太好发现

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

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

使用工具
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的关键字搜索就行

原文地址:https://blog.csdn.net/weixin_48421613/article/details/130135499

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_12181.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注