← All hunts high TLP:CLEAR Part 2 of 3

Identity-Based Lateral Movement and Credential Access

An intruder has moved laterally to high-value infrastructure like domain controllers and backup servers using hijacked accounts or newly created local admins, then executed scripts to harvest credentials.

Based on research by The DFIR Report 2026-09-20 9 steps · 3 queries T1003.006 T1021.001 T1021.002 T1059.001 T1484.002 T1570

Brief

Why this hunt?

The DFIR Report recently published "Blurring the Lines" (https://thedfirreport.com/2025/09/08/blurring-the-lines-intrusion-shows-connection-with-three-major-ransomware-gangs/), which details an intrusion where attackers used a mix of techniques from different ransomware playbooks. The report highlights how adversaries focus on administrative accounts to move toward critical systems like domain controllers and backup infrastructure. This hunt provides a structured way to find these identity-based pivots before the final stage of an attack. Identity remains the most consistent choke point in modern intrusions, and monitoring it provides the best chance for containment.

How the Hunt Flows

The hunt begins with a scoping phase on the hb_auth_signin surface. The query identifies successful logins to domain controllers and backup servers that occur rarely. Specifically, it filters for logins seen fewer than ten times from a specific source IP or user within the lookback period. This step isolates the rare administrative access that characterizes account takeover or unauthorized pivoting across the identity plane.

In the second phase, the hunt fans out to search for evidence of activity following these logons. It examines the hb_script_activity surface for keywords like "veeam", "sam", or "sekurlsa". These strings suggest the intruder is attempting to extract secrets from the registry or backup software secrets. At the same time, the hunt checks the hb_process_activity surface for the execution of tools like PsExec or NetScan, and command lines that create new local administrator accounts using the net user command.

The corroboration phase is critical because many attackers use scripts to avoid dropping binaries on disk. By searching for strings related to the Security Account Manager (SAM) or specific backup vendors, the hunt targets the most likely objectives of an attacker who has gained access to a critical server. This combined approach reduces false positives that a single logon rule might generate.

In the final phase, an analyst triages the results. They look for a temporal connection between the rare login and the suspicious script or process execution. If the analyst confirms a malicious link, the hunt directs them to isolate the host and reset the compromised credentials to stop the intrusion. This structured triage ensures that automated or legitimate administrative tasks are correctly identified and dismissed.

What the Hunt Cannot See

This hunt has specific blind spots. It cannot distinguish between an RDP session using a saved credential and one using an interactive login because the sign-in data lacks granular logon type details. Furthermore, if an adversary uses custom tools that do not match the keyword list, or if they execute code entirely in memory without leaving script block logs, the queries will not identify the activity. Obfuscated PowerShell content also poses a challenge if the script block logging does not capture the de-obfuscated commands.

Running the Hunt

This hunt is a hunt.md playbook. You can import it into Huntbase or any other hunt.md-aware runtime. The playbook contains all the necessary queries, parameters, and instructions to execute the search across your environment. By importing the file, you can immediately begin scanning for the administrative pivots described in the DFIR Report.

In this series

Steps

  1. Anomalous Administrative Logons

    Query · scoping

    Identify successful logins to critical servers from source IPs or users that are rare for those hosts.

    reads hb_auth_signinsql
    SELECT dst_endpoint_name, src_endpoint_ip, actor_user_name, COUNT(*) AS logon_count, MIN(time) AS first_logon FROM hb_auth_signin WHERE status_id = 1 AND instr(',' || '{{critical_servers}}' || ',', ',' || LOWER(dst_endpoint_name) || ',') > 0 AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY dst_endpoint_name, src_endpoint_ip, actor_user_name HAVING logon_count < 10 ORDER BY logon_count ASC

    What a hit looks like. A list of critical hosts and users logging in from unusual sources. Silence indicates no infrequent logins were recorded to these systems.

  2. Credential Harvesting Script Content

    Query · enrichment

    Search for executed script blocks that target backup software secrets or local account databases.

    reads hb_script_activitysql
    SELECT device_hostname, actor_user_name, script_content, time FROM hb_script_activity WHERE (LOWER(script_content) LIKE '%veeam%' OR LOWER(script_content) LIKE '%reg save %sam%' OR LOWER(script_content) LIKE '%sekurlsa%' OR LOWER(script_content) LIKE '%dpapi%') AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days')

    What a hit looks like. Script blocks containing keywords associated with credential extraction tools or techniques. Silence suggests no such scripts ran on the scoped hosts.

  3. Lateral Movement Tool Execution

    Query · detection candidate

    Find the execution of remote administration tools or behavioral markers like local admin account creation.

    reads hb_process_activitysql
    SELECT device_hostname, user_name, process_name, process_cmd_line, time FROM hb_process_activity WHERE (instr(',' || '{{lateral_tools}}' || ',', ',' || LOWER(process_name) || ',') > 0 OR LOWER(process_cmd_line) LIKE '%net user % /add%') AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days')

    What a hit looks like. Process command lines for tool execution or local user creation. Silence indicates no matching tool signatures were observed.

  4. Triage Identity Pivot Evidence

    Agent triage

    Assess whether the logon events, script executions, and tool markers indicate a coordinated lateral movement chain.

  5. Route Based on Triage

    Decision

    Direct the hunt toward containment or analyst review based on the triage findings.

  6. Isolate Pivot Host

    Response action

    Contain the threat by isolating the host where malicious lateral movement was confirmed.

  7. Audit Identity Changes

    Analyst task

    Manually verify whether the attacker created new local accounts or modified group memberships.

  8. Close-out Hunt

    Analyst task

    Finalize documentation and record any visibility gaps encountered during the hunt.

Coverage

Scenario coverage

StageCoveredHow, or why not
DCSync and Veeam Credential Harvesting
T1484.002 · T1003.006 · T1059.001
Yes credential-harvesting-scripts, lateral-tool-execution
Lateral Movement via RDP and PsExec
T1021.001 · T1570 · T1021.002
Yes anomalous-admin-logons, lateral-tool-execution
Trojanized EarthTime Installer
T1204.002 · T1036.005
Out of scope Belongs to another part of the 'Blurring the Lines: Intrusion Shows Connection With Three Major Ransomware Gangs' series.
SectopRAT Injection and C2 Fetch
T1059.003 · T1127.001 · T1055
Out of scope Belongs to another part of the 'Blurring the Lines: Intrusion Shows Connection With Three Major Ransomware Gangs' series.
Startup Shortcut and Local Account Creation
T1547.001 · T1136.001
Out of scope Belongs to another part of the 'Blurring the Lines: Intrusion Shows Connection With Three Major Ransomware Gangs' series.
Internal Discovery Tool Deployment
T1087 · T1482 · T1018 · T1046
Out of scope Belongs to another part of the 'Blurring the Lines: Intrusion Shows Connection With Three Major Ransomware Gangs' series.
WinRAR Staging and WinSCP Exfiltration
T1560.001 · T1048.003
Out of scope Belongs to another part of the 'Blurring the Lines: Intrusion Shows Connection With Three Major Ransomware Gangs' series.
SystemBC and Betruger C2 Infrastructure
T1090.003 · T1105
Out of scope Belongs to another part of the 'Blurring the Lines: Intrusion Shows Connection With Three Major Ransomware Gangs' series.
Security Tampering and Masquerading
T1562.001 · T1027 · T1036
Out of scope Belongs to another part of the 'Blurring the Lines: Intrusion Shows Connection With Three Major Ransomware Gangs' series.

Blind spots

  • Needs hb_auth_signin with full logon type support. Legitimate automated administrative tasks might be confused with lateral movement if logon types are not granular. It would answer whether an RDP session used a saved credential or an interactive login.
  • Needs Full PowerShell Script Block Logging (Event ID 4104). Attackers can hide credential-harvesting logic inside complex, in-memory script blocks that bypass simple process command-line detection. It would answer the exact script content when scripts are obfuscated or executed in memory.

Parameters & data

Parameters

ParameterTypeDefaultWhat it is
critical_serverslist[host]dc01, dc02, backup, veeam, filesrvHostnames or substrings for Domain Controllers and Backup servers.
lateral_toolslist[string]psexec.exe, psexesvc.exe, wmiexec.exe, wmiexec.vbs, grixba.exe, netscan.exeCommon lateral movement tool filenames.
lookback_daysnumber14Days of history to examine.
scope_hostslist[host]Optional list of hosts from the scoping step to focus the fan-out.

Telemetry

SourceCategoryTelemetry
Endpoint telemetry (hb_ surfaces)endpointendpoint
Identity / sign-in telemetryidentityidentity

Source

Download hunt.md Definition (JSON) An open hunt.md file; it runs anywhere that reads the format.
---
analysis: This hunt pivots between sign-in anomalies and behavioural script content.
  A single rule firing on a logon is too noisy, and a rule on script keywords misses
  the context of which account performed the action; the hunt weighs the sequence
  across three surfaces to confirm an intrusion.
blind_spots:
- id: no-identity-visibility
  question: whether an RDP session used a saved credential or an interactive login
  requires: hb_auth_signin with full logon type support
  risk: Legitimate automated administrative tasks might be confused with lateral movement
    if logon types are not granular.
  stage: lateral-movement
- id: script-block-logging
  question: the exact script content when scripts are obfuscated or executed in memory
  requires: Full PowerShell Script Block Logging (Event ID 4104)
  risk: Attackers can hide credential-harvesting logic inside complex, in-memory script
    blocks that bypass simple process command-line detection.
  stage: credential-access-and-privilege-escalation
coverage:
- stage: credential-access-and-privilege-escalation
  status: covered
  steps:
  - credential-harvesting-scripts
  - lateral-tool-execution
- stage: lateral-movement
  status: covered
  steps:
  - anomalous-admin-logons
  - lateral-tool-execution
- reason: 'Belongs to another part of the ''Blurring the Lines: Intrusion Shows Connection
    With Three Major Ransomware Gangs'' series.'
  stage: initial-access-trojanized-installer
  status: out_of_scope
- reason: 'Belongs to another part of the ''Blurring the Lines: Intrusion Shows Connection
    With Three Major Ransomware Gangs'' series.'
  stage: execution-sectoprat-injection
  status: out_of_scope
- reason: 'Belongs to another part of the ''Blurring the Lines: Intrusion Shows Connection
    With Three Major Ransomware Gangs'' series.'
  stage: persistence-mechanisms
  status: out_of_scope
- reason: 'Belongs to another part of the ''Blurring the Lines: Intrusion Shows Connection
    With Three Major Ransomware Gangs'' series.'
  stage: discovery-internal-reconnaissance
  status: out_of_scope
- reason: 'Belongs to another part of the ''Blurring the Lines: Intrusion Shows Connection
    With Three Major Ransomware Gangs'' series.'
  stage: collection-and-exfiltration
  status: out_of_scope
- reason: 'Belongs to another part of the ''Blurring the Lines: Intrusion Shows Connection
    With Three Major Ransomware Gangs'' series.'
  stage: command-and-control
  status: out_of_scope
- reason: 'Belongs to another part of the ''Blurring the Lines: Intrusion Shows Connection
    With Three Major Ransomware Gangs'' series.'
  stage: defense-evasion
  status: out_of_scope
guardrails:
  claims: no_unsupported
  evidence: citation_required
  missing_data: not_benign
  telemetry: untrusted
hunt:
  applicability: campaign-specific
  handoff: promote-to-detection
  justification: Lateral movement and credential extraction on backup infrastructure
    are precursors to environment-wide ransomware deployment. Identifying these pivots
    on critical servers provides the highest-value containment opportunity.
  methodology: model-assisted
  trigger: intel-report
hypothesis: An intruder has moved laterally to high-value infrastructure like domain
  controllers and backup servers using hijacked accounts or newly created local admins,
  then executed scripts to harvest credentials.
labels:
- hunt
- attack.t1021.001
- attack.t1021.002
- attack.t1059.001
- attack.t1003.006
- attack.t1484.002
- attack.t1570
name: Identity-Based Lateral Movement and Credential Access
parameters:
  critical_servers:
    default:
    - dc01
    - dc02
    - backup
    - veeam
    - filesrv
    description: Hostnames or substrings for Domain Controllers and Backup servers.
    type: list[host]
  lateral_tools:
    default:
    - psexec.exe
    - psexesvc.exe
    - wmiexec.exe
    - wmiexec.vbs
    - grixba.exe
    - netscan.exe
    description: Common lateral movement tool filenames.
    type: list[string]
  lookback_days:
    default: '14'
    description: Days of history to examine.
    type: number
  scope_hosts:
    default: []
    description: Optional list of hosts from the scoping step to focus the fan-out.
    type: list[host]
provenance:
  authors:
  - name: Huntbase hunt generation
    org: huntbase.io
  generated:
    by: huntbase-hunt-generation
    from: https://thedfirreport.com/2025/09/08/blurring-the-lines-intrusion-shows-connection-with-three-major-ransomware-gangs/
    gates:
    - dry-run
    - lint
    model: hb_google/gemini-3-flash-preview
rationale: Focus the hunt on critical systems including domain controllers, backup
  servers, and file servers. The first query filters specifically for these high-value
  targets to reduce noise from common user logons.
references:
- name: "The DFIR Report \u2014 Blurring the Lines: Intrusion Shows Connection With\
    \ Three Major Ransomware Gangs"
  url: https://thedfirreport.com/2025/09/08/blurring-the-lines-intrusion-shows-connection-with-three-major-ransomware-gangs/
related:
- hunt: discovery-internal-reconnaissance
  reason: Internal reconnaissance using Grixba and NetScan is handled in a separate
    hunt focused on discovery artifacts.
  relation: out-of-scope-alternative
- hunt: earthtime-trojan-ransomware-recon
  relation: follows
scenario:
  stages:
  - name: Trojanized EarthTime Installer
    observables:
    - EarthTime.exe from Downloads folder
    - Brave Pragmatic Network Technology Co., Ltd. revoked certificate
    - GlobalSign GCC R45 EV CodeSigning CA 2020
    slug: initial-access-trojanized-installer
    tactic: initial-access
    techniques:
    - T1204.002
    - T1036.005
  - name: SectopRAT Injection and C2 Fetch
    observables:
    - EarthTime.exe spawning cmd.exe spawning MSBuild.exe with no arguments
    - Process injection into MSBuild.exe
    - Pastebin connection for C2 configuration
    slug: execution-sectoprat-injection
    tactic: execution
    techniques:
    - T1059.003
    - T1127.001
    - T1055
  - name: Startup Shortcut and Local Account Creation
    observables:
    - Shortcut (.lnk) created in %AppData%\Microsoft\Windows\Start Menu\Programs\Startup
    - Creation of a new local account with administrative privileges
    slug: persistence-mechanisms
    tactic: persistence
    techniques:
    - T1547.001
    - T1136.001
  - name: DCSync and Veeam Credential Harvesting
    observables:
    - DCSync attack against Domain Controller
    - PowerShell script executed on backup server to retrieve Veeam credentials
    slug: credential-access-and-privilege-escalation
    tactic: credential-access
    techniques:
    - T1484.002
    - T1003.006
    - T1059.001
  - name: Internal Discovery Tool Deployment
    observables:
    - AdFind.exe
    - SharpHound.exe
    - netscan.exe (SoftPerfect)
    - GT_NET.exe (Grixba)
    - ipconfig
    - nltest
    slug: discovery-internal-reconnaissance
    tactic: discovery
    techniques:
    - T1087
    - T1482
    - T1018
    - T1046
  - name: Lateral Movement via RDP and PsExec
    observables:
    - RDP connections (port 3389) using created local account and built-in Administrator
    - PsExec used to execute SystemBC on remote hosts
    - wmiexec used for remote reconnaissance commands
    slug: lateral-movement
    tactic: lateral-movement
    techniques:
    - T1021.001
    - T1570
    - T1021.002
  - name: WinRAR Staging and WinSCP Exfiltration
    observables:
    - WinRAR archiving file shares
    - WinSCP transferring archives to cloud host via unencrypted FTP
    slug: collection-and-exfiltration
    tactic: exfiltration
    techniques:
    - T1560.001
    - T1048.003
  - name: SystemBC and Betruger C2 Infrastructure
    observables:
    - WakeWordEngine.dll or conhost.dll (SystemBC) in C:\Users\Public\Music\
    - rundll32.exe calling exported Reset function
    - Betruger backdoor deployment
    - 'C2 IPs: 45.141.87.55 (9000, 15647) and 149.28.101.219 (443)'
    slug: command-and-control
    tactic: command-and-control
    techniques:
    - T1090.003
    - T1105
  - name: Security Tampering and Masquerading
    observables:
    - Disabling Microsoft Defender protections
    - Binaries with spoofed metadata (SentinelOne, Avast)
    - Timestomping activities
    - Use of C:\Users\Public\Music\ as staging directory
    slug: defense-evasion
    tactic: defense-evasion
    techniques:
    - T1562.001
    - T1027
    - T1036
  summary: An affiliate threat actor likely linked to multiple ransomware groups used
    a trojanized version of the EarthTime application to deploy SectopRAT and SystemBC.
    They performed extensive internal discovery with tools like AdFind and Grixba,
    moved laterally via RDP and PsExec, and ultimately archived and exfiltrated sensitive
    data via WinSCP over clear-text FTP.
series:
  index: 2
  slug: blurring-the-lines-intrusion-shows-connection-with-three-major-ransomware-gangs
  title: 'Blurring the Lines: Intrusion Shows Connection With Three Major Ransomware
    Gangs'
  total: 3
severity: high
targets:
  analyst:
    name: Tier-2 analyst
    role: analyst
  endpoint:
    category: endpoint
    name: Endpoint telemetry (hb_ surfaces)
    telemetry:
    - endpoint
  hunter:
    agent: true
    name: Hunt agent
  identity:
    category: identity
    name: Identity / sign-in telemetry
    telemetry:
    - identity
tlp: clear
type: investigation
---


# Identity-Based Lateral Movement and Credential Access

This hunt targets the middle and late stages of an intrusion where attackers pivot across the identity plane. It identifies anomalous RDP logons to critical servers followed by the execution of specialized scripts for Veeam credential extraction or Active Directory replication. The hunt uses a funnel flow: scoping for unusual administrative logins, then fanning out to examine the command lines and script text that confirm credential harvesting and lateral pivoting.

## anomalous-admin-logons
<!-- Anomalous Administrative Logons -->
Identify successful logins to critical servers from source IPs or users that are rare for those hosts.

```sqlite target=identity role=scoping params=(lookback_days=lookback_days, critical_servers=critical_servers)
~~~yaml
expected: A list of critical hosts and users logging in from unusual sources. Silence
  indicates no infrequent logins were recorded to these systems.
reads:
- dst_endpoint_name
- src_endpoint_ip
- actor_user_name
- status_id
- time
silence: not_evidence_of_absence
source: hb_auth_signin
verified: dry-run
verified_at: '2026-09-20'
~~~
SELECT dst_endpoint_name, src_endpoint_ip, actor_user_name, COUNT(*) AS logon_count, MIN(time) AS first_logon FROM hb_auth_signin WHERE status_id = 1 AND instr(',' || '{{critical_servers}}' || ',', ',' || LOWER(dst_endpoint_name) || ',') > 0 AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY dst_endpoint_name, src_endpoint_ip, actor_user_name HAVING logon_count < 10 ORDER BY logon_count ASC
```

## corroborate-activity
<!-- Corroborate logons with activity -->
parallel:
- → credential-harvesting-scripts
- → lateral-tool-execution
join: → triage-identity-pivot

## credential-harvesting-scripts
<!-- Credential Harvesting Script Content -->
Search for executed script blocks that target backup software secrets or local account databases.

```sqlite target=endpoint role=enrichment params=(lookback_days=lookback_days, scope_hosts=scope_hosts)
~~~yaml
expected: Script blocks containing keywords associated with credential extraction
  tools or techniques. Silence suggests no such scripts ran on the scoped hosts.
reads:
- device_hostname
- actor_user_name
- script_content
- time
silence: not_evidence_of_absence
source: hb_script_activity
verified: dry-run
verified_at: '2026-09-20'
~~~
SELECT device_hostname, actor_user_name, script_content, time FROM hb_script_activity WHERE (LOWER(script_content) LIKE '%veeam%' OR LOWER(script_content) LIKE '%reg save %sam%' OR LOWER(script_content) LIKE '%sekurlsa%' OR LOWER(script_content) LIKE '%dpapi%') AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days')
```

## lateral-tool-execution
<!-- Lateral Movement Tool Execution -->
Find the execution of remote administration tools or behavioral markers like local admin account creation.

```sqlite target=endpoint role=detection-candidate params=(lookback_days=lookback_days, scope_hosts=scope_hosts, lateral_tools=lateral_tools)
~~~yaml
baseline:
  compare: first_seen
  window: '{{lookback_days}}d'
expected: Process command lines for tool execution or local user creation. Silence
  indicates no matching tool signatures were observed.
prevalence:
  by: device_hostname
  key:
  - process_name
  - process_cmd_line
  rare_below: 3
reads:
- device_hostname
- user_name
- process_name
- process_cmd_line
- time
silence: not_evidence_of_absence
source: hb_process_activity
verified: dry-run
verified_at: '2026-09-20'
~~~
SELECT device_hostname, user_name, process_name, process_cmd_line, time FROM hb_process_activity WHERE (instr(',' || '{{lateral_tools}}' || ',', ',' || LOWER(process_name) || ',') > 0 OR LOWER(process_cmd_line) LIKE '%net user % /add%') AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days')
```

## triage-identity-pivot
<!-- Triage Identity Pivot Evidence -->
```agent target=hunter
cite: required
context:
- anomalous-admin-logons
- credential-harvesting-scripts
- lateral-tool-execution
max_iterations: 5
objective: Determine if any host shows an anomalous administrative login followed
  by credential extraction or lateral tool usage.
success_criteria: A verdict of malicious | suspicious | benign per host with citations
  of the specific rows.
tools:
- endpoint
- identity
```

## route-on-verdict
<!-- Route Based on Triage -->
if~: "the triage verdict is malicious for at least one critical server" (confidence: high, judge=hunter)
then: → isolate-pivot-host
indeterminate: → audit-identity-changes
unavailable: → audit-identity-changes (blind_spot: no-identity-visibility)
else: → close-out-hunt

## isolate-pivot-host
<!-- Isolate Pivot Host -->
```action target=endpoint
~~~yaml
approval: required
~~~
Isolate the compromised host and initiate an emergency password reset for any administrative accounts involved in the suspicious logons.
```
→ audit-identity-changes

## audit-identity-changes
<!-- Audit Identity Changes -->
```manual target=analyst
Review the local administrators group and newly created user accounts on the identified servers. Verify the source IPs of RDP connections in the security event logs to confirm they originate from unauthorized locations.
```
→ close-out-hunt

## close-out-hunt
<!-- Close-out Hunt -->
```manual target=analyst
Record the timeline of lateral movement. Document any missing telemetry such as truncated script blocks or lack of auth protocol details.
```
→ end

Run it

Take this hunt into your environment.

Open it in Huntbase to run every step against your own connections, with Scout weighing the evidence and your analysts in command. Or take the open hunt.md file anywhere that reads the format.

Machine-drafted by huntbase-hunt-generation using hb_google/gemini-3-flash-preview, gated by dry-run, lint, then reviewed by a person.