CmdID

CmdID / Rules / Windows

Potential WinAPI Calls Via CommandLine

A Sigma rule for process creation on Windows, by Nasreddine Bencherchali (Nextron Systems).

high 1 ATT&CK technique 2 programs it names 1 everyday example trips it

What it looks for

its detection, as SigmaHQ writes it
detection:
  filter_optional_compatTelRunner:
    CommandLine|contains:
      - 'FreeHGlobal'
      - 'PtrToString'
      - 'kernel32'
      - 'CloseHandle'
    ParentImage|endswith: '\CompatTelRunner.exe'
  filter_optional_mpcmdrun:
    CommandLine|contains: 'GetLoadLibraryWAddress32'
    Image|endswith: '\MpCmdRun.exe'
  selection:
    CommandLine|contains:
      - 'AddSecurityPackage'
      - 'AdjustTokenPrivileges'
      - 'Advapi32'
      - 'CloseHandle'
      - 'CreateProcessWithToken'
      - 'CreatePseudoConsole'
      - 'CreateRemoteThread'
      - 'CreateThread'
      - 'CreateUserThread'
      - 'DangerousGetHandle'
      - 'DuplicateTokenEx'
      - 'EnumerateSecurityPackages'
      - 'FreeHGlobal'
      - 'FreeLibrary'
      - 'GetDelegateForFunctionPointer'
      - 'GetLogonSessionData'
      - 'GetModuleHandle'
      - 'GetProcAddress'
      - 'GetProcessHandle'
      - 'GetTokenInformation'
      - 'ImpersonateLoggedOnUser'
      - 'kernel32'
      - 'LoadLibrary'
      - 'memcpy'
      - 'MiniDumpWriteDump'
      - 'ntdll'
      - 'OpenDesktop'
      - 'OpenProcess'
      - 'OpenProcessToken'
      - 'OpenThreadToken'
      - 'OpenWindowStation'
      - 'PtrToString'
      - 'QueueUserApc'
      - 'ReadProcessMemory'
      - 'RevertToSelf'
      - 'RtlCreateUserThread'
      - 'secur32'
      - 'SetThreadToken'
      - 'VirtualAlloc'
      - 'VirtualFree'
      - 'VirtualProtect'
      - 'WaitForSingleObject'
      - 'WriteInt32'
      - 'WriteProcessMemory'
      - 'ZeroFreeGlobalAllocUnicode'
  condition: selection and not 1 of filter_optional_*

The rule’s detection, its selections and fields in order of name. The whole rule, with its references and false positives, is on SigmaHQ, by Nasreddine Bencherchali (Nextron Systems), under the Detection Rule License 1.1. CmdID evaluates it on a command line alone: a test on what a command line cannot show, such as the parent process or the user, is not met.

Command lines that trip it

everyday examples from tldr-pages, CC BY 4.0, each read by CmdID

To list all the service information for processes on the remote computer srvmain, which has a DLL name beginning with ntdll, type on the page for tasklist

tasklist /s srvmain /svc /fi "MODULES eq ntdll*"Identify

Programs and files it names

their pages here

ATT&CK

the techniques it is tagged with
T1106Native API