Industrial-scale scanning
Botnets re-scan the entire IPv4 space in hours. Your obscurity is not a defense. Every open port is found, fingerprinted and catalogued automatically.
BadBot.net runs a worldwide network of honeypot sensors that catch scanners, credential-stuffing bots and exploit probes in the act. Every observation feeds a time-decayed reputation score, so you get intelligence that's both accurate and current.
Free, read-only lookups & feeds · No account required · JSON · CSV · TXT
The moment a server gets an IP address, the probing begins. Automated crawlers sweep the
entire internet around the clock, hunting for a forgotten .env file, a reused
password, an unpatched plugin or an exposed admin panel. What used to be the work of skilled
attackers is now commodity automation: cheap, relentless and global.
Botnets re-scan the entire IPv4 space in hours. Your obscurity is not a defense. Every open port is found, fingerprinted and catalogued automatically.
Billions of leaked username/password pairs get replayed against login forms day and night. One reused credential is all it takes for an account takeover.
A newly disclosed vulnerability is being mass-exploited before most teams have read the advisory. Speed of detection is now the whole game.
You can't out-staff a botnet. The only thing that scales against automation is better data: knowing, in real time, which addresses are already behaving badly elsewhere. That's exactly what BadBot.net is built to provide.
Our sensors are decoys with no legitimate purpose. Because a real visitor would never request them, every interaction is a high-confidence abuse signal: captured, classified and scored within a single pipeline.
Lightweight honeypot sensors run across multiple regions and networks, each exposing 60+ trap endpoints that mimic a real, vulnerable web stack.
A bot requests a fake /wp-login.php, /.env, /.git/config or cloud-metadata path. The sensor records who, what and how, and tar-pits the connection.
Signals like brute-force bursts, captured credentials, spam-trap fields and fake-browser fingerprints map each hit to an abuse category and severity, correlated per source to reveal escalation.
Events stream to the gateway as abuse reports, the indicator's reputation is recomputed with time-decay, and the result appears in lookups, correlation and feeds.
Decoy endpoints span the paths attackers love most. A request to any of them is essentially a confession.
Beyond the path, each request is profiled. These signals raise severity and tell automated traffic apart from a curious human.
A dumb honeypot logs that someone rattled a door. Ours are interactive decoys that watch what happens next, correlating each source's moves over time to surface real, escalating attacks.
Our fake admin and webmail logins capture the username and password pairs bots throw at them, hashed on the sensor so raw credentials never leave the box. Rapid repeat attempts are flagged as brute-force bursts.
Hidden honeypot fields sit invisibly inside our forms. A human never sees them; a spam bot fills them in and outs itself the instant it submits.
Decoys for cPanel, Plesk, webmail and Roundcube, phpMyAdmin and app consoles like Jenkins and Tomcat catch the hosting-panel takeover attempts most honeypots never model.
We correlate each source's moves over time: robots.txt recon, fetching an API spec, then hammering the very endpoints it advertised. That is an attack chain, and we score it as one.
A "browser" that omits Accept-Language or Sec-Fetch headers, or never loads a single stylesheet or image, is headless automation in a costume. The mismatched fingerprint gives it away.
The more dangerous a visitor looks, the longer every response takes. We deliberately waste attacker time while logging exactly what they tried.
Every abuse report carries a severity (how serious) and a timestamp. Instead of counting reports forever, BadBot weights each one by an exponential time-decay factor with a 14-day half-life.
A report counts fully on day 0, half as much after 14 days, a quarter after 28, and so on. Many fresh, severe reports push an indicator toward 100; a single old report barely registers. The result is a self-cleaning score: when an IP stops misbehaving, it drifts back down on its own: no manual expiry, far fewer stale false positives.
Exponential decay · 14-day half-life
Query any IP or domain for its current score, activity timeline, category breakdown and ASN/WHOIS enrichment.
Pull deny-lists in JSON, CSV or TXT, or grab full IPv4/IPv6 snapshots for firewalls, SIEMs and edge filters.
Pivot from one IP to related infrastructure via shared ASN, overlapping report sources and sensor spread.
Read-only REST endpoints, OpenAPI 3 description and an LLM-friendly site index for tools and AI agents.
Time-decay keeps the dataset honest. Stale indicators expire on their own, so blocklists stay lean and trustworthy.
Sensors in different regions and networks see attacks you wouldn't: first-party telemetry, not recycled lists.
BadBot.net (also known as BadBot Gateway) is an IP and domain reputation service. It aggregates abuse observations from a worldwide network of honeypot sensors, applies time-decayed scoring, and exposes the results through a simple API, a lookup UI and downloadable high-risk feeds in JSON, CSV and TXT formats.
Sensors are deployed across multiple regions and expose dozens of decoy endpoints: fake WordPress logins, exposed .env and .git files, cloud-metadata endpoints, admin panels and API specs. No legitimate user ever requests these paths, so any hit is a high-confidence signal of automated abuse.
Each sensor classifies the request using behavioral signals (scanner user-agents, request bursts, submitted credentials, hidden honeypot fields, header anomalies and more), tar-pits the connection, and streams the event to the central gateway as an abuse report.
Most honeypots just log that an endpoint was touched. Ours are interactive decoys that detect escalation. They serve believable fake admin and webmail logins and capture credential-stuffing and brute-force attempts (hashing credentials on the sensor, so raw passwords never leave it), catch contact-form spam via hidden honeypot fields, and model control-panel and webmail attacks (cPanel, Plesk, Roundcube, phpMyAdmin, Jenkins, Tomcat).
Most importantly, they correlate each source over time. A recon scan that reads robots.txt, fetches an API spec, then hits the very endpoints it advertised is recognised as one escalating attack chain, fingerprinted as headless automation, and scored far higher than an isolated probe.
Every abuse report contributes its severity multiplied by a time-decay weight. The decay is exponential with a 14-day half-life, 0.5 ^ (age_days / 14), so a report counts fully today, half as much after 14 days and a quarter after 28.
The weighted contributions are summed into a raw score and then mapped onto a 0-100 display scale via 100 × (1 − e^(−raw/10)). Fresh, severe and repeated abuse scores high; quiet indicators stay low.
IP addresses are frequently reassigned, and compromised hosts get cleaned up. Time-decay means an address that stops misbehaving naturally drifts back toward a low score without any manual intervention. That reduces false positives and keeps the feeds current and trustworthy.
High-risk indicator feeds come in JSON (structured records), CSV (for imports and quick review) and TXT (one indicator per line for firewalls, deny-lists and SIEMs). Pre-generated full IPv4 and IPv6 snapshots are also available for bulk ingestion. You can tune min_score and limit to match your risk tolerance.
No. Reputation lookups, correlation, search and the high-risk feeds are read-only and require no API key, subject to per-IP rate limits. An API key is only needed for write operations such as submitting your own abuse reports.
Email info [at] badbot.net for support, data questions, partnerships or to report abuse. The contact page has more detail.