涉及的镜像文件:
sdb.vhd
uac.tar
ubuntu.20211208.mem
需要利用的工具:
volatility3
volatility2.6.1
FTK/Autopsy
Strings
题干 :
容器是一个Ubuntu Linux 蜜罐,用来观察利用 CVE-2021-41773 的漏洞攻击者想要做什么。
您将看到一个 cron 脚本,用于删除 /tmp 中名为 kinsing 的文件。这是防止这些矿工的一种方式,因此可能会发生更多有趣的事情。作为SOC分析师,请帮忙分析以下问题
0x01 - 问题1
文件 => sdb.vhd
有一个脚本每分钟运行一次以执行清理。文件的名称是什么?
直接用FTK打开磁盘镜像文件,找到计划任务的路径进去看就行
这个 bash 脚本的作用是查找正在运行的进程中包含 "kinsing" 或 "kdevtmp" 字符串,并且进程的可执行文件路径包含 "/tmp" 的进程。然后,它使用 kill -9 来终止这些进程。接着,它更改以 "k" 开头的文件在 /tmp 目录下的所有者为 root,并将这些文件的权限设置为只读(444)他的目的就是杀掉防护进程
0x02 - 问题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
0x03 - 问题3
文件 => sdb.vhd
题目1中的脚本更改某些文件的权限。他们的新权限是什么?
444
0x04 - 问题4
文件 => sdb.vhd
僵尸网络代理文件的 sha256是什么?
这个文件在/tmp 文件夹下,此题有些牵强了,因为光凭借文件的名字没人知道这是个啥,所以这里推荐大家用FTK把磁盘映射搞起来,然后用病毒扫描工具扫一下
0x05 - 问题5
文件 => sdb.vhd Q#4 中的僵尸网络名称是什么?
直接把vt扫描结果放进去就行
Tsunami
0x06 - 问题6
文件 => sdb.vhd
哪个 IP 地址与 题目4中僵尸网络代理文件的创建时间戳匹配?
先看一下代理文件下载时间
然后去阿帕奇日志里找到了东西,这个题其实也有点牵强,但是翻日志确实是应急必须做的
141.135.85.36
0x07 - 问题7
文件 => sdb.vhd
攻击者下载僵尸网络代理使用的URL是什么?
这道题是在error.log里找到的,不知道为什么会出现在错误日志里 http://138.197.206.223:80/wp-content/themes/twentysixteen/dk86
0x08 - 问题8
文件 => sdb.vhd
攻击者下载并执行恶意脚本,随后删除自身,文件的名称是什么?
此题在error.log里看到了,这道题其实到最后我也没做出来,太过于牵强了,简直是大海捞针一样
0x09 - 问题9
文件 => sdb.vhd
攻击者下载了一些 sh 脚本。这些sh文件的名称是什么?
还是看error.log
strings error_log | grep -E '\.sh'
只是不知道为啥会出现在error.log里面 0_cron.sh, 0_linux.sh, ap.sh
0x10 - 问题10
文件 => UAC
两个可疑进程正在从已删除的目录运行。他们的 PID 是什么?
/uac-ApacheWebServer-linux-20211208202503.tar\live_response\process\lsof_-nPl.txt
过滤所有的deleted关键字
6388,20645
0x11 - 问题11
文件 => UAC
与上题第二个 PID 关联的可疑命令行是什么?
/uac-ApacheWebServer-linux-20211208202503.tar\live_response\process\ps_auxwwwf.txt
sh .src.sh
0x12 - 问题12
文件 => UAC
UAC 从 第10道题目的第二个进程收集了一些数据。攻击中使用的远程 IP 地址和远程端口是什么?
/uac-ApacheWebServer-linux-20211208202503.tar\live_response\process\proc\20645\environ.txt
116.202.187.77:56590
0x13 - 问题13
文件 => UAC
哪个用户负责执行 第11题中的命令?
daemon
0x14 - 问题14
文件 => UAC
两个可疑的 shell 进程正在从 tmp 文件夹运行。他们的 PID 是什么?
strings lsof_-nPl.txt | grep '/tmp'
15853,21785
0x15 - 问题15
文件 => ubuntu.20211208.mem
捕获的内存的 MAC 地址是多少?
这里需要使用vol3版本,因为vol2.6.1无论是哪个版本使用imageinfo都是没有任何响应
python vol.py -f ../ubuntu.20211208.mem banner
这里需要定向配置了 这里使用的docker 首先先在系统根路径下把volatility-2.6.1整个拷贝过去
我们需要用的是里面的/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
然后更新容器,安装dwarfdump make zip等命令,同时在modules.c文件加入一句话
MODULE_LICENSE("GPL")
直接在末尾也可以
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
第一次执行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
同时如果不修改modules.c就会报错 全部执行完毕后不报错了
然后去自己物理机的目录就能找到压缩包了
把Ubuntu-azure.zip拷贝到/volatility-2.6.1/volatility/plugins/linux
试着执行一下,成功了,不容易
正常玩法
python2 vol.py -f ubuntu.20211208.mem --profile=LinuxUbuntu-azurex64 linux_ifconfig
当然了,环境配不出来可以strings过滤
strings ubuntu.20211208.mem | grep -E -o '([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})'
0x16 - 问题16
文件 => ubuntu.20211208.mem 来自 Bash 历史记录。攻击者下载了一个 sh 脚本。文件的名称是什么?
正常玩法:
python2 vol.py -f ubuntu.20211208.mem --profile=LinuxUbuntu-azurex64 linux_bash
太多了
python2 vol.py -f ubuntu.20211208.mem --profile=LinuxUbuntu-azurex64 linux_bash | grep -i '\.sh'
unk.sh
同样也可以在FTK工具中利用第一个镜像找到文件
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !