Skip to main content
COSMICBYTEZLABS
NewsSecurityHOWTOsToolsStudyTraining
ProjectsChecklistsAI RankingsNewsletterStatusTagsAbout
Subscribe

Press Enter to search or Esc to close

News
Security
HOWTOs
Tools
Study
Training
Projects
Checklists
AI Rankings
Newsletter
Status
Tags
About
RSS Feed
Reading List
Subscribe

Stay in the Loop

Get the latest security alerts, tutorials, and tech insights delivered to your inbox.

Subscribe NowFree forever. No spam.
COSMICBYTEZLABS

Your trusted source for IT intelligence, cybersecurity insights, and hands-on technical guides.

429+ Articles
114+ Guides

CONTENT

  • Latest News
  • Security Alerts
  • HOWTOs
  • Projects
  • Exam Prep

RESOURCES

  • Search
  • Browse Tags
  • Newsletter Archive
  • Reading List
  • RSS Feed

COMPANY

  • About Us
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CosmicBytez Labs. All rights reserved.

System Status: Operational
  1. Home
  2. HOWTOs
  3. SentinelOne Deep Visibility Threat Hunting
SentinelOne Deep Visibility Threat Hunting
HOWTOAdvanced

SentinelOne Deep Visibility Threat Hunting

Deep Visibility is SentinelOne's EDR telemetry engine that provides comprehensive endpoint data collection for threat hunting, incident investigation, and...

Dylan H.

Security Operations

February 11, 2026
22 min read

SCENARIO

Deep Visibility is SentinelOne's EDR telemetry engine that provides comprehensive endpoint data collection for threat hunting, incident investigation, and forensic analysis. This guide provides practical threat hunting procedures, query syntax reference, and a library of detection queries mapped to MITRE ATT&CK.

Use this guide when:

  • Proactively hunting for threats across client environments
  • Investigating alerts and suspicious activity
  • Searching for Indicators of Compromise (IOCs)
  • Building custom detection rules (STAR)
  • Conducting forensic timeline analysis
  • Validating security controls effectiveness

Prerequisites:

  • SentinelOne Singularity Complete license
  • Deep Visibility enabled in policy
  • Console access with Viewer role or higher
  • Basic understanding of attack techniques

Reference Documentation:

  • SentinelOne Deep Visibility Datasheet
  • S1QL Query Repository (SentinelLabs)
  • MITRE ATT&CK Mapped Queries
  • Rapid Threat Hunting with Storylines

REQUIREMENTS & ASSUMPTIONS

Technical Requirements

RequirementDetails
SKUSingularity Complete or higher
Agent Version4.2.x or newer recommended
Policy SettingDeep Visibility: Enabled
Data Retention14 days default (upgradeable to 30/90/365)
Console RoleViewer, IR Team, or Admin

Data Collection Scope

Deep Visibility collects:

  • Process execution (creation, termination, command lines)
  • File operations (create, modify, delete, rename)
  • Network connections (TCP/UDP, DNS queries)
  • Registry changes (Windows)
  • Login events
  • Module/DLL loads
  • Scheduled tasks
  • Service operations
  • Cross-process operations (injection, handles)

S1QL QUERY LANGUAGE REFERENCE

Basic Syntax Structure

Field Operator "Value" AND/OR Field Operator "Value"

Common Fields

Process Fields

FieldDescriptionExample
SrcProcNameSource process nameSrcProcName = "powershell.exe"
TgtProcNameTarget process nameTgtProcName = "cmd.exe"
SrcProcCmdLineSource command lineSrcProcCmdLine Contains "-enc"
TgtProcCmdLineTarget command lineTgtProcCmdLine Contains "/c"
SrcProcParentNameParent process nameSrcProcParentName = "explorer.exe"
SrcProcImagePathFull process pathSrcProcImagePath Contains "Temp"
TgtProcImagePathTarget process pathTgtProcImagePath Contains "System32"
SrcProcCmdScriptScript contentSrcProcCmdScript Contains "Invoke-"
SrcProcUserProcess ownerSrcProcUser Contains "SYSTEM"
ProcessIntegrityLevelIntegrity levelProcessIntegrityLevel = "HIGH"
SrcProcVerifiedStatusSignature statusSrcProcVerifiedStatus != "verified"
SrcProcPublisherCode signing publisherSrcProcPublisher != "MICROSOFT"

File Fields

FieldDescriptionExample
FileFullNameFull file pathFileFullName Contains "Startup"
FilePathDirectory pathFilePath Contains "Downloads"
FileNameFile name onlyFileName = "malware.exe"
TgtFileExtensionFile extensionTgtFileExtension = "exe"
FileTypeFile typeFileType = "PE"
FileMD5MD5 hashFileMD5 = "abc123..."
FileSha1SHA1 hashFileSha1 = "def456..."
FileSha256SHA256 hashFileSha256 = "ghi789..."
FileIsExecutableIs executableFileIsExecutable = "true"
TgtFileIsExecutableTarget is executableTgtFileIsExecutable = "true"

Network Fields

FieldDescriptionExample
DstIpDestination IPDstIp = "192.168.1.100"
SrcIpSource IPSrcIp = "10.0.0.5"
DstPortDestination portDstPort = 443
SrcPortSource portSrcPort = 54321
NetConnStatusConnection statusNetConnStatus = "SUCCESS"
DnsRequestDNS queryDnsRequest Contains "evil.com"
DnsResponseDNS responseDnsResponse = "1.2.3.4"

Registry Fields (Windows)

FieldDescriptionExample
RegistryKeyPathRegistry key pathRegistryKeyPath Contains "Run"
RegistryPathFull registry pathRegistryPath Contains "CurrentVersion"
RegistryValueRegistry value dataRegistryValue Contains ".exe"

Event Fields

FieldDescriptionExample
EventTypeType of eventEventType = "Process Creation"
EventTimeEvent timestampUsed for time filtering
AgentNameEndpoint hostnameAgentName = "WORKSTATION-01"
AgentOSOperating systemAgentOS = "windows"
SiteNameSite nameSiteName = "Production"
StorylineIdStoryline identifierStorylineId = "ABC123..."
IndicatorNameIndicator typeIndicatorName = "ScheduleTaskRegister"

Event Types

-- Process Events
EventType = "Process Creation"
EventType = "Process Termination"
EventType = "Process Modified"
EventType = "Duplicate Process Handle"
EventType = "Open Remote Process Handle"
 
-- File Events
EventType = "File Creation"
EventType = "File Modification"
EventType = "File Deletion"
EventType = "File Rename"
EventType = "File Scan"
 
-- Network Events
EventType = "IP Connect"
EventType = "IP Listen"
EventType = "DNS Resolved"
EventType = "DNS Unresolved"
 
-- Registry Events (Windows)
EventType = "Registry Key Create"
EventType = "Registry Key Delete"
EventType = "Registry Value Create"
EventType = "Registry Value Modified"
EventType = "Registry Value Delete"
 
-- Other Events
EventType = "Module Load"
EventType = "Scheduled Task"
EventType = "Driver Load"
EventType = "Login"
EventType = "Logout"

Operators

OperatorDescriptionExample
=EqualsProcessName = "cmd.exe"
!=Not equalsProcessName != "explorer.exe"
ContainsContains (case-sensitive)CmdLine Contains "password"
ContainsCISContains (case-insensitive)CmdLine ContainsCIS "PASSWORD"
Does Not ContainCISDoes not containPath Does Not ContainCIS "System32"
InIn listName In ("cmd.exe","powershell.exe")
In ContainsIn list (partial match)CmdLine In Contains ("net","user")
In Contains AnycaseIn list (case-insensitive)Name In Contains Anycase ("CMD","PS")
Not InNot in listName Not In ("svchost.exe")
RegExpRegular expressionCmdLine RegExp "^.*\.exe$"
StartswithCISStarts withPath StartswithCIS "C:\Users"
EndswithCISEnds withName EndswithCIS ".dll"
Is EmptyField is emptyDstIp Is Empty
Is Not EmptyField has valueDstIp Is Not Empty

Logical Operators

-- AND: Both conditions must be true
EventType = "Process Creation" AND ProcessName = "cmd.exe"
 
-- OR: Either condition can be true
ProcessName = "cmd.exe" OR ProcessName = "powershell.exe"
 
-- Grouping with parentheses
(ProcessName = "cmd.exe" OR ProcessName = "powershell.exe") AND UserName = "SYSTEM"

Time Filtering

Time is filtered via the console UI (last 1 hour, 24 hours, 7 days, 14 days, or custom range).


CONSOLE NAVIGATION

Accessing Deep Visibility

  1. Log in to SentinelOne Console
  2. Navigate to Visibility → Deep Visibility
  3. Select scope:
    • Account (all sites)
    • Specific Site
    • Specific Group
    • Specific Agent
  4. Set time range (default: last 24 hours)
  5. Enter query or use query builder

Query Builder Interface

┌─────────────────────────────────────────────────────────────────┐
│ Deep Visibility                                    [Time: 24h ▼]│
├─────────────────────────────────────────────────────────────────┤
│ Scope: Account ▼  |  Site: All ▼  |  Group: All ▼              │
├─────────────────────────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Query: EventType = "Process Creation" AND SrcProcName =    │ │
│ │        "powershell.exe"                                     │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ [Run Query]  [Save to Watchlist]  [Create STAR Rule]           │
├─────────────────────────────────────────────────────────────────┤
│ Results: 1,234 events                                           │
│ ┌────────┬────────────┬────────────┬──────────────────────────┐ │
│ │ Time   │ Agent      │ Process    │ Command Line             │ │
│ ├────────┼────────────┼────────────┼──────────────────────────┤ │
│ │ 10:15  │ WKS-001    │ powershell │ powershell.exe -enc ...  │ │
│ │ 10:14  │ WKS-002    │ powershell │ powershell.exe -file ... │ │
│ └────────┴────────────┴────────────┴──────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘

Query Autocomplete

The console provides:

  • Field name suggestions
  • Operator suggestions
  • Value completion (for known values)
  • Syntax validation

THREAT HUNTING METHODOLOGY

Six-Step Hunting Process

┌─────────────────────────────────────────────────────────────────┐
│                    THREAT HUNTING WORKFLOW                       │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  1. HYPOTHESIS    →   2. DATA COLLECTION   →   3. ANALYSIS     │
│  "What am I           "Query Deep              "Review results  │
│   looking for?"        Visibility"              for anomalies"  │
│                                                                 │
│  4. INVESTIGATION →   5. RESPONSE          →   6. DOCUMENTATION│
│  "Pivot on             "Contain, remediate,    "Record findings │
│   findings"             improve defenses"       and queries"    │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Hunting Approaches

1. IOC-Based Hunting

Search for known malicious indicators:

-- Search for known malicious hash
FileSha256 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
 
-- Search for known C2 domain
DnsRequest ContainsCIS "malicious-domain.com"
 
-- Search for known C2 IP
DstIp = "192.168.100.100"

2. TTP-Based Hunting

Search for attack techniques regardless of specific tools:

-- Hunt for encoded PowerShell (T1059.001)
EventType = "Process Creation" AND
SrcProcName = "powershell.exe" AND
SrcProcCmdLine ContainsCIS "-enc"
 
-- Hunt for credential dumping (T1003)
TgtProcName = "lsass.exe" AND
EventType = "Open Remote Process Handle"

3. Anomaly-Based Hunting

Search for unusual behavior patterns:

-- Unusual parent-child process relationship
SrcProcName = "excel.exe" AND
TgtProcName In ("cmd.exe", "powershell.exe", "wscript.exe")
 
-- Process running from unusual location
EventType = "Process Creation" AND
TgtProcImagePath ContainsCIS "\Users\" AND
TgtProcImagePath ContainsCIS "\AppData\" AND
TgtFileIsExecutable = "true"

4. Baseline Deviation Hunting

Compare current activity against known-good baselines:

-- New scheduled tasks (compare against baseline)
IndicatorName = "ScheduleTaskRegister" AND
SrcProcParentName Not In ("services.exe", "svchost.exe", "OfficeClickToRun.exe")
 
-- Unusual outbound connections
EventType = "IP Connect" AND
DstPort Not In (80, 443, 53, 123) AND
SrcProcName Not In ("chrome.exe", "firefox.exe", "msedge.exe")

MITRE ATT&CK HUNTING QUERIES

Initial Access (TA0001)

T1566.001 - Spearphishing Attachment

-- Office spawning suspicious child processes
(SrcProcName In ("winword.exe", "excel.exe", "powerpnt.exe", "outlook.exe") AND
TgtProcName In ("cmd.exe", "powershell.exe", "wscript.exe", "cscript.exe", "mshta.exe", "certutil.exe"))

T1566.002 - Spearphishing Link

-- Browser spawning suspicious processes
(SrcProcName In ("chrome.exe", "firefox.exe", "msedge.exe", "iexplore.exe") AND
TgtProcName In ("cmd.exe", "powershell.exe", "mshta.exe", "wscript.exe"))

Execution (TA0002)

T1059.001 - PowerShell

-- Encoded PowerShell commands
EventType = "Process Creation" AND
SrcProcName = "powershell.exe" AND
(SrcProcCmdLine ContainsCIS "-enc" OR
 SrcProcCmdLine ContainsCIS "-encodedcommand" OR
 SrcProcCmdLine ContainsCIS "frombase64string")
 
-- PowerShell download cradles
EventType = "Process Creation" AND
SrcProcName = "powershell.exe" AND
(SrcProcCmdLine ContainsCIS "downloadstring" OR
 SrcProcCmdLine ContainsCIS "downloadfile" OR
 SrcProcCmdLine ContainsCIS "invoke-webrequest" OR
 SrcProcCmdLine ContainsCIS "wget" OR
 SrcProcCmdLine ContainsCIS "curl" OR
 SrcProcCmdLine ContainsCIS "iwr")
 
-- PowerShell executing from unusual locations
EventType = "Process Creation" AND
SrcProcName = "powershell.exe" AND
SrcProcImagePath Does Not ContainCIS "System32" AND
SrcProcImagePath Does Not ContainCIS "SysWOW64"

T1059.003 - Windows Command Shell

-- CMD with suspicious commands
EventType = "Process Creation" AND
TgtProcName = "cmd.exe" AND
(TgtProcCmdLine ContainsCIS "/c " OR TgtProcCmdLine ContainsCIS "/k ") AND
(TgtProcCmdLine In Contains Anycase ("whoami", "net user", "net localgroup",
 "systeminfo", "tasklist", "ipconfig", "netstat", "reg query"))

T1059.005 - Visual Basic Script

-- WScript/CScript execution
EventType = "Process Creation" AND
TgtProcName In ("wscript.exe", "cscript.exe") AND
(TgtProcCmdLine ContainsCIS ".vbs" OR TgtProcCmdLine ContainsCIS ".js")

T1047 - Windows Management Instrumentation

-- WMIC process creation
TgtProcName = "wmic.exe" AND
TgtProcCmdLine ContainsCIS "process call create"
 
-- WMIC remote execution
TgtProcName = "wmic.exe" AND
TgtProcCmdLine ContainsCIS "/node:"

T1053.005 - Scheduled Task

-- Schtasks creation
(TgtProcName = "schtasks.exe" AND TgtProcCmdLine ContainsCIS "/create") OR
(SrcProcCmdLine ContainsCIS "New-ScheduledTask" OR
 SrcProcCmdScript ContainsCIS "New-ScheduledTask")
 
-- Via Indicator
IndicatorName = "ScheduleTaskRegister" AND
SrcProcParentName Not In ("services.exe", "OfficeClickToRun.exe", "svchost.exe")

Persistence (TA0003)

T1547.001 - Registry Run Keys

-- Run key modifications
(RegistryKeyPath ContainsCIS "Windows\\CurrentVersion\\Run" AND
EventType In ("Registry Key Create", "Registry Value Create", "Registry Value Modified")) AND
SrcProcParentName Not In ("smss.exe", "svchost.exe", "SetupHost.exe", "msiexec.exe")
 
-- Startup folder file creation
FileFullName ContainsCIS "Programs\\Startup" AND
TgtFileExtension In Contains ("exe", "vbs", "bat", "cmd", "ps1", "lnk") AND
EventType = "File Creation"

T1053.005 - Scheduled Tasks (Persistence)

IndicatorName = "ScheduleTaskRegister" AND
SrcProcParentName Not In ("Integrator.exe", "OfficeClickToRun.exe", "services.exe",
"OneDriveSetup.exe", "Ccm32BitLauncher.exe", "WmiPrvSE.exe")

T1543.003 - Windows Service

-- Service creation via sc.exe
TgtProcName = "sc.exe" AND
TgtProcCmdLine Contains "binPath="
 
-- Service creation via PowerShell
SrcProcCmdLine ContainsCIS "New-Service" OR
SrcProcCmdScript ContainsCIS "New-Service"

T1505.003 - Web Shell

-- Web shell file creation
EventType = "File Creation" AND
FileFullName ContainsCIS "inetpub\\wwwroot" AND
TgtFileExtension In Contains Anycase ("jsp", "aspx", "php", "asp") AND
SrcProcName Not In ("explorer.exe", "msdeploy.exe", "w3wp.exe")

T1546.003 - WMI Event Subscription

SrcProcCmdLine ContainsCIS "New-CimInstance -Namespace root/subscription" OR
SrcProcCmdScript ContainsCIS "New-CimInstance -Namespace root/subscription" OR
SrcProcCmdLine ContainsCIS "__EventFilter" OR
SrcProcCmdLine ContainsCIS "CommandLineEventConsumer"

T1037.001 - Logon Scripts

SrcProcCmdLine ContainsCIS "UserInitMprLogonScript" OR
(RegistryKeyPath ContainsCIS "UserInitMprLogonScript" AND
 EventType = "Registry Value Create")

Privilege Escalation (TA0004)

T1548.002 - UAC Bypass

-- Common UAC bypass registry keys
(SrcProcCmdLine ContainsCIS "ms-settings\\shell\\open\\command" OR
SrcProcCmdLine ContainsCIS "mscfile\\shell\\open\\command") OR
-- CMSTPLUA COM bypass
(TgtProcDisplayName = "COM Surrogate" AND
TgtProcCmdLine ContainsCIS "{3E5FC7F9-9A51-4367-9063-A120244FBEC7}")

T1134 - Access Token Manipulation

-- Token impersonation indicators
SrcProcCmdLine ContainsCIS "ImpersonateLoggedOnUser" OR
SrcProcCmdScript ContainsCIS "ImpersonateLoggedOnUser" OR
SrcProcCmdLine ContainsCIS "DuplicateTokenEx" OR
SrcProcCmdScript ContainsCIS "DuplicateTokenEx"

Defense Evasion (TA0005)

T1070.001 - Clear Windows Event Logs

-- Event log clearing
(TgtProcName = "wevtutil.exe" AND TgtProcCmdLine ContainsCIS "cl ") OR
((SrcProcCmdLine ContainsCIS "Clear-EventLog" OR
  SrcProcCmdScript ContainsCIS "Clear-EventLog") AND
 SrcProcParentName Not In ("WmiPrvSE.exe", "svchost.exe"))

T1562.001 - Disable Security Tools

-- Disable Defender
TgtProcCmdLine ContainsCIS "Set-MpPreference" AND
TgtProcCmdLine ContainsCIS "DisableRealtimeMonitoring"
 
-- Disable Sysmon
(TgtProcName = "fltmc.exe" AND TgtProcCmdLine ContainsCIS "unload SysmonDrv") OR
(TgtProcName = "sysmon.exe" AND TgtProcCmdLine ContainsCIS "-u")
 
-- AMSI bypass
SrcProcCmdLine ContainsCIS "AmsiUtils" AND SrcProcCmdLine ContainsCIS "amsiInitFailed" OR
SrcProcCmdScript ContainsCIS "AmsiUtils" AND SrcProcCmdScript ContainsCIS "amsiInitFailed"

T1562.004 - Disable System Firewall

-- Disable Windows Firewall
TgtProcName = "netsh.exe" AND TgtProcCmdLine ContainsCIS "state off"
 
-- Add firewall rules
TgtProcName = "netsh.exe" AND
TgtProcCmdLine ContainsCIS "add rule" AND
TgtProcCmdLine ContainsCIS "dir=in"

T1218.005 - Mshta

-- Mshta spawning processes or loading remote content
(SrcProcName = "mshta.exe" AND EventType = "Open Remote Process Handle") OR
(SrcProcName = "mshta.exe" AND
 SrcProcCmdLine RegExp "https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b")

T1218.011 - Rundll32

-- Rundll32 with suspicious arguments
TgtProcName = "rundll32.exe" AND
(TgtProcCmdLine ContainsCIS "javascript:" OR
 TgtProcCmdLine ContainsCIS "vbscript:" OR
 TgtProcCmdLine ContainsCIS "shell32.dll,Control_RunDLL" OR
 TgtProcCmdLine ContainsCIS ",#")

T1055 - Process Injection

-- MavInject usage
TgtProcName = "mavinject.exe" AND
TgtProcCmdLine ContainsCIS "/injectrunning" AND
SrcProcName Not In ("AppVClient.exe") AND
SrcProcParentName Not In ("smss.exe")
 
-- Process hollowing indicators
SrcProcCmdScript ContainsCIS "Start-Hollow" OR
TgtProcCmdLine ContainsCIS "Start-Hollow"

T1197 - BITS Jobs

-- BITS download
((TgtProcName In Contains Anycase ("bitsadmin.exe", "desktopimgdownldr.exe") AND
  TgtProcCmdLine RegExp "https?:\\/\\/") OR
 (TgtProcName = "powershell.exe" AND TgtProcCmdLine ContainsCIS "Start-BitsTransfer")) AND
SrcProcParentName Not In ("services.exe", "smss.exe", "wininit.exe")

Credential Access (TA0006)

T1003.001 - LSASS Memory

-- LSASS access
TgtProcName = "lsass.exe" AND
EventType = "Open Remote Process Handle" AND
SrcProcName Not In ("svchost.exe", "lsm.exe", "wmiprvse.exe", "taskmgr.exe",
"procexp64.exe", "procexp.exe", "MsMpEng.exe")
 
-- Mimikatz indicators
TgtProcCmdLine In Contains Anycase ("sekurlsa::", "lsadump::", "kerberos::",
"privilege::debug", "token::elevate")

T1003.002 - SAM Database

-- SAM/SYSTEM registry access
(TgtProcCmdLine ContainsCIS "reg save" AND
 TgtProcCmdLine In Contains Anycase ("sam", "system", "security")) OR
(SrcProcCmdLine ContainsCIS "Copy-Item" AND
 SrcProcCmdLine ContainsCIS "config\\SAM")

T1558.003 - Kerberoasting

-- Kerberoast indicators
SrcProcCmdLine ContainsCIS "Invoke-Kerberoast" OR
SrcProcCmdScript ContainsCIS "Invoke-Kerberoast" OR
(TgtProcCmdLine ContainsCIS "setspn" AND TgtProcCmdLine ContainsCIS "-Q")

T1552.001 - Credentials in Files

-- Searching for credential files
(TgtProcCmdLine ContainsCIS "findstr" OR TgtProcCmdLine ContainsCIS "Select-String") AND
TgtProcCmdLine In Contains Anycase ("password", "credential", "secret", "apikey", "token")

Discovery (TA0007)

T1087 - Account Discovery

-- Local account enumeration
TgtProcCmdLine In Contains Anycase ("net user", "net localgroup", "Get-LocalUser",
"Get-LocalGroupMember", "whoami /all")
 
-- Domain account enumeration
TgtProcCmdLine In Contains Anycase ("net group /domain", "Get-ADUser", "Get-ADGroup",
"Get-ADGroupMember", "dsquery")

T1082 - System Information Discovery

TgtProcCmdLine In Contains Anycase ("systeminfo", "hostname", "Get-ComputerInfo",
"wmic computersystem get", "wmic os get")

T1083 - File and Directory Discovery

TgtProcCmdLine In Contains Anycase ("dir /s", "Get-ChildItem -Recurse", "tree /f",
"find / -name", "ls -laR") AND
TgtProcCmdLine In Contains Anycase ("password", "credential", "config", "backup")

T1135 - Network Share Discovery

TgtProcCmdLine In Contains Anycase ("net share", "net view", "Get-SmbShare",
"Get-WmiObject Win32_Share")

Lateral Movement (TA0008)

T1550.002/003 - Pass the Hash / Pass the Ticket

-- Mimikatz PTH/PTT
TgtProcCmdLine In Contains Anycase ("sekurlsa::pth", "/ntlm:", "kerberos::ptt")

T1563.002 - RDP Hijacking

-- RDP session hijacking
SrcProcName = "tscon.exe" AND SrcProcCmdLine ContainsCIS "/dest:"

T1021.001 - Remote Desktop Protocol

-- Scripted RDP credential storage
TgtProcName = "cmdkey.exe" AND
TgtProcCmdLine ContainsCIS "/generic:TERMSRV" AND
TgtProcCmdLine ContainsCIS "/user:" AND
TgtProcCmdLine ContainsCIS "/pass:"

T1021.002 - SMB/Windows Admin Shares

-- Net use and PSDrive mapping
TgtProcCmdLine ContainsCIS "New-PSDrive" OR
(TgtProcName = "net.exe" AND TgtProcCmdLine ContainsCIS "use ")

T1021.006 - Windows Remote Management

-- WinRM/WMIC/PsExec lateral movement
(TgtProcCmdLine ContainsCIS "MMC20.application" AND
 TgtProcCmdLine ContainsCIS "ExecuteShellCommand") OR
(TgtProcName = "wmic.exe" AND TgtProcCmdLine ContainsCIS "/node:" AND
 TgtProcCmdLine ContainsCIS "process call create") OR
((SrcProcName ContainsCIS "psexec.exe" OR
  SrcProcDisplayName = "Execute processes remotely") AND DstIp Is Not Empty)

Collection (TA0009)

T1560.001 - Archive via Utility

-- Data staging via archive
TgtProcName In ("7z.exe", "7za.exe", "rar.exe", "zip.exe", "tar.exe") OR
(TgtProcName = "powershell.exe" AND
 TgtProcCmdLine ContainsCIS "Compress-Archive")

T1113 - Screen Capture

SrcProcCmdLine ContainsCIS "[System.Windows.Forms.Screen]" OR
SrcProcCmdScript ContainsCIS "[System.Windows.Forms.Screen]" OR
SrcProcCmdLine ContainsCIS "CopyFromScreen"

Exfiltration (TA0010)

T1048 - Exfiltration Over Alternative Protocol

-- DNS exfiltration (long subdomains)
EventType = "DNS Resolved" AND
DnsRequest RegExp "^[a-zA-Z0-9]{30,}\\."
 
-- Exfil over ICMP
TgtProcName = "ping.exe" AND
TgtProcCmdLine ContainsCIS "-l" AND
TgtProcCmdLine RegExp "-l [0-9]{4,}"

T1567 - Exfiltration to Cloud Storage

-- Uploads to file sharing services
DnsRequest In Contains Anycase ("dropbox.com", "drive.google.com", "onedrive.live.com",
"mega.nz", "sendspace.com", "wetransfer.com", "file.io") AND
SrcProcName Not In ("OneDrive.exe", "Dropbox.exe", "googledrivesync.exe")

Command and Control (TA0011)

T1071.001 - Web Protocols

-- Suspicious HTTP/HTTPS connections
EventType = "IP Connect" AND
DstPort In (80, 443, 8080, 8443) AND
SrcProcName Not In ("chrome.exe", "firefox.exe", "msedge.exe", "iexplore.exe",
"outlook.exe", "teams.exe", "slack.exe") AND
SrcProcVerifiedStatus != "verified"

T1071.004 - DNS

-- Suspicious DNS queries (potential C2 or tunneling)
EventType = "DNS Resolved" AND
(DnsRequest RegExp "^[a-zA-Z0-9-]{20,}\\." OR  -- Long subdomain
 DnsRequest RegExp "\\.(xyz|top|tk|ml|ga|cf|gq)$")  -- Suspicious TLDs

T1095 - Non-Application Layer Protocol

-- Connections on non-standard ports
EventType = "IP Connect" AND
DstPort Not In (20, 21, 22, 23, 25, 53, 80, 110, 123, 143, 443, 445, 993, 995,
3389, 5985, 5986) AND
NetConnStatus = "SUCCESS"

WATCHLISTS AND AUTOMATION

Creating Watchlists

Watchlists allow scheduled query execution with automatic alerting:

  1. Run your query in Deep Visibility
  2. Click Save to Watchlist
  3. Configure:
    • Name: Descriptive name
    • Description: Purpose and expected results
    • Schedule: Frequency (hourly, daily, weekly)
    • Notification: Email or console alert

Recommended Watchlists

Watchlist NameQuery FocusSchedule
Encoded PowerShellT1059.001Every 4 hours
LSASS AccessT1003.001Every hour
Scheduled Task CreationT1053.005Every 4 hours
Event Log ClearingT1070.001Every hour
Unusual Outbound ConnectionsT1071Daily
New Services CreatedT1543.003Every 4 hours
Web Shell DetectionT1505.003Every hour
Lateral Movement IndicatorsT1021Every 2 hours

Converting to STAR Rules

High-confidence queries can become automated detection rules:

  1. Run query in Deep Visibility
  2. Click Create STAR Rule
  3. Configure rule:
    • Name: Detection rule name
    • Severity: Info/Low/Medium/High/Critical
    • MITRE Mapping: Select relevant technique
    • Response Actions: Alert, Kill, Quarantine, etc.
  4. Deploy to sites/groups

INVESTIGATION WORKFLOW

Using Storyline IDs

When you find suspicious activity, pivot to related events:

-- Find the Storyline ID from initial event
-- Then query all related events
StorylineId = "1234567890abcdef..."

Common Pivot Queries

-- From process to all child processes
SrcProcParentName = "suspicious.exe"
 
-- From file to creating process
FileFullName = "C:\\Users\\user\\malware.exe" AND EventType = "File Creation"
 
-- From network to process
DstIp = "192.168.100.100" AND EventType = "IP Connect"
 
-- From hash to all instances
FileSha256 = "abc123..."
 
-- From user to all activity
SrcProcUser ContainsCIS "compromised_user"
 
-- From endpoint to all events
AgentName = "INFECTED-PC"

Investigation Checklist

## Threat Investigation Checklist
 
Alert/Finding: _________________
Date/Time: _________________
Analyst: _________________
 
### Initial Triage
- [ ] Review alert details and severity
- [ ] Identify affected endpoint(s)
- [ ] Note initial IOCs (hash, IP, domain)
 
### Scope Assessment
- [ ] Search for IOCs across all endpoints
- [ ] Check for lateral movement indicators
- [ ] Identify affected users/accounts
- [ ] Determine data at risk
 
### Timeline Reconstruction
- [ ] Query Storyline for full context
- [ ] Document initial access vector
- [ ] Map attack progression
- [ ] Identify persistence mechanisms
 
### Evidence Collection
- [ ] Export relevant Deep Visibility data
- [ ] Fetch suspicious files for analysis
- [ ] Capture Remote Shell investigation
- [ ] Screenshot key findings
 
### Response Actions
- [ ] Isolate affected endpoints
- [ ] Kill malicious processes
- [ ] Quarantine malicious files
- [ ] Initiate rollback if needed
 
### Documentation
- [ ] Complete investigation notebook
- [ ] Create STAR rule for detection
- [ ] Update IOC list
- [ ] Prepare incident report

POWERSHELL API EXAMPLES

Query Deep Visibility via API

function Invoke-S1DeepVisibilityQuery {
    param(
        [Parameter(Mandatory=$true)]
        [string]$ApiToken,
 
        [Parameter(Mandatory=$true)]
        [string]$ConsoleUrl,
 
        [Parameter(Mandatory=$true)]
        [string]$Query,
 
        [string]$SiteId,
        [string]$FromDate = (Get-Date).AddDays(-1).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"),
        [string]$ToDate = (Get-Date).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"),
        [int]$Limit = 1000
    )
 
    $headers = @{
        "Authorization" = "ApiToken $ApiToken"
        "Content-Type" = "application/json"
    }
 
    $body = @{
        query = $Query
        fromDate = $FromDate
        toDate = $ToDate
        limit = $Limit
    }
 
    if ($SiteId) {
        $body.siteIds = @($SiteId)
    }
 
    $bodyJson = $body | ConvertTo-Json
 
    try {
        $response = Invoke-RestMethod -Uri "$ConsoleUrl/web/api/v2.1/dv/query" `
            -Method POST -Headers $headers -Body $bodyJson
 
        return $response.data
    }
    catch {
        Write-Error "Query failed: $($_.Exception.Message)"
        return $null
    }
}
 
# Example usage
$results = Invoke-S1DeepVisibilityQuery `
    -ApiToken "YOUR_API_TOKEN" `
    -ConsoleUrl "https://tenant.sentinelone.net" `
    -Query 'EventType = "Process Creation" AND SrcProcName = "powershell.exe" AND SrcProcCmdLine ContainsCIS "-enc"'
 
$results | Format-Table AgentName, SrcProcCmdLine -AutoSize

Scheduled Hunting Script

<#
.SYNOPSIS
    Automated threat hunting script for SentinelOne Deep Visibility
.DESCRIPTION
    Runs predefined hunting queries and exports results
#>
 
param(
    [Parameter(Mandatory=$true)]
    [string]$ApiToken,
 
    [Parameter(Mandatory=$true)]
    [string]$ConsoleUrl,
 
    [string]$OutputPath = "C:\ThreatHunting\Results"
)
 
$huntingQueries = @(
    @{
        Name = "Encoded_PowerShell"
        Query = 'EventType = "Process Creation" AND SrcProcName = "powershell.exe" AND SrcProcCmdLine ContainsCIS "-enc"'
        MITRE = "T1059.001"
    },
    @{
        Name = "LSASS_Access"
        Query = 'TgtProcName = "lsass.exe" AND EventType = "Open Remote Process Handle" AND SrcProcName Not In ("svchost.exe","lsm.exe","wmiprvse.exe")'
        MITRE = "T1003.001"
    },
    @{
        Name = "Scheduled_Task_Creation"
        Query = 'IndicatorName = "ScheduleTaskRegister" AND SrcProcParentName Not In ("services.exe","OfficeClickToRun.exe")'
        MITRE = "T1053.005"
    },
    @{
        Name = "Event_Log_Clearing"
        Query = '(TgtProcName = "wevtutil.exe" AND TgtProcCmdLine ContainsCIS "cl ") OR (SrcProcCmdLine ContainsCIS "Clear-EventLog")'
        MITRE = "T1070.001"
    },
    @{
        Name = "Web_Shell_Detection"
        Query = 'EventType = "File Creation" AND FileFullName ContainsCIS "inetpub\wwwroot" AND TgtFileExtension In Contains Anycase ("jsp","aspx","php")'
        MITRE = "T1505.003"
    }
)
 
$headers = @{
    "Authorization" = "ApiToken $ApiToken"
    "Content-Type" = "application/json"
}
 
# Ensure output directory exists
New-Item -Path $OutputPath -ItemType Directory -Force | Out-Null
 
$timestamp = Get-Date -Format "yyyyMMdd-HHmmss"
$summaryResults = @()
 
foreach ($hunt in $huntingQueries) {
    Write-Host "Running hunt: $($hunt.Name) [$($hunt.MITRE)]" -ForegroundColor Cyan
 
    $body = @{
        query = $hunt.Query
        fromDate = (Get-Date).AddDays(-1).ToString("yyyy-MM-ddTHH:mm:ss.fffZ")
        toDate = (Get-Date).ToString("yyyy-MM-ddTHH:mm:ss.fffZ")
        limit = 10000
    } | ConvertTo-Json
 
    try {
        $response = Invoke-RestMethod -Uri "$ConsoleUrl/web/api/v2.1/dv/query" `
            -Method POST -Headers $headers -Body $body
 
        $resultCount = $response.data.Count
 
        $summaryResults += [PSCustomObject]@{
            Hunt = $hunt.Name
            MITRE = $hunt.MITRE
            Results = $resultCount
            Status = if ($resultCount -gt 0) { "FINDINGS" } else { "Clear" }
        }
 
        if ($resultCount -gt 0) {
            Write-Host "  [!] Found $resultCount results" -ForegroundColor Yellow
 
            # Export results
            $outputFile = Join-Path $OutputPath "$($hunt.Name)_$timestamp.csv"
            $response.data | Export-Csv -Path $outputFile -NoTypeInformation
            Write-Host "  [+] Exported to: $outputFile" -ForegroundColor Green
        }
        else {
            Write-Host "  [OK] No findings" -ForegroundColor Green
        }
    }
    catch {
        Write-Host "  [ERROR] Query failed: $($_.Exception.Message)" -ForegroundColor Red
        $summaryResults += [PSCustomObject]@{
            Hunt = $hunt.Name
            MITRE = $hunt.MITRE
            Results = -1
            Status = "ERROR"
        }
    }
 
    Start-Sleep -Seconds 2  # Rate limiting
}
 
# Display summary
Write-Host "`n=== Hunting Summary ===" -ForegroundColor Cyan
$summaryResults | Format-Table -AutoSize
 
# Export summary
$summaryFile = Join-Path $OutputPath "HuntingSummary_$timestamp.csv"
$summaryResults | Export-Csv -Path $summaryFile -NoTypeInformation
Write-Host "Summary exported to: $summaryFile"
 
# Alert on findings
$findings = $summaryResults | Where-Object { $_.Status -eq "FINDINGS" }
if ($findings) {
    Write-Host "`n[ALERT] $($findings.Count) hunts returned findings - review required!" -ForegroundColor Red
}

TROUBLESHOOTING

Common Query Issues

Issue: Query returns no results

  • Verify time range covers expected activity
  • Check query syntax (case sensitivity matters for some fields)
  • Confirm Deep Visibility is enabled on target endpoints
  • Verify endpoint agents are connected

Issue: Query returns too many results

  • Add filters to narrow scope (SrcProcParentName Not In, etc.)
  • Filter by specific site or group
  • Reduce time range
  • Add exclusions for known-good activity

Issue: Query timeout

  • Reduce time range
  • Add more specific filters
  • Query specific site instead of account-wide
  • Use API with pagination for large result sets

Performance Tips

  1. Start narrow, expand later - Begin with specific agent or short time range
  2. Use indexed fields - EventType, ProcessName are optimized
  3. Avoid wildcards at start - Contains "abc" is faster than RegExp ".*abc.*"
  4. Filter early - Put most restrictive conditions first
  5. Use Watchlists - Schedule recurring queries during off-hours

RELATED DOCUMENTATION

  • HOWTO- SentinelOne Control vs Complete Feature Comparison
  • HOWTO- SentinelOne MSP Client Onboarding
  • HOWTO- SentinelOne Threat Investigation Workflow
  • HOWTO- SentinelOne STAR Custom Detection Rules (planned)

SOURCES

  • SentinelOne Deep Visibility Datasheet
  • Rapid Threat Hunting with Storylines
  • SentinelOne-ATTACK-Queries (GitHub)
  • S1QL-Queries (SentinelLabs)
  • SentinelOne Queries Repository
  • SOC Team Power Up Tips
  • MITRE ATT&CK Framework

REVISION HISTORY

VersionDateAuthorChanges
1.02026-01-08CosmicBytezInitial creation

Related Reading

  • SentinelOne Control vs Complete Feature Comparison
  • SentinelOne Forensics Rollback and Remediation
  • SentinelOne Threat Investigation Workflow
#sentinelone#edr#Security#threat-hunting#deployment#policy#automation#forensics#api#incident-response#mitre-attack#detection-rules#firewall

Related Articles

SentinelOne Control vs Complete Feature Comparison

This document provides a comprehensive comparison between SentinelOne Singularity Control and Singularity Complete SKUs to help MSP teams understand the...

17 min read

SentinelOne Forensics Rollback and Remediation

This document provides comprehensive procedures for forensic evidence collection, ransomware rollback, and threat remediation using SentinelOne Complete...

39 min read

SentinelOne Threat Investigation Workflow

When SentinelOne detects a threat on an endpoint, security analysts must quickly investigate the alert to determine if it's a genuine malware infection,...

21 min read
Back to all HOWTOs