Cat-Scale 是由 Joani Green 和 John Rogers 开发的一款 Linux 取证收集工具,旨在应对大规模的调查场景,非常适合进行大规模的安全评估和事件响应工作。最早在 2019 年的 SANS DFIR 峰会上介绍,Cat-Scale 旨在解决在各种 Linux 环境中进行大规模取证调查的需求。这个工具的主要功能是收集重要的取证数据,然后通过自定义的 Logstash 配置将其解析为 ELK (ElasticSearch-Logstash-Kibana) 堆栈格式。这样,分析人员可以更高效地查询和聚合收集的数据,加快对安全事件的检测和响应速度。
Cat-Scale 的主要特点和优势包括:
-
可扩展的数据收集:该工具专为处理大规模 Linux 环境设计,能够同时从多个系统中收集工件。
-
与 ELK 集成:收集到的数据通过 Logstash 处理,使其在 Kibana 中进行可视化和深度分析,从而更高效地管理事件。
-
持续开发:该工具随着威胁形势的发展不断进化,确保与现代网络和威胁的兼容性。
通过使用 Cat-Scale,可以执行全面的安全评估,快速收集相关的取证数据,并大规模分析这些数据,从而更好地保护 Linux 环境。
F-Secure Linux Cat-Scale 脚本是一个使用本机二进制文件从基于 Linux 的主机收集数据的 Bash 脚本。部分数据来自工具的控制台输出,其他则以原始格式归档。数据按照易失性顺序收集,确保以最纯净的形式捕获易失性数据。数据收集完毕后,分析人员可以以文本文件形式查看输出,或使用提供的 Logstash 配置将数据导入 ELK 系统。通过这种方式,分析人员可以在多个不受 EDR 监控的主机上寻找妥协指标,或跟进通过其他手段检测到的可疑活动。
虽然 Cat-Scale 提供了大量取证工件,但其主要目的是为 DFIR 专业人员提供大规模的初步分析输出,以确定攻击的范围,判断主机是否已被攻破。Cat-Scale 的输出可能会回答你关于妥协的绝大多数问题,但它并不能代替正式的取证采集,而是用于支持初步分析,并帮助更有针对性的取证工作。
需要注意的是,实时分析工具本身会留下痕迹,这一点在执行前应予以考虑。
Cat-Scale 在执行时会从 Linux 主机收集各种取证工件,并将它们保存为压缩的 tar.gz 文件。通常,生成的归档文件大小在 200 到 300 MB 之间,使得即使在大规模操作时也能快速上传和下载。
该工具的运行方式十分简单,它优先收集易变的数据(如内存、正在运行的进程、打开的网络连接),然后再收集相对不易变的信息。这确保了关键的、瞬态的取证数据能以最纯粹的形式被捕获。
数据收集完成后,输出结果可以以文本文件格式进行查看,或者通过 Logstash 配置文件将其输入到 ELK 中进行处理。这允许快速分析和在多个系统中寻找可能的入侵线索。
$> chmod +x ./Cat-Scale.sh
$> sudo ./Cat-Scale.sh
包含了一个名为 Extract-Cat-Scale.sh
的 Bash 脚本。此脚本会遍历收集到的数据,将归档文件提取到一个特定的文件夹结构中,方便手动分析或将数据导入到 ELK 中。
上述文件夹包含了系统的实时数据、关键文件和日志数据的集合。从系统收集到的文件将保留其原始名称,而通过运行命令收集到的输出文件将以命令作为文件名,并将相关的命令选项一起添加到文件名中。
我们看个最熟悉的Logs目录文件,
Logs:
此文件夹包含了完整的 /var/log 文件夹副本,以及由运行命令(如 last、utmpdump、w 和 who)生成的各种文本文件。如果你正在调查活动或历史登录、寻找 rootkit 痕迹、特权命令执行或 SSH 活动。
Persistence:
行为人通常会部署某种形式的持久性,以确保他们能够持续访问系统。该文件夹旨在捕获主要持久性技术所触发的集中于一个位置,识别任何异常。
请注意,System_Files 和 User_Files 文件夹中还包含了一些可能被威胁行为者用来安装持久性的原始工件副本。我们选择将这些文件夹单独存放,因为与 System_Info 和 User_Files 相关的集合可能包含多种类型的工件,而根据攻击的性质(如内部威胁或恶意配置更改),调查相关性。
Process_and_Network:
这些数据源在调查恶意软件活动时都非常有用。
-
processes-axwwSo.txt
: 这个文件包含了所有正在运行的进程的快照,并且带有特定的标志(例如,显示进程的详细信息)。它有助于识别不寻常或意外的进程,这些进程可能是恶意软件的一部分。 -
processhashes.txt
: 包含了当时运行的进程二进制文件的SHA1哈希值。这对于将正在运行的进程与已知的恶意软件哈希值进行比较,或者进行进一步调查是非常有用的。 -
process-file-links.txt
: 显示了与每个进程相关的文件描述符。这有助于识别一个进程正在使用哪些文件,这可能会揭示隐藏或可疑的文件。 -
process-map_file-link-hashes.txt
: 包含了内存映射文件的哈希值。这些文件可能由恶意软件使用,以避免被检测到,因为它们可能不在磁盘上存在。 -
ss-anepo
: 提供了网络套接字的信息。它对于识别网络连接和开放端口非常有用,这些连接和端口可能与恶意软件的通信有关。
System_Info:
关键领域的详细说明:
-
系统信息:
-
时区:确定系统的本地时间设置,对于将日志和事件与其他数据源进行关联非常有用。
-
文件系统:指示使用的文件系统类型(例如,ext4、NTFS),这可能会影响文件的存储和访问方式。
-
操作系统版本:帮助识别潜在的漏洞或特定配置,这可能与系统的安全状况相关。
-
关键配置文件:
-
/etc/passwd
:列出系统上的用户帐户。 -
/etc/shadow
:包含哈希密码和附加的用户帐户信息。 -
/etc/hosts
:提供主机名和IP地址的信息。 -
/etc/rc.local
:可用于在启动时执行命令,攻击者可能利用它进行持久化。 -
配置文件(
/etc
文件夹):这些文件通常包含系统设置和用户信息。它们可能包括: -
这些文件可以揭示有关系统用户和配置的重要细节,攻击者可能利用或修改这些信息进行持久化。
-
/etc
文件夹中最近90天内修改的文件: -
不寻常的修改:不常更新的文件发生变化可能是被攻击的迹象。
-
新增或更改的文件:最近添加或修改的文件可能与恶意软件持久化机制或未经授权的更改有关。
-
在稳定的服务器环境中,
/etc
文件夹中的配置文件理应不经常更改。检查最近90天内修改的文件可以快速发现任何最近的变化,这可能表明篡改或恶意活动。需要注意:
User_Files:
这个文件夹包含了 get_hidden_home_files
函数的输出,该函数简单地归档了用户文件夹根目录下的所有隐藏文件。正如大多数调查人员所知,这些文件通常包括各种应用程序的命令历史记录以及用户特定的应用程序配置。
具体来说,这些隐藏文件可能包括:
-
命令历史记录:如
.bash_history
、.zsh_history
等,这些文件记录了用户在终端中输入的命令,可能揭示了用户的操作习惯或未授权的操作。 -
应用程序配置:如
.vimrc
、.gitconfig
等,包含了用户特定的配置设置,这可能会显示用户的工作环境或潜在的恶意修改。 -
其他隐藏文件:例如,应用程序生成的缓存文件、日志文件等,这些也可能包含有关用户行为的有用信息。
Misc:
文件夹内容及其用途:
-
pot-webshell-first-1000.txt
:该文件包含了所有扩展名为.jsp
、.asp
、.aspx
和.php
的文件的前1000行。这在处理倾向于使用网页壳的威胁行为者时特别有用。在大规模网络中,例如拥有200多个Linux主机的网络,可以使用YARA规则快速扫描这些数据以识别网页壳的特征。 -
full-timeline.csv
:该文件以CSV格式包含了文件和目录的各种时间戳和元数据。类似于Windows MFT分析,通过审查这些时间戳,分析人员可以识别特定时间的修改和访问模式。尽管使用文件系统调试工具提取创建时间的过程效率低下且需要额外的脚本处理,但使用find
命令收集其他时间戳的数据已足够进行初步分析。 -
检查 /etc/ 文件夹中的最近修改文件:这个文件夹有助于识别配置文件的最近更改。在稳定的服务器环境中,
/etc/
文件理应不频繁更改。监控最近90天的修改可以揭示潜在的未经授权的更改或篡改。 -
在这个文件夹中另一个值得注意的文件是
exec-perm-files.txt
,它收集了所有标记为可执行的文件的SHA1哈希值。这允许你快速在你的威胁情报平台中查询这些哈希,以识别潜在的威胁。
下载地址:https://github.com/WithSecureLabs/LinuxCatScale
原文始发于微信公众号(MicroPest):Linux取证收集工具
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论