Skip to main content

<Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'><System><Provider Name='Microsoft-Windows-Security-Auditing' Guid='{54849625-5478-4994-a5ba-3e3b0328c30d}'/><EventID>4624</EventID><Version>2</Version><Level>0</Level><Task>12544</Task>


This is a text. I want to write a regex that checks if the text contains Windows and EventID 4624 or 4625.
How am I supposed to do that?
regexp : .*Windows.*<EventID>\\b(4624|4625)\\b</EventID>.*

my expression is not working. 


Can anyone help?

 

Hi @anurag.q.singh 

This is likely as you haven't escaped the backslash in the last EventID call in brackets. Please see if the below works:

 

.*Windows.*<EventID>\\b(4624|4625)\\b<\\/EventID>.*

 

Kind Regards,

Ayman


Hi @anurag.q.singh 

This is likely as you haven't escaped the backslash in the last EventID call in brackets. Please see if the below works:

 

.*Windows.*<EventID>\\b(4624|4625)\\b<\\/EventID>.*

 

Kind Regards,

Ayman


$cap = re.capture($var, .*Windows.*<EventID>\\b(4624|4623)\\b<\\/EventID>.*)

Error : 
tokenizing: regex not terminated: /EventID>.*)


$cap = re.capture($var, .*Windows.*<EventID>\\b(4624|4623)\\b<\\/EventID>.*)

Error : 
tokenizing: regex not terminated: /EventID>.*)


Hi @anurag.q.singh,

The below should work - essentially within a 're.capture'[1] (the function you're using) you can't pass a variable to the first argument. Secondly, the way you were initiating the regex pattern was incorrect, as there was no " or ", or / or / like the below. Hope this helps!

 

rule Regex_Example { meta: author = "Ayman C" description = "Regex example" events: // $event.metadata.product_event_type = "1" // $event.metadata.description = "4688" $event.metadata.event_type = "PROCESS_LAUNCH" $event.target.process.command_line = $Commandline $capture = re.capture($event.target.process.command_line, /.*Windows.*<EventID>\\b(4624|4623)\\b<\\/EventID>.*/) condition: $event }

 

[1] - 


Kind Regards,

Ayman C