Elastic Defend high stable eql

VirtualProtect via Indirect Syscall

Identifies VirtualProtect API calls using indirect syscall. This may be an attempt to conceal the true source of the call.

View Source

Detection Logic

api where process.Ext.api.name == "VirtualProtect" and
 process.Ext.api.behaviors == "image_indirect_call" and process.Ext.api.behaviors == "native_api" and
 (
  (process.thread.Ext.call_stack_final_user_module.path like "c:\\windows\\system32\\*.dll" and
   process.thread.Ext.call_stack_final_user_module.protection_provenance != null) or

  (process.thread.Ext.call_stack_summary == "ntdll.dll
| Unknown" and process.thread.Ext.call_stack_final_user_module.name == "Unknown")
  ) and
 not process.thread.Ext.call_stack_final_user_module.protection_provenance like ("Kernel*", "ntdll.dll") and
 not process.thread.Ext.call_stack_summary like "ntdll.dll
| wow64.dll
| wow64cpu.dll
| wow64.dll
| ntdll.dll
| execmodelclient.dll
| *" and
 not _arraysearch(process.thread.Ext.call_stack_final_user_module.code_signature, $entry, $entry.trusted == true and
                  $entry.subject_name in ("Microsoft Windows Hardware Compatibility Publisher",
                                          "Microsoft Windows Software Compatibility Publisher",
                                          "Sentinel Labs, Inc.",  "ESET, spol. s r.o.", "MUSARUBRA US LLC",
                                          "WIBU-SYSTEMS AG",  "Carbon Black, Inc.", "Adobe Inc.", "Adobe Systems, Incorporated",
                                          "Mozilla Corporation", "Google LLC", "Fasoo Co., Ltd.", "AhnLab, Inc.",
                                          "Data Encryption Systems Ltd", "Aviata, Inc.")) and
 process.thread.Ext.call_stack_final_user_module.hash.sha256 != "ebdf952adb27745e16e033f3364ce090833e6ecdafa450241793b6f290410fe9" and
 not process.thread.Ext.call_stack_final_user_module.path like "c:\\windows\\system32\\tmumh\\*\\tmmon64.dll" and
 not process.thread.Ext.call_stack_final_user_module.protection_provenance_path like
                               ("c:\\program files\\common files\\microsoft shared\\clicktorun\\appvisvsubsystems64.dll",
                                "c:\\program files\\common files\\mcafee\\systemcore\\mfehcthe.dll",
                                "c:\\program files\\windowsapps\\microsoft.net.native.runtime.*\\mrt*_app.dll",
                                "c:\\windows\\winsxs\\amd64_microsoft-windows-servicingstack_*\\turbocontainer.dll",
                                "c:\\windows\\ccm\\localapphandler.dll",
                                "c:\\program files (x86)\\adobe\\acrobat dc\\acrobat\\acrobat.exe",
                                "c:\\program files (x86)\\adobe\\acrobat reader dc\\reader\\acrord32.exe",
                                "c:\\windows\\system32\\sppcext.dll",
                                "c:\\windows\\system32\\geolocation.dll",
                                "c:\\windows\\system32\\msvcr*.dll",
                                "c:\\windows\\system32\\windows.devices.sensors.dll",
                                "c:\\windows\\system32\\tmumh\\*\\tmmon64.dll") and
 not _arraysearch(process.thread.Ext.call_stack, $entry,
                  $entry.symbol_info : ("c:\\windows\\sys?????\\ntdll.dll!LdrLoadDll*",
                                        "c:\\windows\\system32\\mdmregistration.dll!FindDiscoveryService*",
                                        "c:\\windows\\sys?????\\ntdll.dll!LdrGetProcedureAddress*",
                                        "c:\\windows\\sys?????\\ntdll.dll!LdrShutdownProcess*",
                                        "c:\\windows\\sys?????\\apphelp.dll!SE_DllLoaded*",
                                        "c:\\windows\\system32\\msvcr100.dll!tanhf*",
                                        "c:\\windows\\sys?????\\win32u.dll!NtUserCreateWindowEx*")) and
 not _arraysearch(process.thread.Ext.call_stack, $entry,$entry.callsite_trailing_bytes like "488da42428000000c3000000000000000000000000000df0adba0d*") and
 not (process.name:"powershell.exe" and
      process.parent.executable : ("C:\\Windows\\System32\\Empirum\\EmpInventory.exe",
                                   "C:\\Program Files\\ESET\\ESET Security\\ekrn.exe",
                                   "C:\\Program Files\\ESET\\ESET Endpoint Antivirus\\ekrn.exe")) and
 not (process.executable : "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" and
      process.Ext.api.summary like "VirtualProtect( clr.dll, 0x?, * )") and
 not (process.thread.Ext.call_stack_summary == "ntdll.dll
| protector64.dll
| wsmsvc.dll" and process.thread.Ext.call_stack_final_user_module.path == "c:\\windows\\system32\\wsmsvc.dll")

Field Validations

Loading…

Comments (0)

Loading comments...