译者: 林妙倩、戴亦仑 原创翻译作品,如果需要转载请取得翻译作者同意。
数据来源:ATT&CK Matrices
原文: https://attack.mitre.org/techniques/T1156
术语表: /attack/glossary
在打开新 shell 或用户登录时,会在用户的上下文中执行~/.bash_profile
和~/.bashrc
,以便正确设置其环境。
~/.bash_profile
用于登录 shell,而 ~/.bashrc
在交互式非登录 shell 中执行。
这意味着当用户(通过用户名和密码)登录到控制台(本地或通过 SSH 之类的远程)时,在初始命令提示符返回给用户前会执行~/.bash_profile。
在登录之后,每当打开一个新 shell 时,就会执行 ~/.bashrc
。
这允许用户更细粒度地控制何时执行特定命令。
Mac 的 Terminal.app 略有不同,默认情况下,每次打开一个新的终端窗口都会启动登录 shell,因此调用的是~/.bash_profile
而不是~/.bashrc
。
这些文件应该由本地用户写入来配置自己的环境;但是,攻击者也可以向这些文件中插入代码,以便在每次用户登录或打开新的 shell 时获得持久性。
设置这些文件为不可更改且仅允许特定管理员更改,这将限制攻击者轻松创建用户级持久性的能力。
虽然用户可以自定义它们~/.bashrc
和~/.bash_profile
文件,但通常只有特定类型的命令出现在这些文件中。
监视异常命令,如在登录过程中加载用户配置文件时执行未知程序、打开网络套接字或跨网络访问。