Response playbooks, investigation guides, and Atomic Red Team tests are Pro-only. Upgrade to unlock the full detection package for THREAT-Recon-CredentialStuffingValidationSweep.
Upgrade to ProDetect Credential Stuffing Validation Sweep (Pre-Attack Breach List Testing) in Sumo Logic CSE
Before committing to an intrusion, many adversaries first validate which entries in a purchased or scraped breach-credential list (combo list) are still live against the target's own authentication endpoints. This reconnaissance activity is distinct from brute force or password spraying: the attacker tries exactly one attacker-supplied username/password pair per account — never guessing or repeating passwords across identities — and deliberately throttles request volume to stay under per-account lockout and rate-limiting thresholds. The result is a low-and-slow sweep touching a very large number of distinct, often unrelated identities (many of which do not even exist in the target directory) from a small pool of shared infrastructure (bulletproof VPS, residential proxy pools, or credential-checker tooling such as OpenBullet/SentryMBA configs) using automation-flavoured or generic user agents. Initial access brokers and groups like Scattered Spider/Muddled Libra routinely run this validation step across many organisations' SSO and webmail portals to build a list of confirmed-working credentials before selling or acting on access. Because no individual account sees more than one or two failures, this activity is invisible to lockout policies and easily missed by detections tuned for classic brute force or spray, making the attempts-per-user ratio and aggregate breadth across a single source the key signals.
MITRE ATT&CK
- Tactic
- Reconnaissance
Sumo Detection Query
_sourceCategory="azure/aad/signin"
| json "properties.status.errorCode" AS error_code
| json "properties.ipAddress" AS src_ip
| json "properties.userPrincipalName" AS user
| where error_code != "0"
| timeslice 6h
| stats count AS TotalAttempts, dcount(user) AS UniqueUsers,
count_if(error_code="50034") AS UserNotFoundCount
by src_ip, _timeslice
| eval AttemptsPerUser=round(TotalAttempts/UniqueUsers, 2)
| where UniqueUsers >= 50 and AttemptsPerUser <= 1.3
| eval UserNotFoundRatio=round(UserNotFoundCount/TotalAttempts, 2)
| sort by UniqueUsers desc Sumo Logic detection for credential-list validation sweeps against Entra ID, flagging source IPs touching 50+ distinct accounts within a 6-hour window at a near-1 attempts-per-user ratio.
Data Sources
Required Tables
False Positives & Tuning
- Bulk onboarding or contractor provisioning scripts
- Identity federation health-check automation
- SaaS integration platforms authenticating on behalf of many tenant users from a shared egress IP
Other platforms for THREAT-Recon-CredentialStuffingValidationSweep
Testing Methodology
Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1Low-and-Slow Credential Sweep Simulation via Python Requests
Expected signal: Authentication logs record one failure per distinct username from the test source IP, spread across the run duration, with no repeated attempts against the same account.
- Test 2Credential Checker Tool Simulation (OpenBullet-style Config Replay)
Expected signal: Web/IdP access logs show sequential single-attempt authentication requests from one source IP with a non-browser user agent string, one distinct username per request.
- Test 3Validated Credential Success Injection
Expected signal: A successful authentication event is recorded from the same source IP that generated the preceding sweep failures.
Unlock playbooks & atomic tests with Pro
Get the full detection package for THREAT-Recon-CredentialStuffingValidationSweep — response playbook and atomic red team tests, plus investigation guidance and hunting queries.
df00tech Pro — £29/user/month