溯源取证-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的关键字搜索就行

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
信息隐藏技术是一种通过在数字媒体嵌入隐藏信息的方式来保护数据安全和隐私的技术。在实际应用,信息隐藏技术被广泛应用于数字水印、隐写术、加密通信等领域。然而,信息隐藏技术如果被恶意利用,也会成为数据泄密的手段之一。 数据泄密是指未经授权的情况下,敏感数据被泄露或传播的行为。数据泄密可能会带来严重的经济和社会损失,因此对数据泄密的溯源取证工作显得尤为重要。信息隐藏技术也可以被应用于数据泄密,攻击者可以通过嵌入隐藏信息的方式将敏感数据传输出去,从而避开安全防范措施。因此,对于新型数据泄密事件,溯源取证工作需要关注信息隐藏技术的应用。 在实际的数据泄密事件,攻击者可能会通过隐写术将敏感信息隐藏在图片、音频、视频等媒体文件,然后通过网络传输的方式将这些媒体文件传输给接收方。通过信息隐藏技术,攻击者可以使得传输的数据更加难以被发现和拦截,从而降低被发现的概率。但是,信息隐藏技术也并非绝对安全,通过新型的数据泄密溯源取证技术,可以追踪到隐藏信息的源头,从而揪出攻击者。 总之,信息隐藏技术在数据安全和隐私保护方面具有广泛的应用,但也需要注意防范其被恶意利用的风险。对于新型数据泄密事件,溯源取证工作需要综合应用各种技术手段,从多个角度入手,全面追踪攻击者行踪和身份,以保证数据安全和隐私保护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值