← All Threat Hunting ReportsThreat Hunting Exercise

Threat Hunting Exercise: Analyzing Linux SSH Brute Force Credential Stuffing Dataset

This hunt uses a simulated Linux authentication dataset (linux_auth_ssh_bruteforce_2022-10-11T033000.json) capturing T1110.004: Brute Force (Credential Stuffing), where an attacker uses a distributed botnet or proxy pool to attempt SSH logins against many usernames using credentials leaked from unrelated third-party breaches, seeking password reuse across the organization's exposed SSH-facing hosts.

Step 1: Hypothesis Formation

Hypothesis: A single or small set of source IPs generates a high volume of SSH authentication failures across many distinct usernames in a short window, with the username list resembling a common-breach-corpus pattern (email-address-style usernames, common first.last combinations) rather than a targeted guess against known organizational accounts, and at least one attempt eventually succeeds - indicating credential-stuffing rather than a targeted or misconfigured-client brute force. Indicators:

Null Hypothesis: A misconfigured automated client (backup agent, monitoring tool) is retrying a single expired credential rapidly against one username, producing a failure burst without genuine brute-force intent. Invalidate by confirming a single consistent username is targeted and matching the source IP against internal/known-vendor IP ranges.

Rationale: Credential stuffing exploits password reuse rather than any technical vulnerability, so the definitive detection signal is behavioral - volume, username diversity, and source-IP reputation - rather than any single failed-login event, which is common and often benign in isolation.

Step 2: Data Sources and Scope

Step 3: Key Findings

Parsed events (5 shown) confirm 179.43.128.6 attempted SSH logins against 214 distinct usernames in 42 minutes, with a successful login for account j.reyes - whose password matched a value present in a public breach corpus - immediately following the failure burst.

Timestamp (UTC)HostEventDetailIOC/Why Suspicious?
2022-10-11 03:31:04 - 04:12:58srv-bastion-01auth.log (aggregate)1,847 Failed password events from 179.43.128.6 across 214 unique usernamesVolume+Diversity IOC: this scale and username variety is characteristic of automated credential-stuffing tooling (e.g., Hydra with a breach-corpus wordlist), not manual guessing or a misconfigured client.
2022-10-11 03:31:05srv-bastion-01auth.log sampleAttempted usernames include admin, oracle, test, j.reyes, m.patel1985@gmail.comCorpus-Pattern IOC: the mix of generic service-account guesses and email-style usernames is a signature of publicly available breach-derived credential lists rather than organization-specific reconnaissance.
2022-10-11 04:13:02srv-bastion-01auth.logAccepted password for j.reyes from 179.43.128.6Successful-Compromise IOC: a successful authentication immediately following the failure burst for the same source IP confirms the credential-stuffing attack succeeded against at least one account.
-(threat intel)(reputation lookup)179.43.128.6 flagged in threat-intel feeds as associated with SSH brute-force campaigns over the preceding 60 daysCorroborates the source as known malicious infrastructure rather than a legitimate remote worker or partner.
2022-10-11 04:14:30srv-bastion-01auth.logj.reyes session immediately ran sudo -l and cat ~/.ssh/authorized_keysPost-Compromise IOC: immediate privilege-enumeration and SSH-key reconnaissance confirms active, intentional exploitation of the compromised account, not an idle successful login.

Validation:

Step 4: Recommendations & Next Steps

Hypothesis confirmed - a reputation-flagged IP conducted a credential-stuffing attack against 214 usernames on an internet-facing bastion host, successfully compromising the j.reyes account through password reuse and immediately beginning post-compromise reconnaissance!