跳转至

T1564-001-linux-隐藏文件和目录

来自ATT&CK的描述

为了防止普通用户误操作更改系统上的特殊文件,大多数操作系统都具有“隐藏”文件的概念。当用户使用GUI浏览文件系统或在命令行上使用普通命令时,这些文件不会显示。用户必须明确要求通过一系列图形用户界面(GUI)提示或命令行查看隐藏文件。例如(windows下的dir /a,linux或MAC下的ls -a命令等)

攻击者可以利用这一点来隐藏系统中任何位置的文件和文件夹,以便持久化并逃避不进行隐藏文件分析的用户或分析师。

linux/mac

用户可以将特定文件标记为隐藏,只需将“.”作为文件或文件夹名称中的第一个字符。默认情况下,以点“.”开头的文件和文件夹无法在Finder应用程序和标准命令行实用程序(如“ls”)中查看。用户必须专门更改设置才能查看这些文件。对于命令行用法,通常会有一个标志来查看所有文件(包括隐藏文件)。要在Finder应用程序中查看这些文件,必须执行以下命令:defaults write com.apple.finder AppleShowAllFiles YES,然后重新启动Finder应用程序。

测试案例

mkdir .xx-a #创建一个隐藏文件夹

mv file to a .file #移动文件到目录a下并修改为隐藏文件

检测日志

bash历史记录

值得注意的是:你可以从一些特定目录路径中查找到隐藏文件/目录,并将其转储到某个位置。提取出可以文件夹并查找恶意隐藏文件。

测试复现

icbc@icbc:/xx$ sudo mkdir .xx-a

icbc@icbc:/xx$ sudo mv 1.sh /xx/.sh

测试留痕

icbc@icbc:/$ history

1 sudo mkdir .xx-a

2 sudo mv 1.sh /xx/.sh

检测规则/思路

splunk规则

index=linux sourcetype=bash_history bash_command="mkdir .*" | table host,user_name,bash_command

index=linux sourcetype=bash_history bash_command="mv ." | table host,user_name,bash_command

建议

值得注意的是:你也可以通过命令直接在问题主机上进行查找,当然,你可以使用白名单来过滤掉linux系统中的标准隐藏文件/目录。这样可以减轻误报。

find_hidden_files.sh

find /home/ -name ".*"
find /home/ -type d -name ".*"
find /home/ -type f -name ".*"

参考推荐

MITRE-ATT&CK-T1564-001

https://attack.mitre.org/techniques/T1564/001/