Skip to content

Latest commit

 

History

History
215 lines (116 loc) · 5.78 KB

T1099.md

File metadata and controls

215 lines (116 loc) · 5.78 KB

T1099 - Timestomp

Timestomping is a technique that modifies the timestamps of a file (the modify, access, create, and change times), often to mimic files that are in the same folder. This is done, for example, on files that have been modified or created by the adversary so that they do not appear conspicuous to forensic investigators or file analysis tools. Timestomping may be used along with file name [Masquerading](https://attack.mitre.org/techniques/T1036) to hide malware and tools. (Citation: WindowsIR Anti-Forensic Techniques)

Atomic Tests


Atomic Test #1 - Set a file's access timestamp

Stomps on the access timestamp of a file

Supported Platforms: Linux, macOS

Inputs:

Name Description Type Default Value
target_filename Path of file that we are going to stomp on last access time Path /opt/filename

Attack Commands: Run with sh!

touch -a -t 197001010000.00 #{target_filename}


Atomic Test #2 - Set a file's modification timestamp

Stomps on the modification timestamp of a file

Supported Platforms: Linux, macOS

Inputs:

Name Description Type Default Value
target_filename Path of file that we are going to stomp on last access time Path /opt/filename

Attack Commands: Run with sh!

touch -m -t 197001010000.00 #{target_filename}


Atomic Test #3 - Set a file's creation timestamp

Stomps on the create timestamp of a file

Setting the creation timestamp requires changing the system clock and reverting. Sudo or root privileges are required to change date. Use with caution.

Supported Platforms: Linux, macOS

Inputs:

Name Description Type Default Value
target_filename Path of file that we are going to stomp on last access time Path /opt/filename

Attack Commands: Run with sh!

NOW=$(date)
date -s "1970-01-01 00:00:00"
touch #{target_filename}
date -s "$NOW"
stat #{target_filename}


Atomic Test #4 - Modify file timestamps using reference file

Modifies the modify and access timestamps using the timestamps of a specified reference file.

This technique was used by the threat actor Rocke during the compromise of Linux web servers.

Supported Platforms: Linux, macOS

Inputs:

Name Description Type Default Value
reference_file_path Path of reference file to read timestamps from Path /bin/sh
target_file_path Path of file to modify timestamps of Path /opt/filename

Attack Commands: Run with sh!

touch -acmr #{reference_file_path} {target_file_path}


Atomic Test #5 - Windows - Modify file creation timestamp with PowerShell

Modifies the file creation timestamp of a specified file.

This technique was seen in use by the Stitch RAT.

Supported Platforms: Windows

Inputs:

Name Description Type Default Value
file_path Path of file to change creation timestamp Path C:\Some\file.txt
target_date_time Date/time to replace original timestamps with String 1970-01-01 00:00:00

Attack Commands: Run with command_prompt!

powershell.exe Get-ChildItem #{file_path} | % { $_.CreationTime = #{target_date_time} }


Atomic Test #6 - Windows - Modify file last modified timestamp with PowerShell

Modifies the file last modified timestamp of a specified file.

This technique was seen in use by the Stitch RAT.

Supported Platforms: Windows

Inputs:

Name Description Type Default Value
file_path Path of file to change last modified timestamp Path C:\Some\file.txt
target_date_time Date/time to replace original timestamps with String 1970-01-01 00:00:00

Attack Commands: Run with command_prompt!

powershell.exe Get-ChildItem #{file_path} | % { $_.LastWriteTime = #{target_date_time} }


Atomic Test #7 - Windows - Modify file last access timestamp with PowerShell

Modifies the last access timestamp of a specified file.

This technique was seen in use by the Stitch RAT.

Supported Platforms: Windows

Inputs:

Name Description Type Default Value
file_path Path of file to change last access timestamp Path C:\Some\file.txt
target_date_time Date/time to replace original timestamps with String 1970-01-01 00:00:00

Attack Commands: Run with command_prompt!

powershell.exe Get-ChildItem #{file_path} | % { $_.LastAccessTime = #{target_date_time} }