← All hunts medium TLP:CLEAR Part 2 of 2

Internal Discovery and Management Server Exploitation

An attacker is performing noisy internal network discovery and casting a wide net for data shares while attempting to exploit management infrastructure like WSUS for environment-wide persistence.

Based on research by Unit 42 2026-10-14 9 steps · 3 queries T1078 T1110 T1133 T1190

Brief

Why this hunt

Unit 42 recently detailed an intrusion in The Noise Inside the Network: How an Unsophisticated Attack Exposed a Third-Party Risk. In that case, an attacker performed broad, loud discovery and targeted internal management servers to gain a foothold across the environment. While some security teams focus exclusively on stealthy threats, noisy attackers provide a high-fidelity opportunity for detection if you know where to look for the correlation. This hunt focuses on the intersection of broad scanning and management server exploitation.

How the Hunt Flows

The first phase scopes the environment. The query scans the software inventory surface to locate every host running WSUS, Configuration Manager, or other update services. This allows the subsequent steps to focus endpoint-heavy queries on the most likely targets for lateral movement and persistence.

Once the hunt defines the scope, it gathers evidence from two distinct surfaces in parallel. The first query identifies any host performing internal scanning by counting outbound connections to internal IP ranges. We look for sources hitting more than 100 unique destination IPs. This identifies the noise of the discovery phase.

Simultaneously, the hunt examines process activity on the identified management servers. It looks for common management binaries, such as the WSUS service or IIS worker processes, spawning suspicious child processes like cmd.exe, powershell.exe, or discovery tools like whoami.exe. This step aims to catch the exploitation of the management service itself.

In the triage phase, an agent correlates these signals. It links the source IP of the scanning behavior with the host reporting suspicious process activity. This confirms if the scanner is actively targeting the management infrastructure or if a compromised server has begun its own discovery mission. If the agent confirms the correlation, it provides a verdict for the analyst to isolate the host.

Limitations and Blind Spots

This hunt relies on endpoint agent coverage on critical management servers. If a WSUS server lacks an EDR agent, the process-level exploitation remains invisible even if network scanning is detected. Furthermore, while the hunt can identify that an attacker accessed internal portals or documentation shares, it cannot see the specific content of HTTP payloads. We see the path and the request frequency, but the sensitivity of the scraped data requires manual forensic review of the web logs or response captures.

How to Run the Hunt

This hunt is packaged as a hunt.md playbook. It follows a structured, machine-readable format that imports into Huntbase or any compatible runtime. You can run the scoping step first to refine your scope_hosts parameter, or run it against the entire estate if your telemetry allows. The logic focuses on high-volume network events and rare process transitions, making it suitable for periodic execution in environments where management server activity is typically stable.

In this series

Steps

  1. Identify management and update servers

    Query · scoping

    Locate hosts running WSUS or Configuration Manager to focus the exploitation hunt.

    reads hb_software_inventorysql
    SELECT DISTINCT device_hostname, device_uid, package_name, package_version FROM hb_software_inventory WHERE (LOWER(package_name) LIKE '%update services%' OR LOWER(package_name) LIKE '%wsus%' OR LOWER(package_name) LIKE '%configuration manager%')

    What a hit looks like. A list of hostnames providing central IT management. No rows mean these roles are not identifiable in inventory.

  2. Broad internal discovery patterns

    Query · baseline

    Identify hosts that are systematically scanning internal IP ranges across many targets and ports.

    reads hb_network_connectionsql
    SELECT src_endpoint_ip, device_hostname, COUNT(DISTINCT dst_endpoint_ip) as system_count, COUNT(DISTINCT dst_endpoint_port) as port_count, MIN(time) as first_seen, MAX(time) as last_seen FROM hb_network_connection WHERE time >= datetime('now', '-{{lookback_days}} days') AND direction = 'outbound' AND (dst_endpoint_ip LIKE '10.%' OR dst_endpoint_ip LIKE '192.168.%' OR dst_endpoint_ip LIKE '172.16.%' OR dst_endpoint_ip LIKE '172.17.%' OR dst_endpoint_ip LIKE '172.18.%' OR dst_endpoint_ip LIKE '172.19.%' OR dst_endpoint_ip LIKE '172.20.%' OR dst_endpoint_ip LIKE '172.21.%' OR dst_endpoint_ip LIKE '172.22.%' OR dst_endpoint_ip LIKE '172.23.%' OR dst_endpoint_ip LIKE '172.24.%' OR dst_endpoint_ip LIKE '172.25.%' OR dst_endpoint_ip LIKE '172.26.%' OR dst_endpoint_ip LIKE '172.27.%' OR dst_endpoint_ip LIKE '172.28.%' OR dst_endpoint_ip LIKE '172.29.%' OR dst_endpoint_ip LIKE '172.30.%' OR dst_endpoint_ip LIKE '172.31.%') GROUP BY src_endpoint_ip, device_hostname HAVING system_count > {{scan_threshold}} ORDER BY system_count DESC

    What a hit looks like. A small number of source IPs connecting to hundreds of internal systems, indicative of a reconnaissance tool casting a wide net.

  3. Anomalous processes on management servers

    Query · detection candidate

    Find shells or discovery tools spawned by management service binaries on servers in scope.

    reads hb_process_activitysql
    SELECT device_hostname, process_name, process_cmd_line, parent_process_name, user_name, time FROM hb_process_activity WHERE ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND (instr(',' || '{{management_binaries}}' || ',', ',' || LOWER(parent_process_name) || ',') > 0) AND (instr(',' || '{{suspicious_child_commands}}' || ',', ',' || LOWER(process_name) || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days')

    What a hit looks like. A management server (WSUS/IIS) spawning a command shell or discovery tool like whoami or net.exe.

  4. Evaluate discovery and exploitation

    Agent triage

    Determine if internal scanning behavior correlates with suspicious activity on management servers.

  5. Route on verdict

    Decision

    Direct the hunt to containment or investigation tasks based on the triage verdict.

  6. Isolate compromised host

    Response action

    Halt the intrusion by isolating the host identified as either a scanner or a victim of management server exploitation.

  7. Review internal data collection

    Analyst task

    Investigate whether the attacker used the identified host to scrape internal web documentation or enumerate shares.

  8. Close out hunt

    Analyst task

    Finalize findings and recommend remediation for discovered management server vulnerabilities.

Coverage

Scenario coverage

StageCoveredHow, or why not
Broad Internal Discovery Yes internal-scanning-behavior
Internal Data Collection Yes review-collection
WSUS Remote Code Execution Attempt
T1190
Yes identify-management-infrastructure, suspicious-management-activity
Unauthorized VPN Access
T1133 · T1078
Out of scope Belongs to another part of the 'The Noise Inside the Network: How an Unsophisticated Attack Exposed a Third-Party Risk' series.
Internal Credential Brute Force
T1110
Out of scope Belongs to another part of the 'The Noise Inside the Network: How an Unsophisticated Attack Exposed a Third-Party Risk' series.

Blind spots

  • Needs endpoint agent on all management servers. A management server without an agent contributes no process activity, meaning an RCE could succeed silently if network logs are not meticulously reviewed. It would answer Are we missing exploitation attempts on servers without an EDR agent?.
  • Needs hb_http_activity with response body capture. We can see the file paths and request frequency but not the actual contents of the scraped documentation. It would answer What specific sensitive data was inside the attachments that were scraped?.

Parameters & data

Parameters

ParameterTypeDefaultWhat it is
lookback_daysnumber14Days of history to examine.
management_binarieslist[string]wsus_service.exe, w3wp.exe, mmc.exe, sqlservr.exeExecutable names associated with WSUS, IIS, or SQL management roles.
scan_thresholdnumber100Minimum count of unique internal destination IPs per source to define a scanning event.
scope_hostslist[host]—Optional list of hostnames identified as management servers from the scoping step; leave empty to scan the whole estate.
suspicious_child_commandslist[string]cmd.exe, powershell.exe, whoami.exe, net.exe, systeminfo.exe, nltest.exe, query.exeShells and discovery tools indicative of exploitation or manual reconnaissance.

Telemetry

SourceCategoryTelemetry
Endpoint telemetry (hb_ surfaces)endpointendpoint
Network telemetrynetworknetwork

Source

Download hunt.md Definition (JSON) An open hunt.md file; it runs anywhere that reads the format.
---
analysis: "While a single rule might fire on a high-volume scanner, this hunt correlates\
  \ that network signal with specific, rare process-level exploitation attempts on\
  \ management servers\u2014pivoting across three different telemetry surfaces to\
  \ confirm the intrusion's intent and target."
blind_spots:
- id: missing-endpoint-telemetry
  question: Are we missing exploitation attempts on servers without an EDR agent?
  requires: endpoint agent on all management servers
  risk: A management server without an agent contributes no process activity, meaning
    an RCE could succeed silently if network logs are not meticulously reviewed.
  stage: wsus-exploitation-attempt
- id: http-payload-visibility
  question: What specific sensitive data was inside the attachments that were scraped?
  requires: hb_http_activity with response body capture
  risk: We can see the file paths and request frequency but not the actual contents
    of the scraped documentation.
  stage: data-share-and-doc-collection
coverage:
- stage: internal-network-discovery
  status: covered
  steps:
  - internal-scanning-behavior
- stage: data-share-and-doc-collection
  status: covered
  steps:
  - review-collection
- stage: wsus-exploitation-attempt
  status: covered
  steps:
  - identify-management-infrastructure
  - suspicious-management-activity
- reason: 'Belongs to another part of the ''The Noise Inside the Network: How an Unsophisticated
    Attack Exposed a Third-Party Risk'' series.'
  stage: unauthorized-vpn-access
  status: out_of_scope
- reason: 'Belongs to another part of the ''The Noise Inside the Network: How an Unsophisticated
    Attack Exposed a Third-Party Risk'' series.'
  stage: internal-credential-testing
  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: Management infrastructure like WSUS is a high-value target for lateral
    movement and environment-wide persistence. Identifying noisy internal discovery
    prevents an opportunistic attacker from successfully pivoting from a beachhead
    to the core infrastructure.
  methodology: model-assisted
  trigger: intel-report
hypothesis: An attacker is performing noisy internal network discovery and casting
  a wide net for data shares while attempting to exploit management infrastructure
  like WSUS for environment-wide persistence.
labels:
- hunt
- attack.t1078
- attack.t1110
- attack.t1133
- attack.t1190
- collection
- credential access
- discovery
- execution
- initial access
name: Internal Discovery and Management Server Exploitation
parameters:
  lookback_days:
    default: '14'
    description: Days of history to examine.
    from:
      kind: manual
      observed: '2024-10-21'
      ref: default
    type: number
  management_binaries:
    default:
    - wsus_service.exe
    - w3wp.exe
    - mmc.exe
    - sqlservr.exe
    description: Executable names associated with WSUS, IIS, or SQL management roles.
    from:
      kind: manual
      observed: '2024-10-21'
      ref: common-knowledge
    type: list[string]
  scan_threshold:
    default: '100'
    description: Minimum count of unique internal destination IPs per source to define
      a scanning event.
    from:
      kind: article
      observed: '2024-10-13'
      ref: unit42-noise-inside-network
    type: number
  scope_hosts:
    default: []
    description: Optional list of hostnames identified as management servers from
      the scoping step; leave empty to scan the whole estate.
    from:
      kind: manual
      observed: '2024-10-21'
      ref: analyst-defined
    type: list[host]
  suspicious_child_commands:
    default:
    - cmd.exe
    - powershell.exe
    - whoami.exe
    - net.exe
    - systeminfo.exe
    - nltest.exe
    - query.exe
    description: Shells and discovery tools indicative of exploitation or manual reconnaissance.
    from:
      kind: article
      observed: '2024-10-13'
      ref: unit42-noise-inside-network
    type: list[string]
provenance:
  authors:
  - name: Huntbase hunt generation
    org: huntbase.io
  generated:
    by: huntbase-hunt-generation
    from: https://unit42.paloaltonetworks.com/noise-inside-network-third-party-risk/
    gates:
    - dry-run
    - lint
    model: hb_google/gemini-3-flash-preview
rationale: The hunt begins by identifying the WSUS and management servers via software
  inventory. If no WSUS servers are found, proceed with a general estate-wide scanning
  baseline. Focus the process hunt on the hosts identified in step one.
references:
- name: "Unit 42 \u2014 The Noise Inside the Network: How an Unsophisticated Attack\
    \ Exposed a Third-Party Risk"
  url: https://unit42.paloaltonetworks.com/noise-inside-network-third-party-risk/
related:
- hunt: internal-credential-brute-force
  reason: Credential brute forcing is a distinct phase of this intrusion handled by
    a sibling hunt focusing on authentication logs.
  relation: out-of-scope-alternative
- hunt: vpn-entry-credential-abuse
  relation: follows
scenario:
  stages:
  - name: Unauthorized VPN Access
    observables:
    - VPN-based access attempts
    - Third-party-managed external gateway appliance
    - Compromised credentials
    - Authentication without MFA
    slug: unauthorized-vpn-access
    tactic: initial-access
    techniques:
    - T1133
    - T1078
  - name: Broad Internal Discovery
    observables:
    - Host and network scans
    - Interactions with thousands of systems
    - Multiple protocol usage for reconnaissance
    slug: internal-network-discovery
    tactic: discovery
  - name: Internal Credential Brute Force
    observables:
    - Password-guessing campaigns
    - Brute-force authentication attempts
    - Targeting of administrator accounts
    slug: internal-credential-testing
    tactic: credential-access
    techniques:
    - T1110
  - name: Internal Data Collection
    observables:
    - Automated web requests to internal systems
    - Scraping documentation pages and attachments
    - Enumeration of network shares
    slug: data-share-and-doc-collection
    tactic: collection
  - name: WSUS Remote Code Execution Attempt
    observables:
    - WSUS remote code execution vulnerability
    - Central configuration management server
    - Unauthorized code execution attempt
    slug: wsus-exploitation-attempt
    tactic: execution
    techniques:
    - T1190
  summary: An opportunistic attacker exploited a misconfigured third-party VPN gateway
    using compromised credentials to gain access to a bank's internal network. The
    intruder performed broad network scanning, brute-force attempts against administrator
    accounts, and scraped internal documentation before attempting to execute code
    via a WSUS vulnerability, which was blocked by endpoint security.
series:
  index: 2
  slug: the-noise-inside-the-network-how-an-unsophisticated-attack-exposed-a-third-party-risk
  title: 'The Noise Inside the Network: How an Unsophisticated Attack Exposed a Third-Party
    Risk'
  total: 2
severity: medium
targets:
  analyst:
    name: Tier-2 analyst
    role: analyst
  endpoint:
    category: endpoint
    name: Endpoint telemetry (hb_ surfaces)
    telemetry:
    - endpoint
  hunter:
    agent: true
    name: Hunt agent
  network:
    category: network
    name: Network telemetry
    telemetry:
    - network
tlp: clear
type: investigation
---


# Internal Discovery and Management Server Exploitation

This hunt targets the post-access phase of an intrusion characterized by opportunistic, noisy behavior. It identifies central management servers through software inventory, then simultaneously searches for high-volume internal network scanning and suspicious process execution on those identified servers. An agent correlates these signals to identify actors who may have bypassed initial access controls but are now exposing themselves through reconnaissance volume and persistence attempts on update infrastructure.

## identify-management-infrastructure
<!-- Identify management and update servers -->
Locate hosts running WSUS or Configuration Manager to focus the exploitation hunt.

```sqlite target=endpoint role=scoping
~~~yaml
expected: A list of hostnames providing central IT management. No rows mean these
  roles are not identifiable in inventory.
reads:
- device_hostname
- device_uid
- package_name
- package_version
silence: not_evidence_of_absence
source: hb_software_inventory
verified: dry-run
verified_at: '2026-10-14'
~~~
SELECT DISTINCT device_hostname, device_uid, package_name, package_version FROM hb_software_inventory WHERE (LOWER(package_name) LIKE '%update services%' OR LOWER(package_name) LIKE '%wsus%' OR LOWER(package_name) LIKE '%configuration manager%')
```

## parallel-evidence-gathering
<!-- Gather network and endpoint evidence -->
parallel:
- → internal-scanning-behavior
- → suspicious-management-activity
join: → triage-signals

## internal-scanning-behavior
<!-- Broad internal discovery patterns -->
Identify hosts that are systematically scanning internal IP ranges across many targets and ports.

```sqlite target=network role=baseline params=(lookback_days=lookback_days, scan_threshold=scan_threshold)
~~~yaml
baseline:
  compare: new_this_window
  window: '{{lookback_days}}d'
expected: A small number of source IPs connecting to hundreds of internal systems,
  indicative of a reconnaissance tool casting a wide net.
reads:
- src_endpoint_ip
- device_hostname
- dst_endpoint_ip
- dst_endpoint_port
- direction
- time
silence: not_evidence_of_absence
source: hb_network_connection
verified: dry-run
verified_at: '2026-10-14'
~~~
SELECT src_endpoint_ip, device_hostname, COUNT(DISTINCT dst_endpoint_ip) as system_count, COUNT(DISTINCT dst_endpoint_port) as port_count, MIN(time) as first_seen, MAX(time) as last_seen FROM hb_network_connection WHERE time >= datetime('now', '-{{lookback_days}} days') AND direction = 'outbound' AND (dst_endpoint_ip LIKE '10.%' OR dst_endpoint_ip LIKE '192.168.%' OR dst_endpoint_ip LIKE '172.16.%' OR dst_endpoint_ip LIKE '172.17.%' OR dst_endpoint_ip LIKE '172.18.%' OR dst_endpoint_ip LIKE '172.19.%' OR dst_endpoint_ip LIKE '172.20.%' OR dst_endpoint_ip LIKE '172.21.%' OR dst_endpoint_ip LIKE '172.22.%' OR dst_endpoint_ip LIKE '172.23.%' OR dst_endpoint_ip LIKE '172.24.%' OR dst_endpoint_ip LIKE '172.25.%' OR dst_endpoint_ip LIKE '172.26.%' OR dst_endpoint_ip LIKE '172.27.%' OR dst_endpoint_ip LIKE '172.28.%' OR dst_endpoint_ip LIKE '172.29.%' OR dst_endpoint_ip LIKE '172.30.%' OR dst_endpoint_ip LIKE '172.31.%') GROUP BY src_endpoint_ip, device_hostname HAVING system_count > {{scan_threshold}} ORDER BY system_count DESC
```

## suspicious-management-activity
<!-- Anomalous processes on management servers -->
Find shells or discovery tools spawned by management service binaries on servers in scope.

```sqlite target=endpoint role=detection-candidate params=(lookback_days=lookback_days, scope_hosts=scope_hosts, management_binaries=management_binaries, suspicious_child_commands=suspicious_child_commands)
~~~yaml
expected: A management server (WSUS/IIS) spawning a command shell or discovery tool
  like whoami or net.exe.
reads:
- device_hostname
- process_name
- process_cmd_line
- parent_process_name
- user_name
- time
silence: evidence_of_absence
source: hb_process_activity
verified: dry-run
verified_at: '2026-10-14'
~~~
SELECT device_hostname, process_name, process_cmd_line, parent_process_name, user_name, time FROM hb_process_activity WHERE ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND (instr(',' || '{{management_binaries}}' || ',', ',' || LOWER(parent_process_name) || ',') > 0) AND (instr(',' || '{{suspicious_child_commands}}' || ',', ',' || LOWER(process_name) || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days')
```

## triage-signals
<!-- Evaluate discovery and exploitation -->
```agent target=hunter
cite: required
context:
- identify-management-infrastructure
- internal-scanning-behavior
- suspicious-management-activity
max_iterations: 6
objective: Identify if the host performing broad internal scanning is also the reporting
  host or target for suspicious process activity on management servers. Verify if
  the identified scanner targeted the management servers found in the scoping step.
success_criteria: A detailed verdict citing rows that link a scanning IP to subsequent
  process-level exploitation signals on identified management infrastructure.
tools:
- endpoint
- network
```

## route-on-verdict
<!-- Route on verdict -->
if~: "the triage verdict is malicious for at least one host, indicating confirmed scanning or exploitation attempts" (confidence: high, judge=hunter)
then: → isolate-host
indeterminate: → review-collection
unavailable: → review-collection (blind_spot: missing-endpoint-telemetry)
else: → close-out

## isolate-host
<!-- Isolate compromised host -->
```action target=endpoint
~~~yaml
approval: required
~~~
Isolate the host identified in the triage-signals step and initiate full forensic imaging.
```
→ review-collection

## review-collection
<!-- Review internal data collection -->
```manual target=analyst
For the identified malicious IP/host, query hb_http_activity and hb_smb_activity to identify spikes in access to internal portals or documentation shares. Look for automated request patterns and scraping of attachments or documentation pages.
```
→ close-out

## close-out
<!-- Close out hunt -->
```manual target=analyst
Record the hosts examined and the extent of scanning. Recommend patching WSUS RCE vulnerabilities and rotating any credentials potentially identified in the scraped documentation or shares.
```
→ 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.