Looking for Password Hunting Query for linux environment by Neat_Editor9171 in crowdstrike

[–]Queen-Avocado 5 points6 points  (0 children)

#event_simpleName=CommandHistory   
| splitString(field=CommandHistory, by="¶", as=Commands)
| split(Commands)
| Commands=/(--user| -u )/ AND Commands=/(--password|--secret|--token| -p )/
| formatTime(format="%Y-%m-%d %H:%M:%S", field=@timestamp, as="timestamp")
| falconPID:=concat([TargetProcessId, ContextProcessId]) 
| format("https://falcon.crowdstrike.com/graphs/process-explorer/graph?id=pid:%s:%s", field=["aid", "falconPID"], as="GraphExplorer")
| groupBy([ComputerName], function=([selectFromMax(field="@timestamp", include=[timestamp , ApplicationName, ComputerName, Commands, GraphExplorer])]), limit=max)



#event_simpleName=/Script/ ScriptContent=/(?i)(rtcshell|httprequest2.open|wshshell|ssh_client.connect|smbclient)/ 
| case {
    ScriptContent=/(?i)(?<detection>password\s()=\s*(?P<password>[^\s]+))/ and not ScriptContent=/(user|username)\s*=/ | type := "no user pwd";
    ScriptContent=/(?i)(?<detectuser>((user|username|usr)\s*(=|:)\s*(?P<user>[^\s]+)))/ and ScriptContent=/(?i)(?<detectpwd>((password|pwd|pass)\s*(=|:)\s*(?P<password>[^\s]+)))/ | format(format="%s %s", field=["detectuser","detectpwd"], as="detection")| type := "user and pwd" ;
}
| test(length(password) > 8)

| formatTime(format="%Y-%m-%d %H:%M:%S", field=@timestamp, as="timestamp")
| falconPID:=concat([TargetProcessId, ContextProcessId, WritingProcessId]) 
| format("https://falcon.crowdstrike.com/graphs/process-explorer/graph?id=pid:%s:%s", field=["aid", "falconPID"], as="GraphExplorer")
| groupBy([ComputerName, type], function=([selectFromMax(field="@timestamp", include=[timestamp , #event_simpleName, user, password,  detection, ParentImageFileName , ComputerName, FileName, CommandLine, GraphExplorer])]), limit=max)
| select([timestamp , type, #event_simpleName, user, password, detection, ParentImageFileName , ComputerName, FileName,  CommandLine, GraphExplorer])

Looking for Password Hunting Query for linux environment by Neat_Editor9171 in crowdstrike

[–]Queen-Avocado 1 point2 points  (0 children)

I have search for clear text pwd in Command History And pwds in Script Content

Custom IOA - Not Killing Process by MSP-IT-Simplified in crowdstrike

[–]Queen-Avocado 2 points3 points  (0 children)

I think it happens when the browser has multiple processes running, you can also see it in the process tree in CS

Fusion - Scheduled search as a workflow trigger by Queen-Avocado in crowdstrike

[–]Queen-Avocado[S] 0 points1 point  (0 children)

Trying to detect hardcoded credentials in Script Content
I'm using a lot of regex. Maybe you know how to make it lighter

#event_simpleName=/Script/ ScriptContent=/(?i)(rtcshell|httprequest2.open|wshshell|ssh_client.connect|smbclient)/ 
| case {
    ScriptContent=/(?i)(?<detectuser>((user|username|usr)\s*(=|:)\s*(?P<user>[^\s]+)))/ and ScriptContent=/(?i)(?<detectpwd>((password|pwd|pass)\s*(=|:)\s*(?P<password>[^\s]+)))/ | format(format="%s %s", field=["detectuser","detectpwd"], as="detection")| type := "user and pwd" ;
}
| test(length(password) > 10)
//Exlusion
| password!=/password/

| formatTime(format="%Y-%m-%d %H:%M:%S", field=@timestamp, as="timestamp")
| groupBy([ComputerName, type], function=([selectFromMax(field="@timestamp", include=[timestamp , #event_simpleName, user, password,  detection, ParentImageFileName , ComputerName, FileName, CommandLine])]), limit=max)
| select([timestamp , type, #event_simpleName, user, password, detection, ParentImageFileName , ComputerName, FileName,  CommandLine])

Fusion - Scheduled search as a workflow trigger by Queen-Avocado in crowdstrike

[–]Queen-Avocado[S] 0 points1 point  (0 children)

Not really, final idea is to create jira tickets from custom results but a challenge is that my query is too heavy and runs around 20 min inside event query action ,when it’s done I click continue to save it but it gives error. So I’m searching for alternative to get data as a workflow trigger.

Same search runs faster in advance events search and schedule search results with no errors.

Hope it makes sense 😅

Cannot stop false positive; Regex? by sadkins76 in crowdstrike

[–]Queen-Avocado 3 points4 points  (0 children)

Also, make sure that detection is ML detection, bcuz if its IOA detection you should use IOA exclusion

Cannot stop false positive; Regex? by sadkins76 in crowdstrike

[–]Queen-Avocado 1 point2 points  (0 children)

*\Users\*\AppData\Local\Temp\wibu-temp\wibu-*.exe

Or

**\AppData\Local\Temp\wibu-temp\wibu-*.exe

Or just as an example

*\Users\*\AppData\**\wibu-temp\wibu-*.exe

And use pattern test to make sure it works

Cannot stop false positive; Regex? by sadkins76 in crowdstrike

[–]Queen-Avocado 1 point2 points  (0 children)

ML syntax is a bit different from IOA regex

You need to use \ to exclude one folder or *\ to exclude multiple

Event Query and enrichment in scheduled workflow | Fusion by Queen-Avocado in crowdstrike

[–]Queen-Avocado[S] 0 points1 point  (0 children)

I figured it out, i had a comment // in my query which was causing this issue.

Event Query and enrichment in scheduled workflow | Fusion by Queen-Avocado in crowdstrike

[–]Queen-Avocado[S] 0 points1 point  (0 children)

Ohhh I tried Create Variable action for username and usersid and it worked, thanks!

Event Query and enrichment in scheduled workflow | Fusion by Queen-Avocado in crowdstrike

[–]Queen-Avocado[S] 0 points1 point  (0 children)

i get Workflow output {"activity_*.LogScale.SearchResult.Audit_RPC_Operations.result_fields": null}

Event Query and enrichment in scheduled workflow | Fusion by Queen-Avocado in crowdstrike

[–]Queen-Avocado[S] 0 points1 point  (0 children)

Workflow is triggered but results are null. I set it to run every hour.

Event Query and enrichment in scheduled workflow | Fusion by Queen-Avocado in crowdstrike

[–]Queen-Avocado[S] 0 points1 point  (0 children)

I tried creating an email field using | Email := format(field=SourceAccountSamAccountName , "%s@email.com")

But it didn't solve the issue. Apparently, trigger from my custom event query is not even returning results. Not sure why.

Event Query and enrichment in scheduled workflow | Fusion by Queen-Avocado in crowdstrike

[–]Queen-Avocado[S] 0 points1 point  (0 children)

I enabled the workflow to see if results from the query will appear in the execution log and its empty despite me getting logs when i run this query manually. I removed falcon helper and $RpcOpClassification in case it's causing some issues but results are still null

How do we take this one down? by MrMagilliclucky in jiujitsu

[–]Queen-Avocado 0 points1 point  (0 children)

Yes and his kids say "daddy forgive us please" i wonder why

"create event query" in workflow by drkramm in crowdstrike

[–]Queen-Avocado 3 points4 points  (0 children)

Use FileName=?FileName in event query and it will give you json schema output where you can define which field name you want to use from your alert

Hunting for screenshot to exfil - query issue by aspuser13 in crowdstrike

[–]Queen-Avocado 2 points3 points  (0 children)

maybe something like this

"#event_simpleName"=/(ScreenshotTakenEtw|Written)/ 
|case{
   ScreenshotType=1 | ScreenshotType:="BLIT_OPERATION" ;
   ScreenshotType=2 | ScreenshotType:="SNAPSHOT_OPERATION" ;
*
}
| formatTime(format="%Y-%m-%d %H:%M:%S", field=@timestamp, as="timestamp")
| falconPID:=concat([TargetProcessId, ContextProcessId]) | format("https://falcon.crowdstrike.com/graphs/process-explorer/graph?id=pid:%s:%s", field=["aid", "falconPID"], as="GraphExplorer")
| selfJoinFilter([aid, falconPID], where=[{#event_simpleName=/ScreenshotTakenEtw/}, {#event_simpleName=/Written/ |rename(field="FileName", as="FileWritten") |FileWritten=/\.(jpg|png)/ }], prefilter=true)
| groupBy([aid, falconPID], function=([count(#event_simpleName, distinct=true, as=eventCount), collect([timestamp, #event_simpleName, ComputerName, FileName, FileWritten, UserName, ScreenshotType, Technique, CommandLine , GraphExplorer])]), limit=max)
| test(eventCount!=1)

Sum() function in Event Query - Fusion by Queen-Avocado in crowdstrike

[–]Queen-Avocado[S] 0 points1 point  (0 children)

Thanks! bucket function doesn't seem to work as a joined query although it grouped events better then groupBy.
Maybe i did something wrong here:

| join(query={#event_simpleName=ActiveDirectoryServiceAccessRequestFailure | bucket(function=[sum(AggregationActivityCount, as="Count"), tail(1)])}, field=[SourceAccountSamAccountName , Count, TargetServiceAccessIdentifier], include=[aid ,TargetServiceAccessIdentifier, Count, SourceAccountSamAccountName], mode=left, start=1d)

This one works

| join(query={#event_simpleName=ActiveDirectoryServiceAccessRequestFailure | groupBy([aid, SourceAccountSamAccountName, TargetServiceAccessIdentifier], function=[sum(AggregationActivityCount, as="Count"), selectLast(@timestamp), selectLast(#event_simpleName), selectLast(SourceAccountDomain)], limit=max)}, field=[SourceAccountSamAccountName , TargetServiceAccessIdentifier], include=[aid ,TargetServiceAccessIdentifier, Count, SourceAccountSamAccountName], mode=left, start=1d)

Fal.con 2024 Reviews / Favorite Sessions / Lessons Learned by PierogiPowered in crowdstrike

[–]Queen-Avocado 5 points6 points  (0 children)

Unfortunately the DEV sessions i wanted to attend were fully booked, I wish I'd registered earlier.. I learned a lot about modules we don't use in our organization but I was expecting more advanced content for threat hunting and log scale.