Execution through API

From enterprise
Jump to: navigation, search
Execution through API
ID T1106
Tactic Execution
Platform Windows
Permissions Required User, Administrator, SYSTEM
Data Sources API monitoring, Process monitoring
Supports Remote No
Contributors Stefan Kanthak

Adversary tools may directly use the Windows application programming interface (API) to execute binaries. Functions such as the Windows API CreateProcess will allow programs and scripts to start other processes with proper path and argument parameters.1

Additional Windows API calls that can be used to execute binaries include:2

  • CreateProcessA() and CreateProcessW(),
  • CreateProcessAsUserA() and CreateProcessAsUserW(),
  • CreateProcessInternalA() and CreateProcessInternalW(),
  • CreateProcessWithLogonW(), CreateProcessWithTokenW(),
  • LoadLibraryA() and LoadLibraryW(),
  • LoadLibraryExA() and LoadLibraryExW(),
  • LoadModule(),
  • LoadPackagedLibrary(),
  • WinExec(),
  • ShellExecuteA() and ShellExecuteW(),
  • ShellExecuteExA() and ShellExecuteExW()


  • ADVSTORESHELL is capable of starting a process using CreateProcess.3
  • BADNEWS has a command to download an .exe and execute it via CreateProcess API.4
  • Cobalt Strike's "beacon" payload is capable of running shell commands without cmd.exe and PowerShell commands without powershell.exe5
  • PlugX can use the Windows API function CreateProcess to execute another process.6
  • XAgentOSX contains the execFile function to execute a specified file on the system using the NSTask:launch method.7


Mitigating specific API calls will likely have unintended side effects, such as preventing legitimate software from operating properly. Efforts should be focused on preventing adversary tools from running earlier in the chain of activity and on identifying subsequent malicious behavior. Audit and/or block potentially malicious software by using whitelisting8 tools, like AppLocker,910 or Software Restriction Policies11 where appropriate.12


Monitoring API calls may generate a significant amount of data and may not be directly useful for defense unless collected under specific circumstances, since benign use of Windows API functions such as CreateProcess are common and difficult to distinguish from malicious behavior. Correlation of other events with behavior surrounding API function calls using API monitoring will provide additional context to an event that may assist in determining if it is due to malicious behavior. Correlation of activity by process lineage by process ID may be sufficient.