T1222-001-win-文件权限修改
来自ATT&CK的描述
文件和目录权限通常由文件或目录所有者指定的任意访问控制列表(DACL)管理。文件和目录DACL的实现因平台而异,但通常会明确指定它们,以便用户/组可以执行操作,例如读取,写入,执行等。
攻击者可以修改文件或目录的权限或属性,以逃避预期的DACL。修改可能包括更改特定的访问权限,这可能需要获取文件或目录的所有权或提升的权限(例如Administrator/root),具体取决于文件或目录的现有权限以启用恶意活动,例如修改,替换或删除特定文件目录。特定文件和目录修改可能是许多技术所必需的步骤,例如,通过可访问性功能,登录脚本建立持久性,或污染、劫持其他工具二进制配置文件。
测试案例
Icacls 是一种命令行工具,它显示或修改指定文件上的随机访问控制列表 (DACL),并将存储的 DACL 应用于指定目录中的文件。Icacls.exe替换了Cacls.exe 工具用于查看和编辑DACL。ICACLS是Windows Server 2003 SP2中CACLS工具的升级版本,可用于从恢复控制台重设文件中的帐户控制列表 (ACL) 以及备份ACL。与CACLS不同的是,ICACLS可以正确地传送对继承的ACL的更改和创建。有ICACLS的使用及命令的更多信息,可以通过在命令提示符下运行“icacls /?”进行访问。这里的I应该是Improved upgrade of cacls.
检测日志
windows security
windows sysmon
测试复现
命令行工具,你需要在cmd或powershell中调用它。
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Users\Administrator>icacls
ICACLS name /save aclfile [/T] [/C] [/L] [/Q]
将匹配名称的文件和文件夹的 DACL 存储到 aclfile 中以便将来与
/restore 一起使用。请注意,未保存 SACL、所有者或完整性标签。
ICACLS directory [/substitute SidOld SidNew [...]] /restore aclfile
[/C] [/L] [/Q]
将存储的 DACL 应用于目录中的文件。
ICACLS name /setowner user [/T] [/C] [/L] [/Q]
更改所有匹配名称的所有者。该选项不会强制更改所有身份;
使用 takeown.exe 实用程序可实现该目的。
ICACLS name /findsid Sid [/T] [/C] [/L] [/Q]
查找包含显式提及 SID 的 ACL 的所有匹配名称。
ICACLS name /verify [/T] [/C] [/L] [/Q]
查找其 ACL 不规范或长度与 ACE 计数不一致的所有文件。
ICACLS name /reset [/T] [/C] [/L] [/Q]
为所有匹配文件使用默认继承的 ACL 替换 ACL。
ICACLS name [/grant[:r] Sid:perm[...]]
[/deny Sid:perm [...]]
[/remove[:g|:d]] Sid[...]] [/T] [/C] [/L]
[/setintegritylevel Level:policy[...]]
/grant[:r] Sid:perm 授予指定的用户访问权限。如果使用 :r,
这些权限将替换以前授予的所有显式权限。
如果不使用 :r,这些权限将添加到以前授予的所有显式权限。
/deny Sid:perm 显式拒绝指定的用户访问权限。
将为列出的权限添加显式拒绝 ACE,
并删除所有显式授予的权限中的相同权限。
/remove[:[g|d]] Sid 删除 ACL 中所有出现的 SID。使用
:g,将删除授予该 SID 的所有权限。使用
:d,将删除拒绝该 SID 的所有权限。
/setintegritylevel [(CI)(OI)] 级别将完整性 ACE 显式添加到所有
匹配文件。要指定的级别为以下级别之一:
L[ow]
M[edium]
H[igh]
完整性 ACE 的继承选项可以优先于级别,但只应用于
目录。
/inheritance:e|d|r
e - 启用继承
d - 禁用继承并复制 ACE
r - 删除所有继承的 ACE
注意:
Sid 可以采用数字格式或友好的名称格式。如果给定数字格式,
那么请在 SID 的开头添加一个 *。</p> <p> /T 指示在以该名称指定的目录下的所有匹配文件/目录上
执行此操作。ICACLS 保留 ACE 项的规范顺序:
显式拒绝
显式授予
继承的拒绝
继承的授予
perm 是权限掩码,可以两种格式之一指定:
简单权限序列:
N - 无访问权限
F - 完全访问权限
M - 修改权限
RX - 读取和执行权限
R - 只读权限
W - 只写权限
D - 删除权限
在括号中以逗号分隔的特定权限列表:
DE - 删除
RC - 读取控制
WDAC - 写入 DAC
WO - 写入所有者
S - 同步
AS - 访问系统安全性
MA - 允许的最大值
GR - 一般性读取
GW - 一般性写入
GE - 一般性执行
GA - 全为一般性
RD - 读取数据/列出目录
WD - 写入数据/添加文件
AD - 附加数据/添加子目录
REA - 读取扩展属性
WEA - 写入扩展属性
X - 执行/遍历
DC - 删除子项
RA - 读取属性
WA - 写入属性
继承权限可以优先于每种格式,但只应用于
目录:
(OI) - 对象继承
(CI) - 容器继承
(IO) - 仅继承
(NP) - 不传播继承
(I) - 从父容器继承的权限
示例:
icacls c:\windows\* /save AclFile /T
- 将 c:\windows 及其子目录下所有文件的
ACL 保存到 AclFile。
icacls c:\windows\ /restore AclFile
- 将还原 c:\windows 及其子目录下存在的 AclFile 内
所有文件的 ACL。
icacls file /grant Administrator:(D,WDAC)
- 将授予用户对文件删除和写入 DAC 的管理员权限。
icacls file /grant *S-1-1-0:(D,WDAC)
- 将授予由 sid S-1-1-0 定义的用户对文件删除和写入 DAC 的权限。
测试留痕
暂无
检测规则/思路
监视并调查修改ACL和文件或目录所有权的尝试。许多用于修改ACL和文件/目录所有权的命令是内置的系统实用程序,并且可能会产生很高的误报率,因此,请与基准知识进行比较,以了解通常如何使用系统并将修改事件与其他恶意活动指示相关联在可能的情况。
考虑对包含关键二进制文件/配置文件的文件夹启用文件/目录权限更改审核。例如,修改DACL时会创建Windows安全日志事件(事件ID 4670)
splunk规则
index=windows source=”WinEventLog:Microsoft-Windows-Sysmon/Operational” (EventCode=1 Image IN (“*\\icacls.exe” , “*\\takeown.exe” , “*\\attrib.exe”)) OR (EventCode=1 CommandLine=”*/grant*”) //File and Folder permission modification
建议
如果你对windows有足够多的了解,那么相信你也知道应该如何去用Windows日志进行分析此类攻击行为,比如依靠4688中的进程和命令行参数进行检测分析。
相关TIP
[[T1222-001-win-fltmc卸载筛选器驱动程序]] [[T1222-002-linux-文件权限修改]]
参考推荐
MITRE-ATT&CK-T1222-001
https://attack.mitre.org/techniques/T1222/001/
windows中使用icacls命令还原文件夹的权限设置