← All hunts high TLP:CLEAR

AI-Driven Ransomware and Data Extortion

An automated adversary is exploiting high-severity vulnerabilities or weak credentials to gain initial access, subsequently executing rare processes from writable paths to encrypt files for extortion.

Based on research by ESET Research 2026-10-08 12 steps · 5 queries T1041 T1190 T1486 T1566

Brief

Why this hunt matters

Small and medium-sized businesses often face a widening gap between limited security resources and the increasing speed of automated threats. As highlighted in the ESET article, The quest for simplicity: Why SMBs want advanced protection without the complexity, practitioners need workflows that handle complex attack chains without requiring an army of analysts. This hunt addresses the reality of high-speed ransomware by looking for the transition from a vulnerable state to active data destruction.

How the hunt flows

The hunt begins by narrowing the environment down to the most likely targets. The first query identifies hosts with unpatched, high-severity vulnerabilities. This scoping step ensures that subsequent, more intensive telemetry searches focus on the assets most at risk of exploitation.

The second phase looks for signs of entry in parallel. We search for clusters of web server errors (403 and 500) that target configuration files or scripts, which indicates automated probing. Simultaneously, the hunt checks for excessive authentication failures that suggest a credential stuffing or brute force attempt. An agent then correlates these findings to prioritize hosts that are both vulnerable and showing signs of active interest from an adversary.

Once a potential beachhead is identified, the hunt pivots to execution and impact. We search for rare processes running from user-writable directories like AppData or Public. At the same time, we monitor for bursts of file modifications exceeding 1,000 touches per hour. This combination of rare execution and high-speed file activity differentiates ransomware from typical administrative tasks or backup processes.

Finally, the analyst triages the results. If a host shows the full chain—vulnerability, access anomaly, and mass file impact—the hunt provides an automated action to isolate the host and stop further encryption.

What this hunt cannot see

This hunt relies on endpoint telemetry and process-level monitoring. It cannot see activity on unmanaged servers or IoT devices where an agent is not installed. If an attack starts on one of these invisible assets and moves laterally via encrypted channels, this hunt will only pick up the trail once the adversary reaches a managed endpoint. Additionally, we do not inspect network traffic for data exfiltration; if the adversary steals data over HTTPS to a common cloud provider before encrypting, that egress remains a blind spot.

Why this is a hunt, not a detection

A single detection rule for mass file modification often triggers on legitimate software, leading to alert fatigue. This hunt is a playbook because it requires the context of three distinct attack phases. We only reach a high-confidence verdict by correlating the vulnerable state, the initial access evidence, and the rare process execution. This multi-surface approach reduces noise and ensures that response actions, like host isolation, are based on a confirmed attack chain.

Steps

  1. Identify vulnerable hosts

    Query · scoping

    Locate hosts with high-severity vulnerabilities to establish the probable initial attack surface.

    reads hb_vulnerability_findingsql
    SELECT device_uid, cve_uid, title, affected_package_name, affected_package_version FROM hb_vulnerability_finding WHERE severity_id >= {{critical_severity_id}} AND status != 'suppressed' AND last_seen >= datetime('now', '-{{lookback_days}} days')

    What a hit looks like. A list of host identifiers and their vulnerabilities; this establishes where exploitation is most likely to occur.

  2. Web exploitation attempts

    Query · baseline

    Detect automated probing by finding high-severity web errors targeting sensitive application files.

    reads hb_http_activitysql
    SELECT device_hostname, url_path, status_code, COUNT(*) as counts, MIN(time) as first_seen FROM hb_http_activity WHERE status_code IN (403, 500) AND (LOWER(url_path) LIKE '%.php%' OR LOWER(url_path) LIKE '%.jsp%' OR LOWER(url_path) LIKE '%.env%' OR LOWER(url_path) LIKE '%.config%') AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY device_hostname, url_path, status_code HAVING counts > 5

    What a hit looks like. Clusters of 403 or 500 errors targeting PHP, JSP, or configuration files, indicating automated exploitation probes.

  3. Auth anomaly check

    Query · enrichment

    Identify high-volume sign-in failures that indicate password exploitation or brute force attempts.

    reads hb_auth_signinsql
    SELECT actor_user_name, device_hostname, src_endpoint_ip, COUNT(*) as failures FROM hb_auth_signin WHERE status_id = 2 AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY actor_user_name, device_hostname, src_endpoint_ip HAVING failures > 20

    What a hit looks like. Specific user accounts or source IPs exhibiting excessive authentication failures consistent with credential stuffing.

  4. Early-stage triage

    Agent triage

    Identify vulnerable hosts showing signs of active exploitation.

  5. Rare writable processes

    Query · detection candidate

    Detect malicious code deployment by finding rare binaries running from user-writable directories.

    reads hb_process_activitysql
    SELECT process_name, process_path, COUNT(DISTINCT device_hostname) as fleet_count, MIN(time) as first_seen FROM hb_process_activity WHERE (LOWER(process_path) LIKE '%\users\public\%' OR LOWER(process_path) LIKE '%\appdata\%') AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY process_name, process_path HAVING fleet_count <= 2

    What a hit looks like. Processes with low fleet prevalence running from suspicious, user-writable locations.

  6. High-speed file impact

    Query · triage

    Detect ransomware encryption activity by identifying processes with extreme bursts of file touches.

    reads hb_file_activitysql
    SELECT device_hostname, process_name, COUNT(*) as file_touches FROM hb_file_activity WHERE activity_id IN (1, 3, 5) AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-1 hours') GROUP BY device_hostname, process_name HAVING file_touches > 1000

    What a hit looks like. A single process modifying or renaming over 1,000 files in a single hour, consistent with high-speed encryption.

  7. Follow-on triage

    Agent triage

    Correlate early access beachheads with execution and file-level impact evidence.

  8. Route on verdict

    Decision

    Direct response based on the agent's findings.

  9. Contain host

    Response action

    Isolate the compromised endpoint to prevent further data encryption or exfiltration.

  10. Analyst deep dive

    Analyst task

    Perform manual forensic review to confirm the attack vector and assess data loss.

  11. Close out hunt

    Analyst task

    Document the hunt outcome and confirm the current security posture.

Coverage

Scenario coverage

StageCoveredHow, or why not
Phishing and Application Exploitation
T1566 · T1190
Yes identify-vulnerable-hosts, web-exploitation-signs, auth-anomaly-check
Malicious Code Execution Yes rare-writable-processes
Data Exfiltration
T1041
Not visible Requires specialized egress inspection or proxy telemetry not currently listed in the available surfaces.
Ransomware Encryption
T1486
Yes mass-file-ops

Blind spots

  • Needs comprehensive endpoint agent coverage. Attacks starting on unmanaged assets remain invisible to endpoint-based process and file monitoring. It would answer Whether unmanaged servers or IoT devices were the entry point..
  • Needs SSL/TLS inspection or network proxy logs. Without traffic inspection, data exfiltration over standard web channels is indistinguishable from normal user activity. It would answer Whether sensitive data was exfiltrated via HTTPS to common cloud storage..

Parameters & data

Parameters

ParameterTypeDefaultWhat it is
critical_severity_idnumber4Minimum severity ID for vulnerability findings (4=High, 5=Critical).
lookback_daysnumber14Days of history to examine.
scope_hostslist[host]—Optional list of hostnames to focus the search; if empty, the whole estate is searched.

Telemetry

SourceCategoryTelemetry
Endpoint telemetry (hb_ surfaces)endpointendpoint
Identity / sign-in telemetryidentityidentity
Web server / proxy logssiemnetwork

Source

Download hunt.md Definition (JSON) An open hunt.md file; it runs anywhere that reads the format.
---
analysis: This hunt correlates three distinct attack phases across five telemetry
  surfaces. A single rule might flag mass file modifications but produce false positives
  for backup software; this hunt requires the presence of vulnerability context, initial
  access anomalies, and rare process execution to confirm a malicious intrusion.
blind_spots:
- id: unmanaged-assets
  question: Whether unmanaged servers or IoT devices were the entry point.
  requires: comprehensive endpoint agent coverage
  risk: Attacks starting on unmanaged assets remain invisible to endpoint-based process
    and file monitoring.
- id: encrypted-egress
  question: Whether sensitive data was exfiltrated via HTTPS to common cloud storage.
  requires: SSL/TLS inspection or network proxy logs
  risk: Without traffic inspection, data exfiltration over standard web channels is
    indistinguishable from normal user activity.
  stage: exfiltration-of-stolen-data
coverage:
- stage: initial-access-phishing-and-exploitation
  status: covered
  steps:
  - identify-vulnerable-hosts
  - web-exploitation-signs
  - auth-anomaly-check
- stage: execution-of-malicious-code
  status: covered
  steps:
  - rare-writable-processes
- blind_spot: encrypted-egress
  reason: Requires specialized egress inspection or proxy telemetry not currently
    listed in the available surfaces.
  stage: exfiltration-of-stolen-data
  status: not_visible
- stage: ransomware-impact
  status: covered
  steps:
  - mass-file-ops
guardrails:
  claims: no_unsupported
  evidence: citation_required
  missing_data: not_benign
  telemetry: untrusted
hunt:
  applicability: campaign-specific
  handoff: promote-to-detection
  justification: SMBs are increasingly targeted by automated ransomware. A negative
    result over the scoped vulnerable estate confirms that these assets are not currently
    undergoing a high-speed encryption campaign.
  methodology: model-assisted
  trigger: intel-report
hypothesis: An automated adversary is exploiting high-severity vulnerabilities or
  weak credentials to gain initial access, subsequently executing rare processes from
  writable paths to encrypt files for extortion.
labels:
- hunt
- attack.t1041
- attack.t1190
- attack.t1486
- attack.t1566
- execution
- exfiltration
- impact
- initial access
name: AI-Driven Ransomware and Data Extortion
parameters:
  critical_severity_id:
    default: '4'
    description: Minimum severity ID for vulnerability findings (4=High, 5=Critical).
    from:
      kind: manual
      observed: '2024-10-26'
      ref: vulnerability-threshold
    type: number
  lookback_days:
    default: '14'
    description: Days of history to examine.
    from:
      kind: manual
      observed: '2024-10-26'
      ref: hunt-standard-lookback
    type: number
  scope_hosts:
    default: []
    description: Optional list of hostnames to focus the search; if empty, the whole
      estate is searched.
    from:
      kind: manual
      observed: '2024-10-26'
      ref: scoping-parameter
    type: list[host]
provenance:
  authors:
  - name: Huntbase hunt generation
    org: huntbase.io
  generated:
    by: huntbase-hunt-generation
    from: https://www.welivesecurity.com/en/business-security/quest-simplicity-why-smbs-want-advanced-protection-without-complexity/
    gates:
    - dry-run
    - lint
    model: hb_google/gemini-3-flash-preview
rationale: Scope the hunt starting with hosts that show high-severity CVEs in hb_vulnerability_finding.
  Use the results from the first query to populate the scope_hosts parameter if focusing
  on specific assets.
references:
- name: 'The quest for simplicity: Why SMBs want advanced protection without the complexity'
  url: https://www.welivesecurity.com/en/business-security/quest-simplicity-why-smbs-want-advanced-protection-without-complexity/
related:
- hunt: lateral-movement-smb-rdp
  reason: This hunt focuses on the vertical path from initial access to ransomware
    impact; lateral movement is a distinct phase requiring separate authentication
    and network audit logs.
  relation: out-of-scope-alternative
scenario:
  stages:
  - name: Phishing and Application Exploitation
    observables:
    - Personalized phishing messages
    - Exploitation of internet-facing vulnerabilities
    - Exploitation of weak passwords
    slug: initial-access-phishing-and-exploitation
    tactic: initial-access
    techniques:
    - T1566
    - T1190
  - name: Malicious Code Execution
    observables:
    - Deployment of malicious code
    - Autonomous AI agents exploiting passwords and creating personas
    - Execution of AI-assisted workflows and chatbots
    slug: execution-of-malicious-code
    tactic: execution
  - name: Data Exfiltration
    observables:
    - Exfiltration over existing C2 channels
    - Data theft extortion
    slug: exfiltration-of-stolen-data
    tactic: exfiltration
    techniques:
    - T1041
  - name: Ransomware Encryption
    observables:
    - Ransomware encryption of files
    - Data encrypted for impact
    slug: ransomware-impact
    tactic: impact
    techniques:
    - T1486
  summary: Threat actors targeting SMBs, including state-backed and financially motivated
    groups, are utilizing AI to accelerate attack chains from initial reconnaissance
    to impact. These campaigns typically involve personalized phishing or vulnerability
    exploitation followed by the deployment of malicious code, leading to data exfiltration
    and ransomware encryption.
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
  web:
    category: siem
    name: Web server / proxy logs
    telemetry:
    - network
tlp: clear
type: investigation
---


# AI-Driven Ransomware and Data Extortion

This hunt identifies the progression of high-speed ransomware attacks starting from initial access attempts via application exploitation or credential abuse. It scopes the hunt to vulnerable assets, correlates those vulnerabilities with anomalous sign-ins and web traffic, and then pivots to find evidence of malicious execution and bulk file impact. This phased approach is designed to catch automated threats before they complete the encryption phase.

## identify-vulnerable-hosts
<!-- Identify vulnerable hosts -->
Locate hosts with high-severity vulnerabilities to establish the probable initial attack surface.

```sqlite target=endpoint role=scoping params=(critical_severity_id=critical_severity_id, lookback_days=lookback_days)
~~~yaml
expected: A list of host identifiers and their vulnerabilities; this establishes where
  exploitation is most likely to occur.
reads:
- device_uid
- cve_uid
- title
- affected_package_name
- affected_package_version
- severity_id
- status
- last_seen
silence: not_evidence_of_absence
source: hb_vulnerability_finding
verified: dry-run
verified_at: '2026-10-08'
~~~
SELECT device_uid, cve_uid, title, affected_package_name, affected_package_version FROM hb_vulnerability_finding WHERE severity_id >= {{critical_severity_id}} AND status != 'suppressed' AND last_seen >= datetime('now', '-{{lookback_days}} days')
```

## initial-access-parallel
<!-- Gather initial access evidence -->
parallel:
- → web-exploitation-signs
- → auth-anomaly-check
join: → early-stage-triage

## web-exploitation-signs
<!-- Web exploitation attempts -->
Detect automated probing by finding high-severity web errors targeting sensitive application files.

```sqlite target=web role=baseline params=(lookback_days=lookback_days, scope_hosts=scope_hosts)
~~~yaml
baseline:
  compare: first_seen
  window: '{{lookback_days}}d'
expected: Clusters of 403 or 500 errors targeting PHP, JSP, or configuration files,
  indicating automated exploitation probes.
prevalence:
  by: device_hostname
  key:
  - url_path
  - status_code
  rare_below: 5
reads:
- device_hostname
- url_path
- status_code
- time
silence: not_evidence_of_absence
source: hb_http_activity
verified: dry-run
verified_at: '2026-10-08'
~~~
SELECT device_hostname, url_path, status_code, COUNT(*) as counts, MIN(time) as first_seen FROM hb_http_activity WHERE status_code IN (403, 500) AND (LOWER(url_path) LIKE '%.php%' OR LOWER(url_path) LIKE '%.jsp%' OR LOWER(url_path) LIKE '%.env%' OR LOWER(url_path) LIKE '%.config%') AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY device_hostname, url_path, status_code HAVING counts > 5
```

## auth-anomaly-check
<!-- Auth anomaly check -->
Identify high-volume sign-in failures that indicate password exploitation or brute force attempts.

```sqlite target=identity role=enrichment params=(lookback_days=lookback_days, scope_hosts=scope_hosts)
~~~yaml
expected: Specific user accounts or source IPs exhibiting excessive authentication
  failures consistent with credential stuffing.
reads:
- actor_user_name
- device_hostname
- src_endpoint_ip
- status_id
- time
silence: not_evidence_of_absence
source: hb_auth_signin
verified: dry-run
verified_at: '2026-10-08'
~~~
SELECT actor_user_name, device_hostname, src_endpoint_ip, COUNT(*) as failures FROM hb_auth_signin WHERE status_id = 2 AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY actor_user_name, device_hostname, src_endpoint_ip HAVING failures > 20
```

## early-stage-triage
<!-- Early-stage triage -->
```agent target=hunter
cite: required
context:
- identify-vulnerable-hosts
- web-exploitation-signs
- auth-anomaly-check
max_iterations: 4
objective: Identify hosts that are both vulnerable and showing signs of active exploitation
  or credential abuse. Prioritize hosts that appear in the results of identify-vulnerable-hosts
  AND at least one of web-exploitation-signs or auth-anomaly-check.
success_criteria: A per-host verdict of malicious | suspicious for initial access,
  citing matching vulnerability and anomaly data.
tools:
- endpoint
- identity
- web
```

## follow-on-parallel
<!-- Gather execution and impact evidence -->
parallel:
- → rare-writable-processes
- → mass-file-ops
join: → follow-on-triage

## rare-writable-processes
<!-- Rare writable processes -->
Detect malicious code deployment by finding rare binaries running from user-writable directories.

```sqlite target=endpoint role=detection-candidate params=(lookback_days=lookback_days, scope_hosts=scope_hosts)
~~~yaml
baseline:
  compare: first_seen
  window: '{{lookback_days}}d'
expected: Processes with low fleet prevalence running from suspicious, user-writable
  locations.
prevalence:
  by: device_hostname
  key:
  - process_name
  - process_path
  rare_below: 3
reads:
- device_hostname
- process_name
- process_path
- time
silence: not_evidence_of_absence
source: hb_process_activity
verified: dry-run
verified_at: '2026-10-08'
~~~
SELECT process_name, process_path, COUNT(DISTINCT device_hostname) as fleet_count, MIN(time) as first_seen FROM hb_process_activity WHERE (LOWER(process_path) LIKE '%\users\public\%' OR LOWER(process_path) LIKE '%\appdata\%') AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY process_name, process_path HAVING fleet_count <= 2
```

## mass-file-ops
<!-- High-speed file impact -->
Detect ransomware encryption activity by identifying processes with extreme bursts of file touches.

```sqlite target=endpoint role=triage params=(scope_hosts=scope_hosts)
~~~yaml
expected: A single process modifying or renaming over 1,000 files in a single hour,
  consistent with high-speed encryption.
reads:
- device_hostname
- process_name
- activity_id
- time
silence: not_evidence_of_absence
source: hb_file_activity
verified: dry-run
verified_at: '2026-10-08'
~~~
SELECT device_hostname, process_name, COUNT(*) as file_touches FROM hb_file_activity WHERE activity_id IN (1, 3, 5) AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-1 hours') GROUP BY device_hostname, process_name HAVING file_touches > 1000
```

## follow-on-triage
<!-- Follow-on triage -->
```agent target=hunter
cite: required
context:
- early-stage-triage
- rare-writable-processes
- mass-file-ops
max_iterations: 6
objective: Determine if any host identified as suspicious in early-stage-triage is
  also exhibiting malicious execution and mass file modification consistent with ransomware.
  Cite the relationship between the vulnerable state, the initial access anomaly,
  and the follow-on impact.
success_criteria: A definitive verdict for each host citing evidence from at least
  three surfaces to confirm a full attack chain.
tools:
- endpoint
- identity
- web
```

## route-on-verdict
<!-- Route on verdict -->
if~: "the follow-on-triage verdict is malicious for at least one host" (confidence: high, judge=hunter)
then: → contain-host
indeterminate: → analyst-deep-dive
unavailable: → analyst-deep-dive (blind_spot: unmanaged-assets)
else: → close-out-hunt

## contain-host
<!-- Contain host -->
```action target=endpoint
~~~yaml
approval: required
~~~
Isolate the host and collect the binary identified in the rare-writable-processes step.
```
→ analyst-deep-dive

## analyst-deep-dive
<!-- Analyst deep dive -->
```manual target=analyst
Review the full process tree on the compromised host, check for signs of lateral movement via SMB or RDP, and update the vulnerability management plan.
```
→ end

## close-out-hunt
<!-- Close out hunt -->
```manual target=analyst
Log the examined period and confirm whether any indicators of high-speed ransomware were detected.
```
→ 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.