Search Open Websites/Domains
This detection identifies automated reconnaissance activity against your organization's public-facing web assets, which may indicate an adversary conducting pre-attack intelligence gathering via T1593. Since T1593 occurs externally (adversaries querying social media, search engines, and public websites), direct network-level detection from within the victim environment is impossible. This detection instead focuses on second-order observable indicators: anomalous automated scraping patterns against your web infrastructure (IIS, Apache, Nginx, Azure WAF), known OSINT/reconnaissance tool user agents in web access logs, high-velocity enumeration from single source IPs, and probing of sensitive disclosure paths such as /.git/, /robots.txt, sitemap.xml, and /admin. These patterns correlate with adversary pre-compromise reconnaissance workflows used by groups including Volt Typhoon, Mustang Panda, and Kimsuky prior to phishing or initial access operations.
let KnownReconUserAgents = dynamic(["python-requests", "python-urllib", "go-http-client", "curl/", "wget/", "nuclei", "nikto", "dirbuster", "gobuster", "feroxbuster", "ffuf", "sqlmap", "scrapy", "zgrab", "masscan", "shodan", "censys", "binaryedge", "nmap", "burpsuite", "zap", "httpx", "katana", "subfinder", "amass", "theHarvester", "mechanize", "httplib2", "libwww-perl"]);
let SensitivePaths = dynamic(["/.git", "/.env", "/wp-admin", "/phpmyadmin", "/admin", "/robots.txt", "/sitemap.xml", "/.htaccess", "/web.config", "/backup", "/config", "/.well-known", "/xmlrpc.php", "/wp-login"]);
W3CIISLog
| where TimeGenerated > ago(1h)
| where isnotempty(cIP)
| extend UserAgentLower = tolower(csUserAgent)
| extend IsReconUA = iff(
csUserAgent has_any (KnownReconUserAgents) or isempty(csUserAgent),
true, false)
| extend IsSensitivePath = iff(
csUriStem has_any (SensitivePaths),
true, false)
| summarize
TotalRequests = count(),
UniqueURIs = dcount(csUriStem),
UniquePaths = make_set(csUriStem, 30),
ReconUARequests = countif(IsReconUA == true),
SensitivePathHits = countif(IsSensitivePath == true),
StatusCodes = make_set(scStatus),
UserAgents = make_set(csUserAgent, 10),
FirstRequest = min(TimeGenerated),
LastRequest = max(TimeGenerated)
by cIP, bin(TimeGenerated, 1h)
| where TotalRequests > 30 or ReconUARequests > 5 or SensitivePathHits > 3 or UniqueURIs > 25
| extend RiskScore = case(
ReconUARequests > 20 and SensitivePathHits > 5, "High",
ReconUARequests > 5 or SensitivePathHits > 3 or UniqueURIs > 50, "Medium",
"Low")
| project
TimeGenerated,
SourceIP = cIP,
TotalRequests,
UniqueURIs,
ReconUARequests,
SensitivePathHits,
SampledPaths = UniquePaths,
UserAgents,
StatusCodes,
RiskScore,
FirstRequest,
LastRequest
| order by RiskScore asc, TotalRequests desc Data Sources
Required Tables
False Positives
- Legitimate commercial web crawlers and search engine bots (Googlebot, Bingbot, DuckDuckGo) may match known user agent patterns — whitelist verified crawler IP ranges from respective ASNs
- Security vendors running authorized external attack surface scans (Qualys, Tenable, Rapid7) will produce reconnaissance-like patterns — maintain an allowlist of authorized scanner IPs
- Developers or internal teams using curl, Python requests, or httpx for legitimate API testing or load testing against production endpoints
- Content delivery networks and uptime monitoring services (Pingdom, UptimeRobot, StatusCake) making frequent automated HEAD/GET requests
- Partners or customers running automated integrations that access your web endpoints at high frequency
References (8)
- https://attack.mitre.org/techniques/T1593/
- https://attack.mitre.org/techniques/T1593/001/
- https://attack.mitre.org/techniques/T1593/002/
- https://attack.mitre.org/techniques/T1593/003/
- https://www.cisa.gov/news-events/cybersecurity-advisories/aa24-038a
- https://www.microsoft.com/en-us/security/blog/2023/05/24/volt-typhoon-targets-us-critical-infrastructure-with-living-off-the-land-techniques/
- https://www.greynoise.io/blog/understanding-mass-internet-scanners
- https://securitytrails.com/blog/google-hacking-techniques
Unlock Pro Content
Get the full detection package for T1593 including response playbook, investigation guide, and atomic red team tests.