|
28 | 28 | { |
29 | 29 | "category": "Lateral Movement", |
30 | 30 | "name": "ATExec was used", |
31 | | - "query": "indicator.name contains \"ScheduleTaskRegister\"\n| let taskCode = indicator.metadata.extract_matches('Task: \"\\\\\\\\([A-Za-z0-9]{1,8})\"').get(0)\n| filter taskCode != null\n| group _FirstSeenMs=min(event.time), _LastSeenMs=max(event.time), Count = count() by endpoint.name, src.process.user, src.process.storyline.id, taskCode, indicator.metadata\n| let _firstSeenNs = _FirstSeenMs * 1000000\n| let _lastSeenNs = _LastSeenMs * 1000000\n| columns \"first.timestamp\" = _firstSeenNs, \"last.timestamp\" = _lastSeenNs, endpoint.name, src.process.user, src.process.storyline.id, taskCode, indicator.metadata, Count\n| sort -Count\n| limit 100000" |
| 31 | + "query": "indicator.name contains \"ScheduleTaskRegister\"\n| let taskCode = indicator.metadata.extract_matches('Task: \"\\\\\\\\([A-Za-z0-9_\\-]{1,64})\"').get(0)\n| filter taskCode != null\n| group _FirstSeenMs=min(event.time), _LastSeenMs=max(event.time), Count = count() by endpoint.name, src.process.user, src.process.storyline.id, taskCode, indicator.metadata\n| let _firstSeenNs = _FirstSeenMs * 1000000\n| let _lastSeenNs = _LastSeenMs * 1000000\n| columns \"first.timestamp\" = _firstSeenNs, \"last.timestamp\" = _lastSeenNs, endpoint.name, src.process.user, src.process.storyline.id, taskCode, indicator.metadata, Count\n| sort -Count\n| limit 100000" |
32 | 32 | }, |
33 | 33 | { |
34 | 34 | "category": "Credential Access", |
|
38 | 38 | { |
39 | 39 | "category": "Lateral Movement", |
40 | 40 | "name": "Possible WMIC lateralisation", |
41 | | - "query": "(( src.process.name contains:anycase (\"cmd.exe\",\"powershell.exe\") OR tgt.process.name contains:anycase (\"cmd.exe\",\"powershell.exe\")) AND src.process.cmdline contains:anycase \"2\" AND src.process.cmdline contains:anycase \"&1\" AND src.process.cmdline In contains:anycase ( \"C$\",\"ADMIN$\",\"IPC$\",\"PRINT$\",\"FAX$\",\"Temp\") AND src.process.cmdline OR src.process.cmdline contains:anycase \"localhost\" OR src.process.cmdline contains:anycase \"WIndows\") and osSrc.process.name contains \"wmiprvse.exe\"\n| group _FirstSeenMs=min(event.time), _LastSeenMs=max(event.time), Count=count() by endpoint.name, src.process.user, src.process.parent.name, src.process.name, src.process.cmdline, tgt.process.name, tgt.process.cmdline\n| let _firstSeenNs = _FirstSeenMs * 1000000\n| let _lastSeenNs = _LastSeenMs * 1000000\n| columns \"first.timestamp\" = _firstSeenNs, \"last.timestamp\" = _lastSeenNs, endpoint.name, src.process.user, src.process.parent.name, src.process.name, src.process.cmdline, tgt.process.name, tgt.process.cmdline, Count\n| sort -Count\n| limit 100000\n" |
| 41 | + "query": "(( src.process.name contains:anycase (\"cmd.exe\",\"powershell.exe\") OR tgt.process.name contains:anycase (\"cmd.exe\",\"powershell.exe\")) AND src.process.cmdline contains:anycase \"2\" AND src.process.cmdline contains:anycase \"&1\" AND (src.process.cmdline contains:anycase (\"C$\",\"ADMIN$\",\"IPC$\",\"PRINT$\",\"FAX$\",\"Temp\") OR src.process.cmdline contains:anycase \"localhost\" OR src.process.cmdline contains:anycase \"Windows\") AND osSrc.process.name contains \"wmiprvse.exe\")\n| group _FirstSeenMs=min(event.time), _LastSeenMs=max(event.time), Count=count() by endpoint.name, src.process.user, src.process.parent.name, src.process.name, src.process.cmdline, tgt.process.name, tgt.process.cmdline\n| let _firstSeenNs = _FirstSeenMs * 1000000\n| let _lastSeenNs = _LastSeenMs * 1000000\n| columns \"first.timestamp\" = _firstSeenNs, \"last.timestamp\" = _lastSeenNs, endpoint.name, src.process.user, src.process.parent.name, src.process.name, src.process.cmdline, tgt.process.name, tgt.process.cmdline, Count\n| sort -Count\n| limit 100000\n" |
42 | 42 | }, |
43 | 43 | { |
44 | 44 | "category": "Execution & LOLBAS", |
|
63 | 63 | { |
64 | 64 | "category": "Command & Control", |
65 | 65 | "name": "LOLTunnels domain / url hits", |
66 | | - "query": "event.dns.request contains:anycase (\"shellhub.io\", \"sharedwithexpose.com\", \"sharedwithexpose.com\", \"eu-1.sharedwithexpose.com\", \"us-1.sharedwithexpose.com\", \"us-2.sharedwithexpose.com\", \"ap-1.sharedwithexpose.com\", \"in-1.sharedwithexpose.com\", \"sa-1.sharedwithexpose.com\", \"au-1.sharedwithexpose.com\", \"eu-2.sharedwithexpose.com\", \"tuns.sh\", \"ssi.sh\", \"tunnelto.dev\", \"pagekite.net\", \"pagekite.me\", \"loca.lt\", \"localtunnel.me\", \"dataplicity.com\", \"devtunnels.ms\", \"tunnels.api.visualstudio.com\", \"get.telebit.io\", \"telebit.io\", \"telebit.cloud\", \"telebit.fun\", \"devtunnels.ms\", \"data.rel.tunnels.api.visualstudio.com\", \"rel.tunnels.api.visualstudio.com\", \"global.rel.tunnels.api.visualstudio.com\", \"localhost.run\", \"pinggy.io\", \"pinggy.link\", \"amazonaws.com/public.pinggy.binaries/\", \"loophole.eu.auth0.com\", \"loophole.site\", \"burrow.io\", \"burrow.link\", \"io.burrow.link:\", \"localto.net\", \"localtonet.com\", \"tmate.io\", \"tunnel.staqlab.com\", \"staqlab-tunnel.com\", \"staqlab.com\", \"devtunnels.ms\", \"tunnels.api.visualstudio.com\", \"jprq.io\", \"bore.pub:\", \"btunnel.co.in\", \"btunnel.in\", \"ngrok.com\", \"ngrok.io\", \"ngrok.dev\", \"ngrok.app\", \"ngrok.pro\", \"ngrok.pizza\", \"ngrok-agent.com\", \"ngrok-free.app\", \"ngrok-cname.com\", \"serveo.net\", \"pitunnel.com\", \"openport.io\", \"beeceptor.com\", \"loca.lt\", \"localtunnel.me\", \"localxpose.io\", \"expose.sh\", \"expos.es\", \"trycloudflare.com\", \"cfargotunnel.com\", \"cftunnel.com\", \"bore.digital:\", \"bore.digital\") or url.address contains:anycase (\"shellhub.io\", \"sharedwithexpose.com\", \"sharedwithexpose.com\", \"eu-1.sharedwithexpose.com\", \"us-1.sharedwithexpose.com\", \"us-2.sharedwithexpose.com\", \"ap-1.sharedwithexpose.com\", \"in-1.sharedwithexpose.com\", \"sa-1.sharedwithexpose.com\", \"au-1.sharedwithexpose.com\", \"eu-2.sharedwithexpose.com\", \"tuns.sh\", \"ssi.sh\", \"tunnelto.dev\", \"pagekite.net\", \"pagekite.me\", \"loca.lt\", \"localtunnel.me\", \"dataplicity.com\", \"devtunnels.ms\", \"tunnels.api.visualstudio.com\", \"get.telebit.io\", \"telebit.io\", \"telebit.cloud\", \"telebit.fun\", \"devtunnels.ms\", \"data.rel.tunnels.api.visualstudio.com\", \"rel.tunnels.api.visualstudio.com\", \"global.rel.tunnels.api.visualstudio.com\", \"localhost.run\", \"pinggy.io\", \"pinggy.link\", \"amazonaws.com/public.pinggy.binaries/\", \"loophole.eu.auth0.com\", \"loophole.site\", \"burrow.io\", \"burrow.link\", \"io.burrow.link:\", \"localto.net\", \"localtonet.com\", \"tmate.io\", \"tunnel.staqlab.com\", \"staqlab-tunnel.com\", \"staqlab.com\", \"devtunnels.ms\", \"tunnels.api.visualstudio.com\", \"jprq.io\", \"bore.pub:\", \"btunnel.co.in\", \"btunnel.in\", \"ngrok.com\", \"ngrok.io\", \"ngrok.dev\", \"ngrok.app\", \"ngrok.pro\", \"ngrok.pizza\", \"ngrok-agent.com\", \"ngrok-free.app\", \"ngrok-cname.com\", \"serveo.net\", \"pitunnel.com\", \"openport.io\", \"beeceptor.com\", \"loca.lt\", \"localtunnel.me\", \"localxpose.io\", \"expose.sh\", \"expos.es\", \"trycloudflare.com\", \"cfargotunnel.com\", \"cftunnel.com\", \"bore.digital:\", \"bore.digital\")\n| group _FirstSeenMs=min(event.time), _LastSeenMs=max(event.time), Count=count() by endpoint.name, src.process.user, src.process.parent.name, src.process.name, src.process.cmdline, event.dns.request\n| let _firstSeenNs = _FirstSeenMs * 1000000\n| let _lastSeenNs = _LastSeenMs * 1000000\n| columns \"first.timestamp\" = _firstSeenNs, \"last.timestamp\" = _lastSeenNs, endpoint.name, src.process.user, src.process.parent.name, src.process.name, src.process.cmdline, event.dns.request, Count\n| sort -Count\n| limit 100000\n" |
| 66 | + "query": "event.dns.request contains:anycase (\"shellhub.io\", \"sharedwithexpose.com\", \"eu-1.sharedwithexpose.com\", \"us-1.sharedwithexpose.com\", \"us-2.sharedwithexpose.com\", \"ap-1.sharedwithexpose.com\", \"in-1.sharedwithexpose.com\", \"sa-1.sharedwithexpose.com\", \"au-1.sharedwithexpose.com\", \"eu-2.sharedwithexpose.com\", \"tuns.sh\", \"ssi.sh\", \"tunnelto.dev\", \"pagekite.net\", \"pagekite.me\", \"loca.lt\", \"localtunnel.me\", \"dataplicity.com\", \"devtunnels.ms\", \"tunnels.api.visualstudio.com\", \"get.telebit.io\", \"telebit.io\", \"telebit.cloud\", \"telebit.fun\", \"data.rel.tunnels.api.visualstudio.com\", \"rel.tunnels.api.visualstudio.com\", \"global.rel.tunnels.api.visualstudio.com\", \"localhost.run\", \"pinggy.io\", \"pinggy.link\", \"amazonaws.com/public.pinggy.binaries/\", \"loophole.eu.auth0.com\", \"loophole.site\", \"burrow.io\", \"burrow.link\", \"io.burrow.link\", \"localto.net\", \"localtonet.com\", \"tmate.io\", \"tunnel.staqlab.com\", \"staqlab-tunnel.com\", \"staqlab.com\", \"jprq.io\", \"bore.pub\", \"btunnel.co.in\", \"btunnel.in\", \"ngrok.com\", \"ngrok.io\", \"ngrok.dev\", \"ngrok.app\", \"ngrok.pro\", \"ngrok.pizza\", \"ngrok-agent.com\", \"ngrok-free.app\", \"ngrok-cname.com\", \"serveo.net\", \"pitunnel.com\", \"openport.io\", \"beeceptor.com\", \"localxpose.io\", \"expose.sh\", \"expos.es\", \"trycloudflare.com\", \"cfargotunnel.com\", \"cftunnel.com\", \"bore.digital\") or url.address contains:anycase (\"shellhub.io\", \"sharedwithexpose.com\", \"eu-1.sharedwithexpose.com\", \"us-1.sharedwithexpose.com\", \"us-2.sharedwithexpose.com\", \"ap-1.sharedwithexpose.com\", \"in-1.sharedwithexpose.com\", \"sa-1.sharedwithexpose.com\", \"au-1.sharedwithexpose.com\", \"eu-2.sharedwithexpose.com\", \"tuns.sh\", \"ssi.sh\", \"tunnelto.dev\", \"pagekite.net\", \"pagekite.me\", \"loca.lt\", \"localtunnel.me\", \"dataplicity.com\", \"devtunnels.ms\", \"tunnels.api.visualstudio.com\", \"get.telebit.io\", \"telebit.io\", \"telebit.cloud\", \"telebit.fun\", \"data.rel.tunnels.api.visualstudio.com\", \"rel.tunnels.api.visualstudio.com\", \"global.rel.tunnels.api.visualstudio.com\", \"localhost.run\", \"pinggy.io\", \"pinggy.link\", \"amazonaws.com/public.pinggy.binaries/\", \"loophole.eu.auth0.com\", \"loophole.site\", \"burrow.io\", \"burrow.link\", \"io.burrow.link\", \"localto.net\", \"localtonet.com\", \"tmate.io\", \"tunnel.staqlab.com\", \"staqlab-tunnel.com\", \"staqlab.com\", \"jprq.io\", \"bore.pub\", \"btunnel.co.in\", \"btunnel.in\", \"ngrok.com\", \"ngrok.io\", \"ngrok.dev\", \"ngrok.app\", \"ngrok.pro\", \"ngrok.pizza\", \"ngrok-agent.com\", \"ngrok-free.app\", \"ngrok-cname.com\", \"serveo.net\", \"pitunnel.com\", \"openport.io\", \"beeceptor.com\", \"localxpose.io\", \"expose.sh\", \"expos.es\", \"trycloudflare.com\", \"cfargotunnel.com\", \"cftunnel.com\", \"bore.digital\")\n| group _FirstSeenMs=min(event.time), _LastSeenMs=max(event.time), Count=count() by endpoint.name, src.process.user, src.process.parent.name, src.process.name, src.process.cmdline, event.dns.request\n| let _firstSeenNs = _FirstSeenMs * 1000000\n| let _lastSeenNs = _LastSeenMs * 1000000\n| columns \"first.timestamp\" = _firstSeenNs, \"last.timestamp\" = _lastSeenNs, endpoint.name, src.process.user, src.process.parent.name, src.process.name, src.process.cmdline, event.dns.request, Count\n| sort -Count\n| limit 100000\n" |
67 | 67 | }, |
68 | 68 | { |
69 | 69 | "category": "Execution & Persistence", |
|
148 | 148 | { |
149 | 149 | "category": "Execution & TTPs", |
150 | 150 | "name": "NetExec RDP Behaviour detected", |
151 | | - "query": "((src.process.name contains:anycase ('| clip & exit' ,'clip; exit')) OR (tgt.process.cmdline contains:anycase ('| clip & exit' ,'clip; exit'))) OR (src.process.name contains:anycase (\"clip.exe\") AND src.parent.process.name contains:anycase (\"powershell.exe\",\"pwsh.exe\",\"mshta.exe\",\"msiexec.exe\",\"cmd.exe\"))\n| group _FirstSeenMs=min(event.time), _LastSeenMs=max(event.time), Count=count() by endpoint.name, src.process.user, src.process.parent.name, src.process.name, src.process.cmdline\n| let _firstSeenNs = _FirstSeenMs * 1000000\n| let _lastSeenNs = _LastSeenMs * 1000000\n| columns \"first.timestamp\" = _firstSeenNs, \"last.timestamp\" = _lastSeenNs, endpoint.name, src.process.user, src.process.parent.name, src.process.name, src.process.cmdline, Count\n| sort -Count\n| limit 100000\n" |
| 151 | + "query": "((src.process.name contains:anycase ('| clip & exit' ,'clip; exit')) OR (tgt.process.cmdline contains:anycase ('| clip & exit' ,'clip; exit'))) OR (src.process.name contains:anycase (\"clip.exe\") AND src.process.parent.name contains:anycase (\"powershell.exe\",\"pwsh.exe\",\"mshta.exe\",\"msiexec.exe\",\"cmd.exe\"))\n| group _FirstSeenMs=min(event.time), _LastSeenMs=max(event.time), Count=count() by endpoint.name, src.process.user, src.process.parent.name, src.process.name, src.process.cmdline\n| let _firstSeenNs = _FirstSeenMs * 1000000\n| let _lastSeenNs = _LastSeenMs * 1000000\n| columns \"first.timestamp\" = _firstSeenNs, \"last.timestamp\" = _lastSeenNs, endpoint.name, src.process.user, src.process.parent.name, src.process.name, src.process.cmdline, Count\n| sort -Count\n| limit 100000\n" |
152 | 152 | }, |
153 | 153 | { |
154 | 154 | "category": "Credential Access", |
|
258 | 258 | { |
259 | 259 | "category": "Discovery & Reconnaissance", |
260 | 260 | "name": "Burp Suite Tool Detected", |
261 | | - "query": "(event.dns.request contains:anycase 'burpcollaborator.net' OR url.address contains:anycase 'burpcollaborator.net' AND (src.ip.address matches '^(10\\\\.|172\\\\.(1[6-9]|2[0-9]|3[0-1])\\\\.|192\\\\.168\\\\.|127\\\\.).*' OR dst.ip.address matches '^(10\\\\.|172\\\\.(1[6-9]|2[0-9]|3[0-1])\\\\.|192\\\\.168\\\\.|127\\\\.).*'))\n| group _FirstSeenMs=min(event.time), _LastSeenMs=max(event.time), Count=count() by endpoint.name, src.process.name, event.dns.request, url.address, src.ip.address, dst.ip.address\n| let _firstSeenNs = _FirstSeenMs * 1000000\n| let _lastSeenNs = _LastSeenMs * 1000000\n| columns \"first.timestamp\" = _firstSeenNs, \"last.timestamp\" = _lastSeenNs, endpoint.name, src.process.name, event.dns.request, url.address, src.ip.address, dst.ip.address, Count\n| sort -Count\n| limit 100000" |
| 261 | + "query": "(event.dns.request contains:anycase 'burpcollaborator.net' OR url.address contains:anycase 'burpcollaborator.net') AND (src.ip.address matches '^(10\\\\.|172\\\\.(1[6-9]|2[0-9]|3[0-1])\\\\.|192\\\\.168\\\\.|127\\\\.).*' OR dst.ip.address matches '^(10\\\\.|172\\\\.(1[6-9]|2[0-9]|3[0-1])\\\\.|192\\\\.168\\\\.|127\\\\.).*'))\n| group _FirstSeenMs=min(event.time), _LastSeenMs=max(event.time), Count=count() by endpoint.name, src.process.name, event.dns.request, url.address, src.ip.address, dst.ip.address\n| let _firstSeenNs = _FirstSeenMs * 1000000\n| let _lastSeenNs = _LastSeenMs * 1000000\n| columns \"first.timestamp\" = _firstSeenNs, \"last.timestamp\" = _lastSeenNs, endpoint.name, src.process.name, event.dns.request, url.address, src.ip.address, dst.ip.address, Count\n| sort -Count\n| limit 100000" |
262 | 262 | }, |
263 | 263 | { |
264 | 264 | "category": "Lateral Movement", |
|
0 commit comments