Skip to content

Atomic Red Team

Atomic Red Team is a library of tests mapped to the MITRE ATT&CK framework that security teams can use to quickly, portably, and reproducibly test their environments.

Installation & Setup

CommandDescription
git clone https://github.com/redcanaryco/atomic-red-team.gitClone Atomic Red Team repository
cd atomic-red-teamNavigate to repository
Install-Module -Name invoke-atomicredteam,powershell-yaml -Scope CurrentUserInstall PowerShell modules
Import-Module "C:\AtomicRedTeam\invoke-atomicredteam\Invoke-AtomicRedTeam.psd1" -ForceImport PowerShell module
Invoke-AtomicTest T1003.001 -ShowDetailsShow test details

Basic Usage

CommandDescription
Invoke-AtomicTest T1003.001Execute specific atomic test
Invoke-AtomicTest T1003.001 -TestNumbers 1Execute specific test number
Invoke-AtomicTest T1003.001 -ShowDetailsShow test details without executing
Invoke-AtomicTest T1003.001 -CheckPrereqsCheck prerequisites
Invoke-AtomicTest T1003.001 -GetPrereqsInstall prerequisites
Invoke-AtomicTest T1003.001 -CleanupRun cleanup for test

Test Discovery

CommandDescription
Get-AtomicTechniqueList all available techniques
Get-AtomicTechnique -Path "C:\AtomicRedTeam\atomics"List techniques from specific path
Get-AtomicTechnique | Where-Object {$_.DisplayName -match "credential"}Search techniques by keyword
Get-AtomicTechnique T1003Get details for specific technique

MITRE ATT&CK Techniques

Initial Access

CommandDescription
Invoke-AtomicTest T1566.001Spearphishing Attachment
Invoke-AtomicTest T1566.002Spearphishing Link
Invoke-AtomicTest T1190Exploit Public-Facing Application
Invoke-AtomicTest T1133External Remote Services
Invoke-AtomicTest T1200Hardware Additions

Execution

CommandDescription
Invoke-AtomicTest T1059.001PowerShell execution
Invoke-AtomicTest T1059.003Windows Command Shell
Invoke-AtomicTest T1059.004Unix Shell
Invoke-AtomicTest T1059.006Python execution
Invoke-AtomicTest T1053.005Scheduled Task/Job

Persistence

CommandDescription
Invoke-AtomicTest T1547.001Registry Run Keys
Invoke-AtomicTest T1053.005Scheduled Task
Invoke-AtomicTest T1543.003Windows Service
Invoke-AtomicTest T1136.001Local Account creation
Invoke-AtomicTest T1098Account Manipulation

Privilege Escalation

CommandDescription
Invoke-AtomicTest T1548.002Bypass User Account Control
Invoke-AtomicTest T1055Process Injection
Invoke-AtomicTest T1134Access Token Manipulation
Invoke-AtomicTest T1068Exploitation for Privilege Escalation

Defense Evasion

CommandDescription
Invoke-AtomicTest T1027Obfuscated Files or Information
Invoke-AtomicTest T1070.004File Deletion
Invoke-AtomicTest T1562.001Disable or Modify Tools
Invoke-AtomicTest T1218.010Regsvr32
Invoke-AtomicTest T1036Masquerading

Credential Access

CommandDescription
Invoke-AtomicTest T1003.001LSASS Memory dump
Invoke-AtomicTest T1003.002Security Account Manager
Invoke-AtomicTest T1003.003NTDS.dit
Invoke-AtomicTest T1110.001Password Spraying
Invoke-AtomicTest T1555.003Credentials from Web Browsers

Discovery

CommandDescription
Invoke-AtomicTest T1087.001Local Account Discovery
Invoke-AtomicTest T1087.002Domain Account Discovery
Invoke-AtomicTest T1018Remote System Discovery
Invoke-AtomicTest T1083File and Directory Discovery
Invoke-AtomicTest T1057Process Discovery

Lateral Movement

CommandDescription
Invoke-AtomicTest T1021.001Remote Desktop Protocol
Invoke-AtomicTest T1021.002SMB/Windows Admin Shares
Invoke-AtomicTest T1021.003Distributed Component Object Model
Invoke-AtomicTest T1021.006Windows Remote Management
Invoke-AtomicTest T1550.002Pass the Hash

Collection

CommandDescription
Invoke-AtomicTest T1005Data from Local System
Invoke-AtomicTest T1039Data from Network Shared Drive
Invoke-AtomicTest T1113Screen Capture
Invoke-AtomicTest T1123Audio Capture
Invoke-AtomicTest T1115Clipboard Data

Command and Control

CommandDescription
Invoke-AtomicTest T1071.001Web Protocols
Invoke-AtomicTest T1071.004DNS
Invoke-AtomicTest T1090.003Multi-hop Proxy
Invoke-AtomicTest T1573.002Asymmetric Cryptography

Exfiltration

CommandDescription
Invoke-AtomicTest T1041Exfiltration Over C2 Channel
Invoke-AtomicTest T1048.003Exfiltration Over Unencrypted/Obfuscated Non-C2 Protocol
Invoke-AtomicTest T1567.002Exfiltration to Cloud Storage

Impact

CommandDescription
Invoke-AtomicTest T1485Data Destruction
Invoke-AtomicTest T1486Data Encrypted for Impact
Invoke-AtomicTest T1490Inhibit System Recovery
Invoke-AtomicTest T1498Network Denial of Service

Advanced Usage

Custom Parameters

CommandDescription
Invoke-AtomicTest T1003.001 -InputArgs @{"output_file"="C:\temp\lsass.dmp"}Pass custom parameters
Invoke-AtomicTest T1087.001 -InputArgs @{"username"="testuser"}Specify username parameter

Batch Execution

CommandDescription
Invoke-AtomicTest T1003.001,T1003.002,T1003.003Execute multiple tests
Get-AtomicTechnique | ForEach-Object {Invoke-AtomicTest $_.Technique}Execute all available tests

Logging and Output

CommandDescription
Invoke-AtomicTest T1003.001 -LoggingModule "Attire-ExecutionLogger"Enable logging
Invoke-AtomicTest T1003.001 -ExecutionLogPath "C:\logs\atomic.log"Specify log path
Invoke-AtomicTest T1003.001 -TimeoutSeconds 60Set execution timeout

Configuration

Config File (config.yaml)

# Atomic Red Team Configuration
atomics_folder: "C:\\AtomicRedTeam\\atomics"
log_folder: "C:\\AtomicRedTeam\\logs"
default_timeout: 120
check_prereqs: true
get_prereqs: false
cleanup: true

Environment Variables

VariableDescription
$env:ATOMIC_RED_TEAM_PATHPath to Atomic Red Team directory
$env:ATOMIC_LOG_PATHPath for execution logs
$env:ATOMIC_TIMEOUTDefault timeout for tests

Linux/macOS Usage

Installation

CommandDescription
git clone https://github.com/redcanaryco/atomic-red-team.gitClone repository
cd atomic-red-teamNavigate to directory
chmod +x atomics/*/src/*Make scripts executable

Execution

CommandDescription
bash atomics/T1059.004/src/T1059.004.shExecute bash-based test
python3 atomics/T1059.006/src/T1059.006.pyExecute Python-based test
./atomics/T1083/src/T1083-1.shExecute specific test variant

Integration with SIEM

Splunk Integration

CommandDescription
Invoke-AtomicTest T1003.001 -LoggingModule "Splunk"Log to Splunk
index=atomic_red_team technique=T1003.001Search Splunk for test results

ELK Stack Integration

CommandDescription
Invoke-AtomicTest T1003.001 -LoggingModule "Elasticsearch"Log to Elasticsearch

Custom Test Development

Test Structure

attack_technique: T1003.001
display_name: "LSASS Memory"
atomic_tests:
- name: Dump LSASS.exe Memory using ProcDump
  auto_generated_guid: 0be2230c-9ab3-4ac2-8826-3199b9a0ebf8
  description: |
    The memory of lsass.exe is often dumped for offline credential theft attacks.
  supported_platforms:
  - windows
  input_arguments:
    output_file:
      description: Path where resulting dump should be placed
      type: Path
      default: C:\Windows\Temp\lsass_dump.dmp
  executor:
    command: |
      procdump.exe -accepteula -ma lsass.exe #{output_file}
    name: command_prompt

Custom Test Execution

CommandDescription
Invoke-AtomicTest -AtomicsFolder "C:\CustomAtomics" T9999.001Execute custom test

Reporting and Analysis

CommandDescription
Get-AtomicTestResultsGet execution results
Export-AtomicTestResults -Format CSV -Path "results.csv"Export results to CSV
Get-AtomicCoverageShow MITRE ATT&CK coverage
Show-AtomicTestMatrixDisplay test matrix

Automation and Scheduling

PowerShell Scheduled Jobs

$trigger = New-JobTrigger -Daily -At "2:00 AM"
Register-ScheduledJob -Name "AtomicRedTeam" -Trigger $trigger -ScriptBlock {
    Import-Module Invoke-AtomicRedTeam
    Invoke-AtomicTest T1003.001 -Cleanup
}

Continuous Testing

CommandDescription
Start-AtomicContinuousTesting -Techniques @("T1003.001","T1087.001") -Interval 3600Run tests every hour

Security Considerations

  • Run tests in isolated environments only
  • Ensure proper cleanup after test execution
  • Monitor for false positives in security tools
  • Document all test executions for compliance
  • Use least privilege principles
  • Implement proper access controls
  • Regular backup before testing
  • Coordinate with security operations center

Best Practices

  • Start with low-impact techniques
  • Always run prerequisite checks first
  • Use cleanup functions after testing
  • Document test results and observations
  • Coordinate with blue team activities
  • Test in non-production environments first
  • Implement proper logging and monitoring
  • Regular updates to test library
  • Validate detection capabilities
  • Create custom tests for specific environments

Troubleshooting

CommandDescription
Get-Help Invoke-AtomicTest -FullGet detailed help
Test-AtomicTestInputArgs T1003.001Validate input arguments
Get-AtomicTestPrerequisites T1003.001Check prerequisites
Repair-AtomicTest T1003.001Attempt to fix test issues

Common Issues

  • Antivirus interference with test execution
  • Missing prerequisites or dependencies
  • Insufficient privileges for test execution
  • Network connectivity issues for external resources
  • Path-related issues on different operating systems