Has stored collected data in a password protected compressed file prior to exfiltration.1
Archive via Utility T1560.001
- Tactic
- Collection
- Platforms
- Linux, macOS, Windows
- Version
- 1.3
- Created
- 20 February 2020
- Last modified
- 12 May 2026
- Contributors
- Mayan Arora aka Mayan Mohan; Mark Wee
Adversaries may use utilities to compress and/or encrypt collected data prior to exfiltration. Many utilities include functionalities to compress, encrypt, or otherwise package data into a format that is easier/more secure to transport.
Archive via Utility MITRE reference T1560.001
39 groups have been recorded using this technique. Newest first; each entry carries MITRE’s procedure text and a link to the group’s full record. Click a name to filter the rules below.
Has used rar.exe and the Makecab utility to archive files of interest prior to exfiltration.123
Has used Gzip and the Windows command makecab to compress files and stolen credentials from victim systems.12
Used the tar utility to create a local archive of email data on a victim system.1
Has downloaded 7-Zip to decompress password protected archives.1
All 39 groups for this technique · 6 newest in this preview
11 campaigns have been recorded using this technique. Listed newest first; dates are year-granularity and attribution is MITRE’s.
During the 2025 Poland Wiper Attacks, the adversaries compressed stolen files into a zip file prior to exfiltration.1
During Cutting Edge, threat actors saved collected data to a tar archive.1
Used rar to compress data downloaded from internal Oracle databases prior to exfiltration.1
During C0026, the threat actors used WinRAR to collect documents on targeted systems. The threat actors appeared to only exfiltrate files created after January 1, 2021.1
During APT28 Nearest Neighbor Campaign, APT28 used built-in PowerShell capabilities (Compress-Archive cmdlet) to compress collected data.1
During Operation CuckooBees, the threat actors used the Makecab utility to compress and a version of WinRAR to create password-protected archives of stolen data prior to exfiltration.1
All 11 campaigns for this technique · 6 newest in this preview
36 software entries are documented implementing this technique. MITRE files each as a tool or as malware; newest first, then by how many groups carry them.
Has compressed collected credentials and data within tar archive files prior to exfiltration.1
Has bundled collected data into a file named tpcp.tar.gz for exfiltration.1234
Can xcopy for file collection on targeted systems.1
Has archived collected files within a zip file prior to exfiltration to include /tmp/out.zip.1
Has collected and archived sensitive data in a zip file.1
Has used 7zip, RAR and zip files to archive collected data for exfiltration.12
All 36 software entries for this technique · 6 newest in this preview
Offense vs defense T1560.001
Is defensive coverage keeping up with adversary use? Eight counts, each ranked against all 697 ATT&CK techniques. Attack sits left, defense right, so a shape leaning left means adversaries are better documented here than defenders are equipped. Hover any spoke for its percentile and the share of techniques that have more. The timeline below shows when each side arrived.
How it got here
Adversary activity (campaign spans) over cumulative rule output. Each source is plotted independently from zero, so neither line includes the other. Campaign dates are year-granularity.
Archive via Utility detection strategy DET0298
MITRE names one behaviour worth catching for this technique and breaks it into 3 analytics, one per platform. Each carries the log sources it needs and the fields you tune per environment.
Detect Archiving via Utility (T1560.001)
AN0831 · Windows
Detects adversarial archiving using built-in or third-party utilities (makecab, diantz, xcopy, certutil, 7z, WinRAR, WinZip). Correlates suspicious process creation events with command-line arguments for compression/encoding, followed by creation of archive files (.cab, .zip, .7z, .rar). Identifies anomalous loading of crypt32.dll for encryption operations or execution of diantz.exe to compress remotely staged files.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Module LoadDC0016 | WinEventLog:Sysmon | EventCode=7 |
| Process CreationDC0032 | WinEventLog:Security | EventCode=4688 |
| File CreationDC0039 | WinEventLog:Sysmon | EventCode=11 |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| SuspiciousExtensions | List of archive extensions considered high risk (.cab, .zip, .7z, .rar). |
| ProcessAllowlist | Known business utilities allowed to create archives without alerting. |
| FileSizeThresholdMB | Minimum archive size threshold to filter out benign small compressions. |
AN0832 · Linux
Detects execution of archiving utilities (tar, gzip, bzip2, xz, zip, openssl) followed by suspicious archive file creation. Correlates archive creation in temporary or staging directories with execution of commands involving compression or encryption options.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| File CreationDC0039 | auditd:FILE | create: Creation of archive files in /tmp, /var/tmp, or user home directories |
| Command ExecutionDC0064 | auditd:SYSCALL | execve: Execution of tar, gzip, bzip2, xz, zip, or openssl with compression/encryption arguments |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| ArchiveCommands | List of archiving utilities considered suspicious. |
| MonitoredDirectories | Paths where archive creation is flagged as unusual (e.g., /tmp, /var/tmp). |
| TimeWindow | Correlation window for linking utility execution with archive creation. |
AN0833 · macOS
Detects invocation of macOS-native archiving utilities (zip, ditto, hdiutil) or openssl used for encryption. Correlates execution with archive or encrypted file creation (.zip, .dmg, .tar.gz) in user or temporary directories. Identifies anomalous use of archiving commands by Office applications or daemons.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Process CreationDC0032 | macos:unifiedlog | Execution of zip, ditto, hdiutil, or openssl by processes not normally associated with archiving |
| File CreationDC0039 | macos:unifiedlog | Creation of .zip, .dmg, .tar.gz files in /Users, /tmp, or application directories |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| AllowedArchivers | Business-approved applications permitted to create archives (e.g., backup agents). |
| UserContext | Flag archiving under privileged or service accounts as higher risk. |
| PayloadEntropyThreshold | Entropy threshold for detecting encrypted archives versus normal compression. |
Before exfiltrating data that an adversary has collected, it is very likely that a compressed archive will be created, so that transfer times are minimized and fewer files are transmitted. There is variety between the tools used to compress data, but the command line usage and context of archiving tools, such as ZIP, RAR, and 7ZIP, should be monitored.
D3FEND techniques
The defensive countermeasure this analytic implements, in MITRE’s D3FEND ontology.
| ID | Name |
|---|---|
| D3-PSA | Process Spawn Analysis |
Data model references
The CAR data model objects, actions and fields the logic reads. Map these to your own schema before implementing.
| Object | Action | Field |
|---|---|---|
| process | create | command_line |
Implementations
Pseudocode is the canonical logic; the rest are CAR’s translations into vendor query languages.
This analytic looks for the command line argument a, which is used by RAR. However, there may be other programs that have this as a legitimate argument and may need to be filtered out.
processes = search Process:Create rar_argument = filter processes where (command_line == "* a *") output rar_argument
DNIF version of the above pseudocode.
_fetch * from event where $LogName=WINDOWS-SYSMON AND $EventID=1 AND $Process=regex(.* a .*)i limit 100
LogPoint version of the above pseudocode.
norm_id=WindowsSysmon event_id=1 command="* a *"
Unit tests
CAR’s own validation procedures for this analytic.
Download 7zip or other archiving software you plan to monitor. Create an innocuous text file for testing, or substitute an existing file.
["7z.exe a test.zip test.txt"]
System scans can be performed to identify unauthorized archival utilities.
| # | Test | Platform | Executor | Elevation | Prereqs | Cleanup | Ref | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 01 | Compress Data for Exfiltration With Rar | windows | cmd | — | 1 | Yes | ||||||||||||||||||||||||||
An adversary may compress data (e.g., sensitive documents) that is collected prior to exfiltration. When the test completes you should find the txt files from the %USERPROFILE% directory compressed in a file called T1560.001-data.rar in the %USERPROFILE% directory Input arguments
Attack command "#{rar_exe}" a -r #{output_file} #{input_path}\*#{file_extension}
Cleanup command del /f /q /s #{output_file} >nul 2>&1
Prerequisite Rar tool must be installed at specified location (#{rar_exe}) Check if not exist "#{rar_exe}" (exit /b 1)
Satisfy echo Downloading Winrar installer
bitsadmin /transfer myDownloadJob /download /priority normal "https://www.win-rar.com/fileadmin/winrar-versions/winrar/th/winrar-x64-580.exe" #{rar_installer}
#{rar_installer} /S
GUID2ce105ce-0c12-4b94-9b9f-2f4d46b679bf | ||||||||||||||||||||||||||||||||
| 02 | Compress Data and lock with password for Exfiltration with winrar | windows | cmd | — | 1 | — | ||||||||||||||||||||||||||
Note: Requires winrar installation rar a -p"blue" hello.rar (VARIANT) Input arguments
Attack command mkdir .\tmp\victim-files
cd .\tmp\victim-files
echo "This file will be encrypted" > .\encrypted_file.txt
"#{rar_exe}" a -hp"blue" hello.rar
dir
Prerequisite Rar tool must be installed at specified location (#{rar_exe}) Check if not exist "#{rar_exe}" (exit /b 1)
Satisfy echo Downloading Winrar installer
bitsadmin /transfer myDownloadJob /download /priority normal "https://www.win-rar.com/fileadmin/winrar-versions/winrar/th/winrar-x64-580.exe" #{rar_installer}
#{rar_installer} /S
GUIDe12139b1-dae4-47bf-9158-8eac0191274a | ||||||||||||||||||||||||||||||||
| 03 | Compress Data and lock with password for Exfiltration with winzip | windows | cmd | — | 1 | — | ||||||||||||||||||||||||||
Note: Requires winzip installation wzzip sample.zip -s"blueblue" *.txt (VARIANT) Input arguments
Attack command path=%path%;"C:\Program Files (x86)\winzip"
mkdir .\tmp\victim-files
cd .\tmp\victim-files
echo "This file will be encrypted" > .\encrypted_file.txt
"#{winzip_exe}" -min -a -s"hello" archive.zip *
dir
Prerequisite Winzip must be installed Check cmd /c 'if not exist "#{winzip_exe}" (echo 1) else (echo 0)'
Satisfy IEX(IWR "https://raw.githubusercontent.com/redcanaryco/invoke-atomicredteam/master/Public/Invoke-WebRequestVerifyHash.ps1" -UseBasicParsing)
New-Item -Type Directory "PathToAtomicsFolder\..\ExternalPayloads\" -ErrorAction Ignore -Force | Out-Null
if(Invoke-WebRequestVerifyHash "#{winzip_url}" "PathToAtomicsFolder\..\ExternalPayloads\winzip.exe" #{winzip_hash}){
Write-Host Follow the installation prompts to continue
cmd /c "PathToAtomicsFolder\..\ExternalPayloads\winzip.exe"
}
GUID02155b90-e238-4f20-b967-32a8a471f54a | ||||||||||||||||||||||||||||||||
| 04 | Compress Data and lock with password for Exfiltration with 7zip | windows | cmd | — | 1 | Yes | ||||||||||||||||||||||||||
Note: This test requires 7zip installation Input arguments
Attack command mkdir $PathToAtomicsFolder\T1560.001\victim-files
cd $PathToAtomicsFolder\T1560.001\victim-files
echo "This file will be encrypted" > .\encrypted_file.txt
"#{7zip_exe}" u archive.7z *txt -pblue
dir
Cleanup command rmdir /s /Q $PathToAtomicsFolder\T1560.001\victim-files >nul 2>&1 Prerequisite 7zip tool must be installed at specified location (#{7zip_exe}) Check if not exist "#{7zip_exe}" (exit /b 1)
Satisfy echo Downloading 7-zip installer
bitsadmin /transfer myDownloadJob /download /priority normal "https://www.7-zip.org/a/7z2301-x64.exe" #{7zip_installer}
#{7zip_installer} /S
GUID8f99d280-f410-4657-9242-aaced0cd987f | ||||||||||||||||||||||||||||||||
| 05 | Data Compressed - nix - zip | linux, macos | bash | Required | 1 | Yes | ||||||||||||||||||||||||||
An adversary may compress data (e.g., sensitive documents) that is collected prior to exfiltration. This test uses standard zip compression. Input arguments
Attack command zip #{output_file} #{input_files}
Cleanup command rm -f #{output_file}
Prerequisite Files to zip must exist (#{input_files}) Check if [ $(ls #{input_files} | wc -l) > 0 ] && [ -x $(which zip) ] ; then exit 0; else exit 1; fi;
Satisfy (which yum && yum -y install epel-release zip)||(which apt-get && apt-get install -y zip) echo Please set input_files argument to include files that exist GUID895d3c75-86eb-4b99-9733-f5d0c74c0fb2 | ||||||||||||||||||||||||||||||||
| 06 | Data Compressed - nix - gzip Single File | linux, macos | sh | — | — | Yes | ||||||||||||||||||||||||||
An adversary may compress data (e.g., sensitive documents) that is collected prior to exfiltration. This test uses standard gzip compression. Input arguments
Attack command test -e #{input_file} && gzip -k #{input_file} || (echo '#{input_content}' >> #{input_file}; gzip -k #{input_file})
Cleanup command rm -f #{input_file}.gz
GUID24e09a5e-ccea-4ec6-adf0-c4ee170e7bda | ||||||||||||||||||||||||||||||||
| 07 | Data Compressed - nix - tar Folder or File | linux, macos | sh | — | 1 | Yes | ||||||||||||||||||||||||||
An adversary may compress data (e.g., sensitive documents) that is collected prior to exfiltration. This test uses standard gzip compression. Input arguments
Attack command tar -cvzf #{output_file} #{input_file_folder}
Cleanup command rm -f #{output_file}
Prerequisite Folder to zip must exist (#{input_file_folder}) Check test -e #{input_file_folder}
Satisfy mkdir -p #{input_file_folder} && touch #{input_file_folder}/file1
GUID1640c58f-0f74-4980-941c-7ef67d3b3179 | ||||||||||||||||||||||||||||||||
| 08 | Data Encrypted with zip and gpg symmetric | linux, macos | sh | — | 1 | Yes | ||||||||||||||||||||||||||
Encrypt data for exiltration Input arguments
Attack command mkdir -p #{test_folder}
cd #{test_folder}; touch a b c d e f g
zip --password "#{encryption_password}" #{test_folder}/#{test_file} ./*
echo "#{encryption_password}" | gpg --batch --yes --passphrase-fd 0 --output #{test_folder}/#{test_file}.zip.gpg -c #{test_folder}/#{test_file}.zip
ls -l #{test_folder}
Cleanup command rm -Rf #{test_folder}
Prerequisite gpg and zip are required to run the test. Check if [ ! -x "$(command -v gpg)" ] || [ ! -x "$(command -v zip)" ]; then exit 1; fi; Satisfy (which pkg && pkg install -y gnupg zip)||(which yum && yum -y install epel-release zip gpg)||(which apt-get && apt-get install -y zip gpg) GUIDa1df2e6d-b561-4930-8fec-f8c666f5fa0a | ||||||||||||||||||||||||||||||||
| 09 | Encrypts collected data with AES-256 and Base64 | linux, macos | bash | — | 1 | Yes | ||||||||||||||||||||||||||
An adversary may compress all the collected data, encrypt and send them to a C2 server using base64 encoding. This atomic test tries to emulate the behaviour of the FLEXIROOT backdoor to archive the collected data. FLEXIROOT typically utilizes AES encryption and base64 encoding to transfer the encrypted data to the C2 server. In this test, standard zip compression and the OpenSSL library are used to encrypt the compressed data. https://attack.mitre.org/versions/v7/software/S0267/ Input arguments
Attack command zip -r #{input_folder}/#{input_file}.zip #{input_folder}
openssl enc -aes-256-cbc -pass pass:#{enc_pass} -p -in #{input_folder}/#{input_file}.zip -out #{input_folder}/#{input_file}.enc
cat #{input_folder}/#{input_file}.enc | base64Cleanup command rm -rf #{input_folder}Prerequisite The folder and test files must exist Check if [ ! -d #{input_folder} ]; then exit 1; else exit 0; fi;Satisfy if [ ! -d #{input_folder} ]; then mkdir -p #{input_folder}; cd #{input_folder}; touch {a..z}.data; fi;GUIDc86995af-cf18-4fc8-aded-7df771727cdc | ||||||||||||||||||||||||||||||||
| 10 | ESXi - Remove Syslog remote IP | windows | PowerShell | Required | 1 | Yes | ||||||||||||||||||||||||||
An adversary may edit the syslog config to remove the loghost in order to prevent or redirect logs being received by SIEM. Input arguments
Attack command # Extract line with IP address from the syslog configuration output
#{plink_file} -ssh #{vm_host} -l #{username} -pw #{password} -m PathToAtomicsFolder\..\atomics\T1560.001\src\esxi_get_loghost.txt | findstr /r "[0-9]*\.[0-9]*\.[0-9]*\." > c:\temp\loghost.txt
# Replace the IP with "0"
#{plink_file} -ssh #{vm_host} -l #{username} -pw #{password} -m PathToAtomicsFolder\..\atomics\T1560.001\src\esxi_remove_loghost.txt
# Extract the IP from the line extracted from findstr
$inputFilePath = "c:\temp\loghost.txt"
$outputFilePath = "c:\temp\loghost_ip.txt"
$fileContent = Get-Content -Path $inputFilePath -Raw
if ([string]::IsNullOrWhiteSpace($fileContent)) {
Write-Host "The content is $fileContent"
Write-Host "The file is empty"
} else {
# Use a regular expression to extract IP addresses
$ipAddresses = [regex]::Matches($fileContent, '(udp|tcp):\/\/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.*').Value
$output = "esxcli system syslog config set --loghost=" + $ipAddresses
$output | Out-File -FilePath $outputFilePath -Encoding ascii
Write-Host "IP addresses extracted and saved to $outputFilePath"
}
Cleanup command # Re-add the initially extracted IP
#{plink_file} -ssh #{vm_host} -l #{username} -pw #{password} -m c:\temp\loghost_ip.txt
rm c:\temp\loghost_ip.txt
rm c:\temp\loghost.txt
Prerequisite The plink executable must be found in the ExternalPayloads folder. Check if (Test-Path "#{plink_file}") {exit 0} else {exit 1}
Satisfy New-Item -Type Directory "PathToAtomicsFolder\..\ExternalPayloads\" -ErrorAction Ignore -Force | Out-Null
Invoke-WebRequest "https://the.earth.li/~sgtatham/putty/latest/w64/plink.exe" -OutFile "#{plink_file}"
GUID8817a20d-504f-4937-8b0d-37c163610cbf | ||||||||||||||||||||||||||||||||
| 11 | Compress a File for Exfiltration using Makecab | windows | cmd | — | 1 | Yes | ||||||||||||||||||||||||||
An adversary may compress data using Makecab (in-built Windows binary) that is collected prior to exfiltration. reference Input arguments
Attack command makecab.exe #{input_file} #{output_file}
Cleanup command del #{output_file}
Prerequisite A sample file for compression must be located at specified location (#{input_file}) Check if not exist "#{input_file}" (exit /b 1)
Satisfy fsutil file createnew c:\Temp\sam.hiv 10485760 GUID65f3df74-e942-4479-985e-96aa262877c3 | ||||||||||||||||||||||||||||||||
| 12 | Copy and Compress AppData Folder | windows | PowerShell | Required | 1 | — | ||||||||||||||||||||||||||
Copies the AppData folder, compresses it, and cleans up temporary files. Input arguments
Attack command $AppData="$env:USERPROFILE\AppData"
$Copy="#{destination_folder}"
$Zip="#{zip_file_path}"
if (Test-Path $Copy) { Remove-Item $Copy -Recurse -Force }
New-Item -ItemType Directory -Path $Copy | Out-Null
Get-ChildItem $AppData -Recurse -Force | ForEach-Object {
$rel = $_.FullName.Substring($AppData.Length + 1)
$dest = Join-Path $Copy $rel
if ($_.PSIsContainer) { New-Item -ItemType Directory -Path $dest -Force | Out-Null }
else { Copy-Item $_.FullName -Destination $dest -Force -ErrorAction SilentlyContinue }
}
Add-Type -AssemblyName System.IO.Compression.FileSystem
[System.IO.Compression.ZipFile]::CreateFromDirectory($Copy, $Zip, [System.IO.Compression.CompressionLevel]::Optimal, $false)
Prerequisite Requires admin and .NET compression libraries Check if (-not ([Security.Principal.WindowsPrincipal] `
[Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(`
[Security.Principal.WindowsBuiltInRole]::Administrator)) { exit 1 }
if (-not (Test-Path "$env:USERPROFILE\AppData")) { exit 1 }
Satisfy Run PowerShell as Administrator and ensure .NET compression assemblies are available. GUID7ffe978f-2a0c-4ff7-b618-43087043321d | ||||||||||||||||||||||||||||||||
| 13 | Data Compressed - macOS - ditto Archive of a Sensitive Directory | macos | sh | — | 1 | Yes | ||||||||||||||||||||||||||
Uses Input arguments
Attack command ditto -c -k --sequesterRsrc --keepParent "#{source_path}" "#{output_file}"
Cleanup command rm -f "#{output_file}"
Prerequisite The source directory #{source_path} must exist Check if [ -d "#{source_path}" ]; then exit 0; else exit 1; fi
Satisfy mkdir -p #{source_path}
GUIDe6acc61e-b9a2-4899-832b-b5711313d9f7 | ||||||||||||||||||||||||||||||||
Tests from Atomic Red Team (MIT licence) · technique definition