Wordlist Scanning
Adversaries may iteratively probe infrastructure using brute-forcing and crawling techniques with wordlists to identify content and infrastructure rather than valid credentials. Web content discovery tools such as Dirb, DirBuster, GoBuster, ffuf, and feroxbuster enumerate websites' pages, directories, and hidden administrative portals using generic or target-specific wordlists. Cloud-targeted tools such as s3recon and GCPBucketBrute enumerate public and private cloud storage buckets using globally unique naming patterns. Discovery of exposed content can enable follow-on operations such as exploiting vulnerable pages, accessing sensitive data in cloud storage, or identifying attack surfaces for credential brute-forcing. APT41 and Volatile Cedar (Lebanese Cedar) are known to use directory brute-forcing tools as part of their initial reconnaissance phase.
let ScannerUserAgents = dynamic([
"gobuster", "DirBuster", "dirbuster", "feroxbuster", "ffuf",
"wfuzz", "nikto", "dirsearch", "nuclei", "wapiti", "skipfish",
"s3recon", "GCPBucketBrute", "dirfuzz", "dirb/", "sqlmap",
"w3af", "whatweb", "commix", "nmap scripting"
]);
// Branch 1: Known scanning tool User-Agent strings in IIS web server logs
let UADetection = W3CIISLog
| where TimeGenerated > ago(24h)
| where csUserAgent has_any (ScannerUserAgents)
| summarize
RequestCount = count(),
UniqueUris = dcount(csUriStem),
Errors404 = countif(scStatus == 404),
Errors403 = countif(scStatus == 403),
SamplePaths = make_set(csUriStem, 15),
FirstRequest = min(TimeGenerated),
LastRequest = max(TimeGenerated)
by cIP, csHost, csUserAgent, sSiteName
| extend ScanDurationMinutes = datetime_diff('minute', LastRequest, FirstRequest)
| extend DetectionType = "KnownScannerUserAgent", SuspicionScore = 3
| project FirstRequest, LastRequest, cIP, csHost, csUserAgent, RequestCount, UniqueUris,
Errors404, Errors403, SamplePaths, ScanDurationMinutes, DetectionType, SuspicionScore;
// Branch 2: High-volume 404/403 responses from single source IP (wordlist enumeration pattern)
let VolumeDetection = W3CIISLog
| where TimeGenerated > ago(24h)
| where scStatus in (404, 403)
| summarize
RequestCount = count(),
UniqueUris = dcount(csUriStem),
Errors404 = countif(scStatus == 404),
Errors403 = countif(scStatus == 403),
SamplePaths = make_set(csUriStem, 15),
FirstRequest = min(TimeGenerated),
LastRequest = max(TimeGenerated)
by cIP, csHost, sSiteName, HourBin = bin(TimeGenerated, 1h)
| where RequestCount > 200 and UniqueUris > 100
| extend ScanDurationMinutes = 60, csUserAgent = "Unknown/Multiple"
| extend DetectionType = "HighVolume404Pattern", SuspicionScore = 2
| project FirstRequest, LastRequest, cIP, csHost, csUserAgent, RequestCount, UniqueUris,
Errors404, Errors403, SamplePaths, ScanDurationMinutes, DetectionType, SuspicionScore;
union UADetection, VolumeDetection
| sort by FirstRequest desc Data Sources
Required Tables
False Positives
- Internal vulnerability scanners (Nessus, Qualys, Tenable, Rapid7) running authorized scans from known IPs with recognizable User-Agent strings
- Authorized penetration testing engagements by third-party firms using gobuster, ffuf, DirBuster, or similar tools
- Legitimate SEO crawlers, web archival bots (archive.org), or monitoring services that probe large numbers of URLs and generate 404s
- CI/CD pipeline integration tests or automated health checks that probe non-existent endpoints at high frequency
- CDN or load balancer health probes that request synthetic paths and accumulate 404 errors at the origin
References (11)
- https://attack.mitre.org/techniques/T1595/003/
- https://www.clearskysec.com/wp-content/uploads/2021/01/Lebanese-Cedar-APT.pdf
- https://rhinosecuritylabs.com/gcp/google-cloud-platform-gcp-bucket-enumeration/
- https://github.com/clarketm/s3recon
- https://github.com/OJ/gobuster
- https://github.com/ffuf/ffuf
- https://github.com/epi052/feroxbuster
- https://github.com/sullo/nikto
- https://github.com/xmendez/wfuzz
- https://github.com/maurosoria/dirsearch
- https://github.com/danielmiessler/SecLists
Unlock Pro Content
Get the full detection package for T1595.003 including response playbook, investigation guide, and atomic red team tests.