Auto-generated documentation. Do not edit manually.
Total techniques: 85
- Debugger (8 techniques)
- Guardrails (29 techniques)
- Sandbox (38 techniques)
- Special (10 techniques)
- Platform: any
- Description: Detects modified breakpoint hook
Parameters:
No parameters
Example output:
import sys
if (sys .breakpointhook is not sys .__breakpointhook__ ):
raise Exception ('BreakpointHookEvasion')
print ("Hello, world!")- Platform: any
- Description: Detects active cProfile/profile profiling
Parameters:
No parameters
Example output:
import sys
if (sys .getprofile ()is not None ):
raise Exception ('CProfileEvasion')
print ("Hello, world!")- Platform: any
- Description: Detects coverage.py instrumentation
Parameters:
No parameters
Example output:
import sys
if ("coverage"in sys .modules ):
raise Exception ('CoverageEvasion')
print ("Hello, world!")- Platform: any
- Description: Detects Python debugger via sys.gettrace()
Parameters:
No parameters
Example output:
import sys
if (hasattr (sys ,'gettrace')and sys .gettrace ()is not None ):
raise Exception ('DebuggerEvasion')
print ("Hello, world!")- Platform: linux
- Description: Detects debugging tools by parent process name
Parameters:
No parameters
Example output:
import os
if (any (x in open ("/proc/"+str (os .getppid ())+"/comm").read ()for x in ["pydevd","debugpy","pdb"])):
raise Exception ('LinuxDebugProcessEvasion')
print ("Hello, world!")- Platform: darwin
- Description: Detects macOS debugging tools by parent process name
Parameters:
| Parameter | Type | Default |
|---|---|---|
debuggers |
`list[str] | None` |
Example output:
import subprocess ,os
if (any (x in subprocess .check_output (['ps','-o','comm=','-p',str (os .getppid ())]).decode ()for x in ['lldb','dtrace','sample','spindump','leaks'])):
raise Exception ('MacDebugProcessEvasion')
print ("Hello, world!")- Platform: any
- Description: Detects memory profiling via tracemalloc
Parameters:
No parameters
Example output:
import tracemalloc
if (tracemalloc .is_tracing ()):
raise Exception ('TracemallocEvasion')
print ("Hello, world!")- Platform: windows
- Description: Detects Windows debugging tools by process name
Parameters:
No parameters
Example output:
import subprocess
if (any (x in subprocess .check_output (["tasklist"]).decode ().lower ()for x in ["x64dbg","x32dbg","ollydbg","windbg","ida","immunitydebugger","cheatengine"])):
raise Exception ('WinDebugProcessEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates specific command-line arguments are passed
Parameters:
| Parameter | Type | Default |
|---|---|---|
argv |
- |
None |
Example output:
import sys
if (len (sys .argv )<=1 or not all (a in sys .argv [1 :]for a in [])):
raise Exception ('ArgvEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates a specific directory exists on target
Parameters:
| Parameter | Type | Default |
|---|---|---|
directory |
- |
_required_ |
Example output:
import os
if (not os .path .isdir ('example')):
raise Exception ('DirectoryExistEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates all directories in a list exist on target
Parameters:
| Parameter | Type | Default |
|---|---|---|
directory_list |
- |
_required_ |
Example output:
import os
if (not all ([os .path .isdir (p )for p in 'example'])):
raise Exception ('DirectoryListExistEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates all directories in a list are absent on target
Parameters:
| Parameter | Type | Default |
|---|---|---|
directory_list |
- |
_required_ |
Example output:
import os
if (any ([os .path .isdir (p )for p in 'example'])):
raise Exception ('DirectoryListMissingEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates a specific directory is absent on target
Parameters:
| Parameter | Type | Default |
|---|---|---|
directory |
- |
_required_ |
Example output:
import os
if (os .path .isdir ('example')):
raise Exception ('DirectoryMissingEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates target FQDN domain
Parameters:
| Parameter | Type | Default |
|---|---|---|
domain |
- |
_required_ |
Example output:
import socket
if (socket .getfqdn ()!='example'):
raise Exception ('DomainEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates target environment variable value
Parameters:
| Parameter | Type | Default |
|---|---|---|
var_name |
str |
_required_ |
expected |
str |
_required_ |
Example output:
import os
if (os .environ .get ('example')!='example'):
raise Exception ('EnvVarEvasion')
print ("Hello, world!")- Platform: any
- Description: Time-based expiration guardrail
Parameters:
| Parameter | Type | Default |
|---|---|---|
under_datetime |
- |
None |
Example output:
from datetime import datetime
if (datetime .now ()>datetime (2026 ,4 ,19 ,13 ,16 ,5 )):
raise Exception ('ExpireEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates a file's content matches expected SHA-256 hash
Parameters:
| Parameter | Type | Default |
|---|---|---|
file |
str |
_required_ |
expected_hash |
str |
_required_ |
Example output:
import hashlib
if (hashlib .sha256 (open ('example','rb').read ()).hexdigest ()!='example'):
raise Exception ('FileContentEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates a specific file exists on target
Parameters:
| Parameter | Type | Default |
|---|---|---|
file |
- |
_required_ |
Example output:
import os
if (not os .path .isfile ('example')):
raise Exception ('FileExistEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates all files in a list exist on target
Parameters:
| Parameter | Type | Default |
|---|---|---|
file_list |
- |
_required_ |
Example output:
import os
if (not all ([os .path .isfile (p )for p in 'example'])):
raise Exception ('FileListExistEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates all files in a list are absent on target
Parameters:
| Parameter | Type | Default |
|---|---|---|
file_list |
- |
_required_ |
Example output:
import os
if (any ([os .path .isfile (p )for p in 'example'])):
raise Exception ('FileListMissingEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates a specific file is absent on target
Parameters:
| Parameter | Type | Default |
|---|---|---|
file |
- |
_required_ |
Example output:
import os
if (os .path .isfile ('example')):
raise Exception ('FileMissingEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates a specific file matches expected size
Parameters:
| Parameter | Type | Default |
|---|---|---|
file |
str |
_required_ |
size |
int |
_required_ |
Example output:
import os
if (os .path .getsize ('example')!=2 ):
raise Exception ('FileSizeEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates target hostname
Parameters:
| Parameter | Type | Default |
|---|---|---|
hostname |
- |
_required_ |
Example output:
import socket
if (socket .gethostname ()!='example'):
raise Exception ('HostnameEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates target IP address or CIDR range
Parameters:
| Parameter | Type | Default |
|---|---|---|
ip_or_cidr |
str |
_required_ |
Example output:
import socket ;import ipaddress
if (not ipaddress .ip_address (socket .gethostbyname (socket .gethostname ()))in ipaddress .ip_network ('example',strict =False )):
raise Exception ('IPAddressEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates required software is installed on target
Parameters:
| Parameter | Type | Default |
|---|---|---|
software |
list[str] |
_required_ |
Example output:
import shutil
if (not all (shutil .which (s )is not None for s in 'example')):
raise Exception ('InstalledSoftwareEvasion')
print ("Hello, world!")- Platform: any
- Description: Detects source code tampering via hash verification
Parameters:
No parameters
Example output:
import hashlib ,inspect
def integrity (ihash ):
stack =""
for obj in [integrity ]:
stack +=inspect .getsource (obj )
m =hashlib .sha3_512 ()
m .update (stack .encode ())
m .digest ()
h =m .hexdigest ()
return h !=ihash
if (integrity ("a")):
raise Exception ('IntegrityEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates target system language locale
Parameters:
| Parameter | Type | Default |
|---|---|---|
language |
str |
'en' |
Example output:
import locale
if (locale .getdefaultlocale ()[0 ]is None or not locale .getdefaultlocale ()[0 ].startswith ('en')):
raise Exception ('LanguageLocaleEvasion')
print ("Hello, world!")- Platform: linux
- Description: Validates target Linux UID
Parameters:
| Parameter | Type | Default |
|---|---|---|
uid |
- |
_required_ |
Example output:
import os
if (os .getuid ()!=example ):
raise Exception ('LinuxUIDEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates target MAC address
Parameters:
| Parameter | Type | Default |
|---|---|---|
mac |
str |
_required_ |
Example output:
# Example not available: invalid literal for int() with base 16: 'example'- Platform: darwin
- Description: Checks macOS System Integrity Protection (SIP) status
Parameters:
| Parameter | Type | Default |
|---|---|---|
expected_enabled |
bool |
True |
Example output:
import subprocess
if ((b"enabled"in subprocess .check_output (['csrutil','status']))!=True ):
raise Exception ('MacSIPEvasion')
print ("Hello, world!")- Platform: darwin
- Description: Checks macOS version against a minimum version
Parameters:
| Parameter | Type | Default |
|---|---|---|
min_version |
str |
'11.0' |
Example output:
import platform
if (tuple (int (x )for x in platform .mac_ver ()[0 ].split ('.'))<tuple (int (x )for x in '11.0'.split ('.'))):
raise Exception ('MacVersionEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates target system timezone
Parameters:
| Parameter | Type | Default |
|---|---|---|
timezone |
str |
'UTC' |
Example output:
import time
if (time .tzname [0 ]!='UTC'):
raise Exception ('TimezoneEvasion')
print ("Hello, world!")- Platform: any
- Description: Validates target username
Parameters:
| Parameter | Type | Default |
|---|---|---|
username |
- |
_required_ |
Example output:
import getpass
if (getpass .getuser ()!='example'):
raise Exception ('UsernameEvasion')
print ("Hello, world!")- Platform: windows
- Description: Validates target Active Directory domain
Parameters:
| Parameter | Type | Default |
|---|---|---|
domain |
str |
_required_ |
Example output:
import os
if (os .environ .get ('USERDNSDOMAIN','').lower ()!='example'):
raise Exception ('WinADDomainEvasion')
print ("Hello, world!")- Platform: windows
- Description: Detects attached debugger on Windows via IsDebuggerPresent
Parameters:
No parameters
Example output:
import ctypes
if (ctypes .windll .kernel32 .IsDebuggerPresent ()):
raise Exception ('WinDebuggerEvasion')
print ("Hello, world!")- Platform: windows
- Description: Checks if running with administrator privileges on Windows
Parameters:
No parameters
Example output:
import ctypes
if (not ctypes .windll .shell32 .IsUserAnAdmin ()):
raise Exception ('WinPrivilegeEvasion')
print ("Hello, world!")- Platform: windows
- Description: Prompts user for confirmation before execution (Windows)
Parameters:
| Parameter | Type | Default |
|---|---|---|
title |
- |
None |
message |
- |
None |
Example output:
import ctypes
if (not ctypes .windll .user32 .MessageBoxW (None ,'Your system encountered an error, please click OK to proceed','System Error 0x18463832')):
raise Exception ('WinPromptEvasion')
print ("Hello, world!")- Platform: any
- Description: Detects low CPU count indicating a sandbox VM
Parameters:
| Parameter | Type | Default |
|---|---|---|
min_cpu_count |
int |
2 |
Example output:
import multiprocessing
if (multiprocessing .cpu_count ()<2 ):
raise Exception ('CPUCountEvasion')
print ("Hello, world!")- Platform: any
- Description: Detects small disk size indicating a sandbox VM
Parameters:
| Parameter | Type | Default |
|---|---|---|
min_gb |
int |
60 |
Example output:
import shutil
if (shutil .disk_usage ('/').total /(1024 **3 )<60 ):
raise Exception ('DiskSizeEvasion')
print ("Hello, world!")- Platform: any
- Description: Detects execution method (file vs memory/stdin)
Parameters:
| Parameter | Type | Default |
|---|---|---|
method |
- |
'file' |
Example output:
import time
if (__file__ =='<stdin>' ):
raise Exception ('ExecMethodEvasion')
print ("Hello, world!")- Platform: any
- Description: Detects sandbox-related keywords in executable path
Parameters:
| Parameter | Type | Default |
|---|---|---|
contain_list |
- |
('virus', 'VIRUS', 'sample', 'SAMPLE', 'sandbox', 'SANDBOX', 'malware', 'Malware', 'InsideTm', 'insidetm') |
Example output:
import pathlib
if (any ([s in str (pathlib .Path (__file__ ).absolute ())for s in ('virus','VIRUS','sample','SAMPLE','sandbox','SANDBOX','malware','Malware','InsideTm','insidetm')])):
raise Exception ('ExecPathEvasion')
print ("Hello, world!")- Platform: linux
- Description: Detects EDR/security products via Linux process list
Parameters:
| Parameter | Type | Default |
|---|---|---|
edr_list |
`list[str] | None` |
Example output:
import subprocess
if (any (e in subprocess .check_output (['ps','-eo','comm']).decode ().lower ()for e in ['activeconsole','amsi.dll','anti malware','anti-malware','antimalware','anti virus','anti-virus','antivirus','appsense','authtap','avast','avecto','canary','carbonblack','carbon black','cb.exe','ciscoamp','cisco amp','countercept','countertack','cramtray','crssvc','crowdstrike','csagent','csfalcon','csshell','cybereason','cyclorama','cylance','cyoptics','cyupdate','cyvera','cyserver','cytray','darktrace','defendpoint','defender','eectrl','elastic','endgame','f-secure','forcepoint','fireeye','groundling','GRRservic','inspector','ivanti','kaspersky','lacuna','logrhythm','malware','mandiant','mcafee','morphisec','msascuil','msmpeng','nissrv','omni','omniagent','osquery','Palo Alto Networks','pgeposervice','pgsystemtray','privilegeguard','procwall','protectorservic','qradar','redcloak','secureworks','securityhealthservice','semlaunchsv','sentinel','sepliveupdat','sisidsservice','sisipsservice','sisipsutil','smc.exe','smcgui','snac64','sophos','splunk','srtsp','symantec','symcorpu','symefasi','sysinternal','sysmon','tanium','tda.exe','tdawork','tpython','vectra','wincollect','windowssensor','wireshark','threat','xagt.exe','xagtnotif.exe','hurukai'])):
raise Exception ('LinuxEDREvasion')
print ("Hello, world!")- Platform: linux
- Description: Detects absence of mouse input devices indicating a headless sandbox
Parameters:
No parameters
Example output:
import os
if (not any ('mouse'in f .lower ()for f in os .listdir ('/dev/input/by-id/'))if os .path .isdir ('/dev/input/by-id/')else True ):
raise Exception ('LinuxMouseEvasion')
print ("Hello, world!")- Platform: linux
- Description: Detects low process count indicating a sandbox VM
Parameters:
| Parameter | Type | Default |
|---|---|---|
proc_count |
- |
100 |
Example output:
import os
if (len (list (filter (lambda d :d .isdigit (),os .listdir ('/proc'))))<100 ):
raise Exception ('LinuxProcCountEvasion')
print ("Hello, world!")- Platform: linux
- Description: Detects known analysis tool processes running on the system
Parameters:
No parameters
Example output:
import subprocess
if (any (x in subprocess .check_output (['ps','-eo','comm']).decode ()for x in ['wireshark','tcpdump','strace','ltrace','gdb'])):
raise Exception ('LinuxProcessListEvasion')
print ("Hello, world!")- Platform: linux
- Description: Detects low RAM indicating a sandbox VM
Parameters:
| Parameter | Type | Default |
|---|---|---|
min_ram |
int |
2 |
Example output:
import os
if (((os .sysconf ('SC_PAGE_SIZE')*os .sysconf ('SC_PHYS_PAGES'))/(1024. **3 ))<2 ):
raise Exception ('LinuxRAMCountEvasion')
print ("Hello, world!")- Platform: linux
- Description: Detects known sandbox/VM artifact files on the filesystem
Parameters:
| Parameter | Type | Default |
|---|---|---|
artifacts |
`list[str] | None` |
Example output:
import os
if (any (os .path .exists (a )for a in ['/usr/bin/VBoxService','/usr/bin/vmtoolsd','/usr/bin/qemu-ga','/proc/scsi/scsi'])):
raise Exception ('LinuxSandboxArtifactEvasion')
print ("Hello, world!")- Platform: linux
- Description: Detects low screen resolution in X11 indicating a headless sandbox
Parameters:
| Parameter | Type | Default |
|---|---|---|
min_width |
int |
1024 |
min_height |
int |
768 |
Example output:
import subprocess
if (int (subprocess .check_output (['xrandr']).decode ().split ('current')[1 ].split (',')[0 ].strip ().split (' x ')[0 ])<1024 ):
raise Exception ('LinuxScreenResolutionEvasion')
print ("Hello, world!")- Platform: linux
- Description: Detects low temp file count on Linux
Parameters:
| Parameter | Type | Default |
|---|---|---|
tmp_count |
- |
5 |
Example output:
import os ,sys
if (len (os .listdir ('/tmp'))<5 ):
raise Exception ('LinuxTmpCountEvasion')
print ("Hello, world!")- Platform: linux
- Description: Detects low system uptime indicating a fresh VM
Parameters:
| Parameter | Type | Default |
|---|---|---|
uptime |
- |
720 |
Example output:
from pathlib import Path
if (float (Path ('/proc/uptime').read_text ().split ()[0 ])<720 ):
raise Exception ('LinuxUptimeEvasion')
print ("Hello, world!")- Platform: darwin
- Description: Detects small disk size on macOS indicating a sandbox VM
Parameters:
| Parameter | Type | Default |
|---|---|---|
min_disk |
int |
52428800 |
Example output:
import subprocess
if (int (subprocess .check_output (['df','-k','/']).decode ().split ('\n')[1 ].split ()[1 ])<52428800 ):
raise Exception ('MacDiskSizeEvasion')
print ("Hello, world!")- Platform: darwin
- Description: Detects EDR/security products via macOS process list
Parameters:
| Parameter | Type | Default |
|---|---|---|
edr_list |
`list[str] | None` |
Example output:
import subprocess
if (any (e in subprocess .check_output (['ps','-eo','comm']).decode ().lower ()for e in ['cbosxsensorservice','cbdefense','sentinelagent','falcond','crowdstrike','malwarebytes','littlesnitch','lulu'])):
raise Exception ('MacEDREvasion')
print ("Hello, world!")- Platform: darwin
- Description: Detects absence of mouse/trackpad on macOS via IORegistry
Parameters:
No parameters
Example output:
import subprocess
if (b"AppleHIDMouseDevice"not in subprocess .check_output (['ioreg','-c','AppleHIDMouseDevice','-r'])):
raise Exception ('MacMouseEvasion')
print ("Hello, world!")- Platform: darwin
- Description: Detects known analysis tool processes on macOS
Parameters:
| Parameter | Type | Default |
|---|---|---|
process_list |
`list[str] | None` |
Example output:
import subprocess
if (any (x in subprocess .check_output (['ps','-eo','comm']).decode ()for x in ['Wireshark','tcpdump','dtrace','lldb','fsmon','filemon','procmon','Instruments'])):
raise Exception ('MacProcessListEvasion')
print ("Hello, world!")- Platform: darwin
- Description: Detects low RAM on macOS indicating a sandbox VM
Parameters:
| Parameter | Type | Default |
|---|---|---|
min_ram |
int |
2147483648 |
Example output:
import subprocess
if (int (subprocess .check_output (['sysctl','-n','hw.memsize']).strip ())<2147483648 ):
raise Exception ('MacRAMCountEvasion')
print ("Hello, world!")- Platform: darwin
- Description: Detects known sandbox/VM artifact files on macOS
Parameters:
| Parameter | Type | Default |
|---|---|---|
artifacts |
`list[str] | None` |
Example output:
import os
if (any (os .path .exists (a )for a in ['/Library/Parallels Guest Tools','/Library/Application Support/VMware Tools','/usr/local/bin/VBoxControl','/Library/LaunchDaemons/com.parallels.vm.prl_nettool.plist'])):
raise Exception ('MacSandboxArtifactEvasion')
print ("Hello, world!")- Platform: darwin
- Description: Detects low screen resolution on macOS indicating a headless sandbox
Parameters:
| Parameter | Type | Default |
|---|---|---|
min_width |
int |
1024 |
Example output:
import subprocess
if (int (subprocess .check_output (['osascript','-e','tell application "Finder" to get bounds of window of desktop']).decode ().split (', ')[2 ])<1024 ):
raise Exception ('MacScreenResolutionEvasion')
print ("Hello, world!")- Platform: darwin
- Description: Detects low temp file count on macOS
Parameters:
| Parameter | Type | Default |
|---|---|---|
min_count |
int |
3 |
Example output:
import os
if (len (os .listdir ('/private/tmp'))<3 ):
raise Exception ('MacTmpCountEvasion')
print ("Hello, world!")- Platform: darwin
- Description: Detects low uptime on macOS indicating a recently booted sandbox
Parameters:
| Parameter | Type | Default |
|---|---|---|
min_uptime |
int |
600 |
Example output:
import subprocess ,time
if (time .time ()-int (subprocess .check_output (['sysctl','-n','kern.boottime']).decode ().split ('sec = ')[1 ].split (',')[0 ])<600 ):
raise Exception ('MacUptimeEvasion')
print ("Hello, world!")- Platform: darwin
- Description: Detects VM/hypervisor on macOS via sysctl CPU VMM flag
Parameters:
No parameters
Example output:
import subprocess
if (b"VMM"in subprocess .check_output (['sysctl','-n','machdep.cpu.features'])):
raise Exception ('MacVMEvasion')
print ("Hello, world!")- Platform: any
- Description: Detects known sandbox hostnames via socket.gethostname()
Parameters:
| Parameter | Type | Default |
|---|---|---|
hostnames |
`list[str] | None` |
Example output:
import socket
if (socket .gethostname ()in ['klone_x64-pc','tequilaboomboom','TU-4NH09SMCG1HC','InsideTm']):
raise Exception ('SandboxHostnameEvasion')
print ("Hello, world!")- Platform: any
- Description: Detects known sandbox usernames via getpass.getuser()
Parameters:
| Parameter | Type | Default |
|---|---|---|
usernames |
`list[str] | None` |
Example output:
import getpass
if (getpass .getuser ().lower ()in ['admin','andy','honey','john','john doe','malnetvm','maltest','malware','roo','sandbox','snort','tequilaboomboom','test','virus','virusclone','wilbert','remnux','nepenthes','currentuser','username','user','vmware']):
raise Exception ('SandboxUsernameEvasion')
print ("Hello, world!")- Platform: any
- Description: Detects low temp file count indicating a sandbox
Parameters:
| Parameter | Type | Default |
|---|---|---|
tmp_count |
- |
5 |
Example output:
import os ,sys
if (len (os .listdir ('/tmp'if sys .platform !='windows'else 'C:\\windows\\temp'))<5 ):
raise Exception ('TmpCountEvasion')
print ("Hello, world!")- Platform: any
- Description: Detects UTC timezone commonly used in sandboxes
Parameters:
No parameters
Example output:
import time
if ("UTC"in time .tzname ):
raise Exception ('UTCEvasion')
print ("Hello, world!")- Platform: any
- Description: Detects VM via MAC OUI prefix check using uuid.getnode()
Parameters:
No parameters
Example output:
import uuid
if ((uuid .getnode ()>>24 )in [0x000C29 ,0x001C14 ,0x005056 ,0x0003FF ,0x00155D ,0x080027 ,0x0A0027 ,0x525400 ]):
raise Exception ('VMHypervisorEvasion')
print ("Hello, world!")- Platform: windows
- Description: Detects EDR/security products via Windows task list
Parameters:
| Parameter | Type | Default |
|---|---|---|
edr_list |
`list[str] | None` |
Example output:
import subprocess
if (any (e in subprocess .check_output (['tasklist']).decode ().lower ()for e in ['activeconsole','amsi.dll','anti malware','anti-malware','antimalware','anti virus','anti-virus','antivirus','appsense','authtap','avast','avecto','canary','carbonblack','carbon black','cb.exe','ciscoamp','cisco amp','countercept','countertack','cramtray','crssvc','crowdstrike','csagent','csfalcon','csshell','cybereason','cyclorama','cylance','cyoptics','cyupdate','cyvera','cyserver','cytray','darktrace','defendpoint','defender','eectrl','elastic','endgame','f-secure','forcepoint','fireeye','groundling','GRRservic','inspector','ivanti','kaspersky','lacuna','logrhythm','malware','mandiant','mcafee','morphisec','msascuil','msmpeng','nissrv','omni','omniagent','osquery','Palo Alto Networks','pgeposervice','pgsystemtray','privilegeguard','procwall','protectorservic','qradar','redcloak','secureworks','securityhealthservice','semlaunchsv','sentinel','sepliveupdat','sisidsservice','sisipsservice','sisipsutil','smc.exe','smcgui','snac64','sophos','splunk','srtsp','symantec','symcorpu','symefasi','sysinternal','sysmon','tanium','tda.exe','tdawork','tpython','vectra','wincollect','windowssensor','wireshark','threat','xagt.exe','xagtnotif.exe','hurukai'])):
raise Exception ('WinEDREvasion')
print ("Hello, world!")- Platform: windows
- Description: Detects absence of mouse device on Windows indicating a headless sandbox
Parameters:
No parameters
Example output:
import ctypes
if (ctypes .windll .user32 .GetSystemMetrics (19 )==0 ):
raise Exception ('WinMouseEvasion')
print ("Hello, world!")- Platform: windows
- Description: Detects low process count on Windows indicating a sandbox VM
Parameters:
| Parameter | Type | Default |
|---|---|---|
proc_count |
int |
50 |
Example output:
import subprocess
if (len (subprocess .check_output (['tasklist']).decode ().strip ().split ('\n'))<50 ):
raise Exception ('WinProcCountEvasion')
print ("Hello, world!")- Platform: windows
- Description: Detects known analysis tool processes on Windows
Parameters:
No parameters
Example output:
import subprocess
if (any (x in subprocess .check_output (['tasklist']).decode ().lower ()for x in ['wireshark','procmon','processhacker','fiddler','x64dbg','autoruns','tcpview'])):
raise Exception ('WinProcessListEvasion')
print ("Hello, world!")- Platform: windows
- Description: Detects low RAM on Windows indicating a sandbox VM
Parameters:
| Parameter | Type | Default |
|---|---|---|
min_ram |
int |
2 |
Example output:
import os
if (int (os .popen ('wmic ComputerSystem get TotalPhysicalMemory').read ().split ()[-1 ])//(1024 **3 )<2 ):
raise Exception ('WinRAMCountEvasion')
print ("Hello, world!")- Platform: windows
- Description: Detects VM indicators in Windows registry BIOS information
Parameters:
No parameters
Example output:
import os
if (any (k in os .popen ('reg query HKLM\\HARDWARE\\DESCRIPTION\\System\\BIOS /v SystemManufacturer').read ()for k in ['VirtualBox','VMware','QEMU','Xen','innotek'])):
raise Exception ('WinRegistryVMEvasion')
print ("Hello, world!")- Platform: windows
- Description: Detects known sandbox/VM artifact files on Windows
Parameters:
| Parameter | Type | Default |
|---|---|---|
artifacts |
`list[str] | None` |
Example output:
import os
if (any (os .path .exists (a )for a in ['C:\\Windows\\System32\\drivers\\VBoxMouse.sys','C:\\Windows\\System32\\drivers\\vmhgfs.sys','C:\\Windows\\System32\\drivers\\vm3dmp.sys','C:\\Program Files\\VMware\\VMware Tools','c:\\windows\\system32\\drivers\\vmsrvc.sys','c:\\windows\\system32\\drivers\\vpc-s3.sys','c:\\windows\\system32\\drivers\\prleth.sys'])):
raise Exception ('WinSandboxArtifactEvasion')
print ("Hello, world!")- Platform: windows
- Description: Detects low screen resolution on Windows indicating a headless sandbox
Parameters:
| Parameter | Type | Default |
|---|---|---|
min_width |
int |
1024 |
min_height |
int |
768 |
Example output:
import ctypes
if (ctypes .windll .user32 .GetSystemMetrics (0 )<1024 ):
raise Exception ('WinScreenResolutionEvasion')
print ("Hello, world!")- Platform: windows
- Description: Detects low temp file count on Windows
Parameters:
| Parameter | Type | Default |
|---|---|---|
tmp_count |
- |
5 |
Example output:
import os ,sys
if (len (os .listdir ('C:\\windows\\temp'))<5 ):
raise Exception ('WinTmpCountEvasion')
print ("Hello, world!")- Platform: windows
- Description: Detects low system uptime on Windows indicating a fresh sandbox VM
Parameters:
| Parameter | Type | Default |
|---|---|---|
uptime |
int |
720000 |
Example output:
import ctypes
if (ctypes .windll .kernel32 .GetTickCount64 ()<720000 ):
raise Exception ('WinUptimeEvasion')
print ("Hello, world!")- Platform: any
- Description: Detects CI/CD pipeline execution
Parameters:
No parameters
Example output:
import os
if (any (os .environ .get (v )is not None for v in ["GITHUB_ACTIONS","GITLAB_CI","JENKINS_URL","CIRCLECI","TRAVIS","BUILDKITE","TF_BUILD","TEAMCITY_VERSION"])):
raise Exception ('CICDEvasion')
print ("Hello, world!")- Platform: any
- Description: Detects Jupyter/IPython notebook execution
Parameters:
No parameters
Example output:
import sys
if ("IPython"in sys .modules or "ipykernel"in sys .modules ):
raise Exception ('JupyterEvasion')
print ("Hello, world!")- Platform: linux
- Description: Detects Docker container execution
Parameters:
No parameters
Example output:
import os
if (os .path .exists ("/.dockerenv")or (os .path .exists ("/proc/1/cgroup")and "docker"in open ("/proc/1/cgroup").read ())):
raise Exception ('LinuxDockerEvasion')
print ("Hello, world!")- Platform: linux
- Description: Detects Kubernetes pod execution
Parameters:
No parameters
Example output:
import os
if (os .path .isdir ("/var/run/secrets/kubernetes.io")or os .environ .get ("KUBERNETES_SERVICE_HOST")is not None ):
raise Exception ('LinuxKubernetesEvasion')
print ("Hello, world!")- Platform: linux
- Description: Detects Windows Subsystem for Linux execution
Parameters:
No parameters
Example output:
import os
if (os .path .exists ("/proc/version")and "microsoft"in open ("/proc/version").read ().lower ()):
raise Exception ('LinuxWSLEvasion')
print ("Hello, world!")- Platform: darwin
- Description: Detects macOS App Sandbox environment
Parameters:
No parameters
Example output:
import os
if (os .environ .get ('APP_SANDBOX_CONTAINER_ID')is not None ):
raise Exception ('MacAppSandboxEvasion')
print ("Hello, world!")- Platform: any
- Description: Detects serverless/cloud function runtime
Parameters:
No parameters
Example output:
import os
if (any (os .environ .get (v )is not None for v in ["AWS_LAMBDA_FUNCTION_NAME","FUNCTIONS_WORKER_RUNTIME","K_SERVICE","GOOGLE_CLOUD_PROJECT"])):
raise Exception ('ServerlessEvasion')
print ("Hello, world!")- Platform: windows
- Description: Detects Windows container execution
Parameters:
No parameters
Example output:
import os
if (os .environ .get ("CONTAINER","")!=""or os .path .exists ("C:\\ServiceProfiles")):
raise Exception ('WinContainerEvasion')
print ("Hello, world!")- Platform: windows
- Description: Detects Hyper-V guest VM execution
Parameters:
No parameters
Example output:
import os
if (os .path .exists ("C:\\Windows\\System32\\drivers\\vmbus.sys")):
raise Exception ('WinHyperVGuestEvasion')
print ("Hello, world!")- Platform: windows
- Description: Detects Windows Sandbox (Win10/11 built-in feature)
Parameters:
No parameters
Example output:
import os
if (os .environ .get ("USERNAME","")=="WDAGUtilityAccount"):
raise Exception ('WinSandboxEnvEvasion')
print ("Hello, world!")