Transacted File Activity via an Unsigned DLL
Description
Identifies the creation of a transacted file by an unsigned DLL. This may indicate an attempt to use Transactional NTFS to execute arbitrary code in the address space of a running process, without committing the code to disk.
Query · eql
sequence by process.entity_id with maxspan=1m
[library where event.action == "load" and process.pid != 4 and not dll.code_signature.status : "trusted" and
(dll.Ext.relative_file_creation_time < 500 or
dll.Ext.relative_file_name_modify_time < 500 or
(dll.Ext.device.product_id : ("Virtual DVD-ROM", "Virtual Disk","USB *") and not dll.path : "C:\\*")
)] as event0
[file where event.action == "overwrite" and
_arraysearch(process.thread.Ext.call_stack, $entry, $entry.symbol_info: "*\\kernel32.dll!CreateFileTransacted*") and
stringcontains~(process.thread.Ext.call_stack_summary, concat("kernel32.dll|", event0.dll.name))]