10 KiB
Botnet IP Blocklist
A blocklist of botnet IPs, based on the Botnet C2 IOCs of Abuse.ch Feodo Tracker, including online and offline entries. Blocklist is updated twice a day.
This blocklist is only useful as a last line of defence after being infected. To avoid infection in the first place, consider using urlhaus-filter.
There are multiple formats available, refer to the appropriate section according to the program used:
- uBlock Origin (uBO) -> IP-based section (recommended)
- Pi-hole -> Domain-based or Hosts-based section
- AdGuard Home -> Domain-based (AdGuard Home)
- AdGuard browser extension -> IP-based (AdGuard)
- Vivaldi -> IP-based (Vivaldi)
- dnscrypt-proxy
- Snort2
- Snort3
- Suricata
- Splunk
For other programs, see Compatibility page in the wiki.
Check out my other filters:
IP-based
I highly recommend to use the upstream version (update every 5 minutes): online+offline or online only.
Import the following URL into uBO to subscribe:
Mirrors
IP-based (AdGuard)
Import the following URL into AdGuard browser extension to subscribe:
Mirrors
IP-based (Vivaldi)
Requires Vivaldi Desktop/Android 3.3+, blocking level must be at least "Block Trackers"
Import the following URL into Vivaldi's Tracker Blocking Sources to subscribe:
Mirrors
- https://curbengh.github.io/malware-filter/botnet-filter-vivaldi.txt
- https://curbengh.github.io/botnet-filter/botnet-filter-vivaldi.txt
- https://malware-filter.gitlab.io/botnet-filter/botnet-filter-vivaldi.txt
- https://malware-filter.pages.dev/botnet-filter-vivaldi.txt
- https://botnet-filter.pages.dev/botnet-filter-vivaldi.txt
Domain-based (AdGuard Home)
This AdGuard Home-compatible blocklist includes domains and IP addresses.
Mirrors
- https://curbengh.github.io/malware-filter/botnet-filter-agh.txt
- https://curbengh.github.io/botnet-filter/botnet-filter-agh.txt
- https://malware-filter.gitlab.io/botnet-filter/botnet-filter-agh.txt
- https://malware-filter.pages.dev/botnet-filter-agh.txt
- https://botnet-filter.pages.dev/botnet-filter-agh.txt
dnscrypt-proxy
Save the rulesets to "/etc/dnscrypt-proxy/". Refer to this guide for auto-update.
Configure dnscrypt-proxy to use the blocklist:
[blocked_ips]
+ blocked_ips_file = '/etc/dnscrypt-proxy/botnet-filter-dnscrypt-blocked-ips.txt'
Mirrors
- https://curbengh.github.io/malware-filter/botnet-filter-dnscrypt-blocked-ips.txt
- https://curbengh.github.io/botnet-filter/botnet-filter-dnscrypt-blocked-ips.txt
- https://malware-filter.gitlab.io/botnet-filter/botnet-filter-dnscrypt-blocked-ips.txt
- https://malware-filter.pages.dev/botnet-filter-dnscrypt-blocked-ips.txt
- https://botnet-filter.pages.dev/botnet-filter-dnscrypt-blocked-ips.txt
Snort2
I highly recommend to use the upstream version which is updated every 5 minutes.
Save the ruleset to "/etc/snort/rules/botnet-filter-suricata.rules". Refer to this guide for auto-update. Snort 2, 3 and Suricata use the same ruleset for this blocklist.
Configure Snort to use the ruleset:
printf "\ninclude \$RULE_PATH/botnet-filter-suricata.rules\n" >> /etc/snort/snort.conf
Mirrors
- https://curbengh.github.io/malware-filter/botnet-filter-suricata.rules
- https://curbengh.github.io/botnet-filter/botnet-filter-suricata.rules
- https://malware-filter.gitlab.io/botnet-filter/botnet-filter-suricata.rules
- https://malware-filter.pages.dev/botnet-filter-suricata.rules
- https://botnet-filter.pages.dev/botnet-filter-suricata.rules
Snort3
I highly recommend to use the upstream version which is updated every 5 minutes.
Save the ruleset to "/etc/snort/rules/botnet-filter-suricata.rules". Refer to this guide for auto-update. Snort 2, 3 and Suricata use the same ruleset for this blocklist.
Configure Snort to use the ruleset:
# /etc/snort/snort.lua
ips =
{
variables = default_variables,
+ include = 'rules/botnet-filter-suricata.rules'
}
Mirrors
- https://curbengh.github.io/malware-filter/botnet-filter-suricata.rules
- https://curbengh.github.io/botnet-filter/botnet-filter-suricata.rules
- https://malware-filter.gitlab.io/botnet-filter/botnet-filter-suricata.rules
- https://malware-filter.pages.dev/botnet-filter-suricata.rules
- https://botnet-filter.pages.dev/botnet-filter-suricata.rules
Suricata
I highly recommend to use the upstream version which is updated every 5 minutes.
Save the ruleset to "/etc/suricata/rules/botnet-filter-suricata.rules". Refer to this guide for auto-update. Snort 2, 3 and Suricata use the same ruleset for this blocklist.
Configure Suricata to use the ruleset:
# /etc/suricata/suricata.yaml
rule-files:
- local.rules
+ - botnet-filter-suricata.rules
Mirrors
- https://curbengh.github.io/malware-filter/botnet-filter-suricata.rules
- https://curbengh.github.io/botnet-filter/botnet-filter-suricata.rules
- https://malware-filter.gitlab.io/botnet-filter/botnet-filter-suricata.rules
- https://malware-filter.pages.dev/botnet-filter-suricata.rules
- https://botnet-filter.pages.dev/botnet-filter-suricata.rules
Splunk
A CSV file for Splunk lookup.
Either upload the file via GUI or save the file in $SPLUNK_HOME/Splunk/etc/system/lookups
or app-specific $SPLUNK_HOME/etc/YourApp/apps/search/lookups
. Refer to this guide or Getwatchlist app for auto-update.
Columns:
ip | message | updated |
---|---|---|
1.2.3.4 | botnet-filter botnet IP detected | 2022-12-21T12:34:56Z |
Mirrors
- https://curbengh.github.io/malware-filter/botnet-filter-splunk.csv
- https://curbengh.github.io/botnet-filter/botnet-filter-splunk.csv
- https://malware-filter.gitlab.io/botnet-filter/botnet-filter-splunk.csv
- https://malware-filter.pages.dev/botnet-filter-splunk.csv
- https://botnet-filter.pages.dev/botnet-filter-splunk.csv
Compressed version
All filters are also available as gzip- and brotli-compressed.
- Gzip: https://malware-filter.gitlab.io/malware-filter/botnet-filter.txt.gz
- Brotli: https://malware-filter.gitlab.io/malware-filter/botnet-filter.txt.br
Issues
This blocklist only accepts new malicious IPs from Feodo Tracker.
FAQ and Guides
See wiki
CI Variables
Optional variables:
CLOUDFLARE_BUILD_HOOK
: Deploy to Cloudflare Pages.NETLIFY_SITE_ID
: Deploy to Netlify.
License
Creative Commons Zero v1.0 Universal
This repository is not endorsed by Abuse.ch.