| ID |
C0017 |
| Objective(s) |
Process |
| Related ATT&CK Techniques |
None |
| Version |
2.2 |
| Created |
4 December 2020 |
| Last Modified |
30 April 2024 |
Malware creates a process.
| Name | ID | Description |
|---|
| Create Process via Shellcode | C0017.001 | Malware uses shellcode to create a process. |
| Create Process via WMI | C0017.002 | Malware uses WMI to create a process. |
| Create Suspended Process | C0017.003 | Malware created a suspended process. |
| Name | Date | Method | Description |
|---|
| Stuxnet | 2010 | C0017.002 | Stuxnet will use WMI operations with the explorer.exe token in order to copy itself and execute on the remote share. [1] |
| BlackEnergy | 2007 | -- | BlackEnergy creates a process on Windows. [2] |
| Dark Comet | 2008 | -- | Dark Comet creates a process on Windows. [2] |
| Gamut | 2014 | -- | Gamut creates a process on Windows. [2] |
| GoBotKR | 2019 | -- | GoBotKR creates a process on Windows. [2] |
| Hupigon | 2013 | -- | Hupigon creates a process on Windows. [2] |
| Kovter | 2016 | -- | Kovter creates a process on Windows. [2] |
| Mebromi | 2011 | -- | Mebromi creates a process on Windows. [2] |
| Redhip | 2011 | -- | Redhip creates a process on Windows. [2] |
| Redhip | 2011 | C0017.003 | Redhip creates a suspended process. [2] |
| Shamoon | 2012 | -- | Shamoon creates a process on Windows. [2] |
| TrickBot | 2016 | -- | TrickBot creates a process on Windows. [2] |
| TrickBot | 2016 | C0017.003 | TrickBot creates a suspended process. [2] |
| UP007 | 2016 | -- | The malware creates a process on Windows. [2] |
| Tool: capa | Mapping | APIs |
|---|
| create process on Windows | Create Process (C0017) | kernel32.WinExec, kernel32.CreateProcess, shell32.ShellExecute, shell32.ShellExecuteEx, advapi32.CreateProcessAsUser, advapi32.CreateProcessWithLogon, advapi32.CreateProcessWithToken, kernel32.CreateProcessInternal, ntdll.NtCreateUserProcess, ntdll.NtCreateProcess, ntdll.NtCreateProcessEx, ntdll.ZwCreateProcess, ZwCreateProcessEx, ntdll.ZwCreateUserProcess, ntdll.RtlCreateUserProcess, System.Diagnostics.Process::Start |
| create process on Linux | Create Process (C0017) | execve, execl, execlp, execle, execv, execvp, execvpe, posix_spawn, posix_spawnp, popen, fork |
| execute command | Create Process (C0017) | system, _system, wsystem, _wsystem |
| create a process with modified I/O handles and window | Create Process (C0017) | kernel32.CreateProcess, kernel32.CreateProcessInternal, advapi32.CreateProcessAsUser, advapi32.CreateProcessWithLogon, advapi32.CreateProcessWithToken, kernel32.GetStartupInfo, System.Diagnostics.Process::Start |
| create process suspended | Create Process::Create Suspended Process (C0017.003) | kernel32.CreateProcess, advapi32.CreateProcessAsUser |
| Tool: CAPE | Class | Mapping | APIs |
|---|
| stealth_system_procname | StealthSystemProcName | Create Process (C0017) | ShellExecuteExW, CreateProcessInternalW |
| stack_pivot_process_create | StackPivotProcessCreate | Create Process (C0017) | CreateProcessInternalW, NtCreateUserProcess |
| wmi_create_process | WMICreateProcess | Create Process (C0017) | CreateProcessInternalW, NtCreateUserProcess |
| wmi_create_process | WMICreateProcess | Create Process::Create Process via WMI (C0017.002) | CreateProcessInternalW, NtCreateUserProcess |
| script_created_process | ScriptCreatedProcess | Create Process (C0017) | CreateProcessInternalW, NtCreateUserProcess |
Process::Create Process
SHA256: 465d3aac3ca4daa9ad4de04fcb999f358396efd7abceed9701c9c28c23c126db
Location: 0x458C26
lea param_1, [ebp + 0xfffffeb0]
push param_1 ; pointer to PROCESS_INFORMATION struct to hold information about the new process
lea param_1, [ebp + 0xfffffec0]
push param_1 ; pointer to STARTUPINFO struct
push 0x0 ; path to directory for new process -- if null, use same directory as calling process
push 0x0 ; environment block for new process -- if null, use the calling process's environment block
push 0x4 ; process creation flags (CREATE_SUSPENDED in this case)
push 0x0 ; if heritable handles in the calling process should be inherited by the new process. If false, inheritance will not occur.
push 0x0 ; security attributes for new process. If null, child processes cannot inherit thread running new process
push 0x0 ; security attributes for new process. If null, child processes cannot inherit handle for new process
mov param_1, dword ptr [ebp + local_8]
call FUN_00404dfc
push param_1 ; command line for new process to execute
push 0x0 ; application name to be executed. If null, use command line provided in another argument
call KERNEL32.DLL::CreateProcessA ; Call Windows API function to create new process
[1] https://docs.broadcom.com/doc/security-response-w32-stuxnet-dossier-11-en
[2] capa v4.0, analyzed at MITRE on 10/12/2022