T1222 - File and Directory Permissions Modification
Description from ATT&CK (opens in a new tab)
Adversaries may modify file or directory permissions/attributes to evade access control lists (ACLs) and access protected files.(Citation: Hybrid Analysis Icacls1 June 2018)(Citation: Hybrid Analysis Icacls2 May 2018) File and directory permissions are commonly managed by ACLs configured by the file or directory owner, or users with the appropriate permissions. File and directory ACL implementations vary by platform, but generally explicitly designate which users or groups can perform which actions (read, write, execute, etc.).
Modifications may include changing specific access rights, which may require taking ownership of a file or directory and/or elevated permissions depending on the file or directory’s existing permissions. This may enable malicious activity such as modifying, replacing, or deleting specific files or directories. Specific file and directory modifications may be a required step for many techniques, such as establishing Persistence via Accessibility Features (opens in a new tab), Boot or Logon Initialization Scripts (opens in a new tab), Unix Shell Configuration Modification (opens in a new tab), or tainting/hijacking other instrumental binary/configuration files via Hijack Execution Flow (opens in a new tab).
Adversaries may also change permissions of symbolic links. For example, malware (particularly ransomware) may modify symbolic links and associated settings to enable access to files from local shortcuts with remote paths.(Citation: new_rust_based_ransomware)(Citation: bad_luck_blackcat)(Citation: falconoverwatch_blackcat_attack)(Citation: blackmatter_blackcat)(Citation: fsutil_behavior)
Atomic Tests
-
Atomic Test #1 - Enable Local and Remote Symbolic Links via fsutil
-
Atomic Test #2 - Enable Local and Remote Symbolic Links via reg.exe
-
Atomic Test #3 - Enable Local and Remote Symbolic Links via Powershell
Atomic Test #1 - Enable Local and Remote Symbolic Links via fsutil
Use fsutil to enable both ‘remote to local’ and ‘remote to remote’ symbolic links. This allows access to files from local shortcuts with local or remote paths. reference (opens in a new tab)
Supported Platforms: Windows
auto_generated_guid: 6c4ac96f-d4fa-44f4-83ca-56d8f4a55c02
Attack Commands: Run with command_prompt
! Elevation Required (e.g. root or admin)
fsutil behavior set SymlinkEvaluation R2L:1
fsutil behavior set SymlinkEvaluation R2R:1
Cleanup Commands:
fsutil behavior set SymlinkEvaluation R2L:0
fsutil behavior set SymlinkEvaluation R2R:0
Atomic Test #2 - Enable Local and Remote Symbolic Links via reg.exe
Use reg.exe to enable both ‘remote to local’ and ‘remote to remote’ symbolic links. This allows access to files from local shortcuts with local or remote paths. reference (opens in a new tab)
Supported Platforms: Windows
auto_generated_guid: 78bef0d4-57fb-417d-a67a-b75ae02ea3ab
Attack Commands: Run with command_prompt
! Elevation Required (e.g. root or admin)
reg add "HKLM\SYSTEM\CurrentControlSet\Control\FileSystem" /v SymlinkRemoteToLocalEvaluation /t REG_DWORD /d "1" /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\FileSystem" /v SymlinkRemoteToRemoteEvaluation /t REG_DWORD /d "1" /f
Cleanup Commands:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\FileSystem" /v SymlinkRemoteToLocalEvaluation /t REG_DWORD /d "0" /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\FileSystem" /v SymlinkRemoteToRemoteEvaluation /t REG_DWORD /d "0" /f
Atomic Test #3 - Enable Local and Remote Symbolic Links via Powershell
Use Powershell to enable both ‘remote to local’ and ‘remote to remote’ symbolic links. This allows access to files from local shortcuts with local or remote paths. reference (opens in a new tab)
Supported Platforms: Windows
auto_generated_guid: 6cd715aa-20ac-4be1-a8f1-dda7bae160bd
Attack Commands: Run with powershell
! Elevation Required (e.g. root or admin)
New-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\Filesystems\NTFS -Name SymlinkRemoteToLocalEvaluation -PropertyType DWORD -Value 1 -Force -ErrorAction Ignore
New-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\Filesystems\NTFS -Name SymlinkRemoteToRemoteEvaluation -PropertyType DWORD -Value 1 -Force -ErrorAction Ignore
Cleanup Commands:
New-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\Filesystems\NTFS -Name SymlinkRemoteToLocalEvaluation -PropertyType DWORD -Value 0 -Force -ErrorAction Ignore
New-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\Filesystems\NTFS -Name SymlinkRemoteToRemoteEvaluation -PropertyType DWORD -Value 0 -Force -ErrorAction Ignore