2021-03-31 10:53:42 +00:00
# PUP Domains Blocklist
2022-01-08 06:01:13 +00:00
> Edit 2021/01/08: All mirrors' links have been updated. The main download link "curben.gitlab.io/malware-filter/" _is not affected_.
2021-03-31 10:53:42 +00:00
A blocklist of domains that host potentially unwanted programs (PUP), based on the [malware-discoverer ](https://github.com/zhouhanc/malware-discoverer ). Blocklist is updated twice a day.
There are multiple formats available, refer to the appropriate section according to the program used:
- uBlock Origin (uBO) -> [URL-based ](#url-based ) section (recommended)
- Pi-hole -> [Domain-based ](#domain-based ) or [Hosts-based ](#hosts-based ) section
- AdGuard Home -> [Domain-based (AdGuard Home) ](#domain-based-adguard-home ) or [Hosts-based ](#hosts-based ) section
- AdGuard browser extension -> [URL-based (AdGuard) ](#url-based-adguard )
- Vivaldi -> [URL-based (Vivaldi) ](#url-based-vivaldi )
- [Hosts ](#hosts-based )
- [Dnsmasq ](#dnsmasq )
2021-04-01 04:29:18 +00:00
- BIND -> BIND [zone ](#bind ) or [RPZ ](#response-policy-zone )
2021-03-31 10:53:42 +00:00
- [Unbound ](#unbound )
2021-07-18 10:15:33 +00:00
- [dnscrypt-proxy ](#dnscrypt-proxy )
2021-03-31 10:53:42 +00:00
- Internet Explorer -> [Tracking Protection List (IE) ](#tracking-protection-list-ie )
- [Snort2 ](#snort2 )
- [Snort3 ](#snort3 )
- [Suricata ](#suricata )
Not sure which format to choose? See [Compatibility ](https://gitlab.com/curben/urlhaus-filter/wikis/compatibility ) page.
2021-06-01 10:05:07 +00:00
Check out my other filters:
- [urlhaus-filter ](https://gitlab.com/curben/urlhaus-filter )
- [phishing-filter ](https://gitlab.com/curben/phishing-filter )
2022-01-02 02:31:38 +00:00
- [tracking-filter ](https://gitlab.com/curben/tracking-filter )
2021-03-31 10:53:42 +00:00
## URL-based
Import the following URL into uBO to subscribe:
- https://curben.gitlab.io/malware-filter/pup-filter.txt
2022-01-02 01:28:37 +00:00
_included by default in uBO >=[1.39.0](https://github.com/gorhill/uBlock/releases/tag/1.39.0); to enable, head to "Filter lists" tab, expand "Malware domains" section and tick "PUP URL Blocklist"._
2021-03-31 10:53:42 +00:00
< details >
< summary > Mirrors< / summary >
2022-01-09 08:49:42 +00:00
- https://curbengh.github.io/malware-filter/pup-filter.txt
- https://curbengh.github.io/pup-filter/pup-filter.txt
2022-01-08 06:01:13 +00:00
- https://curben.gitlab.io/pup-filter/pup-filter.txt
2022-01-09 08:49:42 +00:00
- https://malware-filter.pages.dev/pup-filter.txt
- https://pup-filter.pages.dev/pup-filter.txt
- https://malware-filter.netlify.app/pup-filter.txt
- https://pup-filter.netlify.app/pup-filter.txt
2021-03-31 10:53:42 +00:00
< / details >
## URL-based (AdGuard)
Import the following URL into AdGuard browser extension to subscribe:
- https://curben.gitlab.io/malware-filter/pup-filter-ag.txt
< details >
< summary > Mirrors< / summary >
2022-01-09 08:49:42 +00:00
- https://curbengh.github.io/malware-filter/pup-filter-ag.txt
- https://curbengh.github.io/pup-filter/pup-filter-ag.txt
2022-01-08 06:01:13 +00:00
- https://curben.gitlab.io/pup-filter/pup-filter-ag.txt
2022-01-09 08:49:42 +00:00
- https://malware-filter.pages.dev/pup-filter-ag.txt
- https://pup-filter.pages.dev/pup-filter-ag.txt
- https://malware-filter.netlify.app/pup-filter-ag.txt
- https://pup-filter.netlify.app/pup-filter-ag.txt
2021-03-31 10:53:42 +00:00
< / details >
## URL-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:
- https://curben.gitlab.io/malware-filter/pup-filter-vivaldi.txt
< details >
< summary > Mirrors< / summary >
2022-01-09 08:49:42 +00:00
- https://curbengh.github.io/malware-filter/pup-filter-vivaldi.txt
- https://curbengh.github.io/pup-filter/pup-filter-vivaldi.txt
2022-01-08 06:01:13 +00:00
- https://curben.gitlab.io/pup-filter/pup-filter-vivaldi.txt
2022-01-09 08:49:42 +00:00
- https://malware-filter.pages.dev/pup-filter-vivaldi.txt
- https://pup-filter.pages.dev/pup-filter-vivaldi.txt
- https://malware-filter.netlify.app/pup-filter-vivaldi.txt
- https://pup-filter.netlify.app/pup-filter-vivaldi.txt
2021-03-31 10:53:42 +00:00
< / details >
## Domain-based
This blocklist includes domains and IP addresses.
- https://curben.gitlab.io/malware-filter/pup-filter-domains.txt
< details >
< summary > Mirrors< / summary >
2022-01-09 08:49:42 +00:00
- https://curbengh.github.io/malware-filter/pup-filter-domains.txt
- https://curbengh.github.io/pup-filter/pup-filter-domains.txt
2022-01-08 06:01:13 +00:00
- https://curben.gitlab.io/pup-filter/pup-filter-domains.txt
2022-01-09 08:49:42 +00:00
- https://malware-filter.pages.dev/pup-filter-domains.txt
- https://pup-filter.pages.dev/pup-filter-domains.txt
- https://malware-filter.netlify.app/pup-filter-domains.txt
- https://pup-filter.netlify.app/pup-filter-domains.txt
2021-03-31 10:53:42 +00:00
< / details >
## Domain-based (AdGuard Home)
This AdGuard Home-compatible blocklist includes domains and IP addresses.
- https://curben.gitlab.io/malware-filter/pup-filter-agh.txt
< details >
< summary > Mirrors< / summary >
2022-01-09 08:49:42 +00:00
- https://curbengh.github.io/malware-filter/pup-filter-agh.txt
- https://curbengh.github.io/pup-filter/pup-filter-agh.txt
2022-01-08 06:01:13 +00:00
- https://curben.gitlab.io/pup-filter/pup-filter-agh.txt
2022-01-09 08:49:42 +00:00
- https://malware-filter.pages.dev/pup-filter-agh.txt
- https://pup-filter.pages.dev/pup-filter-agh.txt
- https://malware-filter.netlify.app/pup-filter-agh.txt
- https://pup-filter.netlify.app/pup-filter-agh.txt
2021-03-31 10:53:42 +00:00
< / details >
## Hosts-based
This blocklist includes domains only.
- https://curben.gitlab.io/malware-filter/pup-filter-hosts.txt
< details >
< summary > Mirrors< / summary >
2022-01-09 08:49:42 +00:00
- https://curbengh.github.io/malware-filter/pup-filter-hosts.txt
- https://curbengh.github.io/pup-filter/pup-filter-hosts.txt
2022-01-08 06:01:13 +00:00
- https://curben.gitlab.io/pup-filter/pup-filter-hosts.txt
2022-01-09 08:49:42 +00:00
- https://malware-filter.pages.dev/pup-filter-hosts.txt
- https://pup-filter.pages.dev/pup-filter-hosts.txt
- https://malware-filter.netlify.app/pup-filter-hosts.txt
- https://pup-filter.netlify.app/pup-filter-hosts.txt
2021-03-31 10:53:42 +00:00
< / details >
## Dnsmasq
This blocklist includes domains only.
### Install
```
# Create a new folder to store the blocklist
mkdir -p /usr/local/etc/dnsmasq/
# Create a new cron job for daily update
printf '#!/bin/sh\ncurl -L "https://curben.gitlab.io/malware-filter/pup-filter-dnsmasq.conf" -o "/usr/local/etc/dnsmasq/pup-filter-dnsmasq.conf"\n' > /etc/cron.daily/pup-filter
# cron job requires execution permission
chmod 755 /etc/cron.daily/pup-filter
# Configure dnsmasq to use the blocklist
printf "\nconf-file=/usr/local/etc/dnsmasq/pup-filter-dnsmasq.conf\n" >> /etc/dnsmasq.conf
```
- https://curben.gitlab.io/malware-filter/pup-filter-dnsmasq.conf
< details >
< summary > Mirrors< / summary >
2022-01-09 08:49:42 +00:00
- https://curbengh.github.io/malware-filter/pup-filter-dnsmasq.conf
- https://curbengh.github.io/pup-filter/pup-filter-dnsmasq.conf
2022-01-08 06:01:13 +00:00
- https://curben.gitlab.io/pup-filter/pup-filter-dnsmasq.conf
2022-01-09 08:49:42 +00:00
- https://malware-filter.pages.dev/pup-filter-dnsmasq.conf
- https://pup-filter.pages.dev/pup-filter-dnsmasq.conf
- https://malware-filter.netlify.app/pup-filter-dnsmasq.conf
- https://pup-filter.netlify.app/pup-filter-dnsmasq.conf
2021-03-31 10:53:42 +00:00
< / details >
## BIND
This blocklist includes domains only.
### Install
```
# Create a new folder to store the blocklist
mkdir -p /usr/local/etc/bind/
# Create a new cron job for daily update
printf '#!/bin/sh\ncurl -L "https://curben.gitlab.io/malware-filter/pup-filter-bind.conf" -o "/usr/local/etc/bind/pup-filter-bind.conf"\n' > /etc/cron.daily/pup-filter
# cron job requires execution permission
chmod 755 /etc/cron.daily/pup-filter
# Configure BIND to use the blocklist
printf '\ninclude "/usr/local/etc/bind/pup-filter-bind.conf";\n' >> /etc/bind/named.conf
```
Add this to "/etc/bind/null.zone.file" (skip this step if the file already exists):
```
$TTL 86400 ; one day
@ IN SOA ns.nullzone.loc. ns.nullzone.loc. (
2017102203
28800
7200
864000
86400 )
NS ns.nullzone.loc.
A 0.0.0.0
@ IN A 0.0.0.0
* IN A 0.0.0.0
```
Zone file is derived from [here ](https://github.com/tomzuu/blacklist-named/blob/master/null.zone.file ).
- https://curben.gitlab.io/malware-filter/pup-filter-bind.conf
< details >
< summary > Mirrors< / summary >
2022-01-09 08:49:42 +00:00
- https://curbengh.github.io/malware-filter/pup-filter-bind.conf
- https://curbengh.github.io/pup-filter/pup-filter-bind.conf
2022-01-08 06:01:13 +00:00
- https://curben.gitlab.io/pup-filter/pup-filter-bind.conf
2022-01-09 08:49:42 +00:00
- https://malware-filter.pages.dev/pup-filter-bind.conf
- https://pup-filter.pages.dev/pup-filter-bind.conf
- https://malware-filter.netlify.app/pup-filter-bind.conf
- https://pup-filter.netlify.app/pup-filter-bind.conf
2021-03-31 10:53:42 +00:00
< / details >
2021-04-01 04:29:18 +00:00
## Response Policy Zone
This blocklist includes domains only.
- https://curben.gitlab.io/malware-filter/pup-filter-rpz.conf
< details >
< summary > Mirrors< / summary >
2022-01-09 08:49:42 +00:00
- https://curbengh.github.io/malware-filter/pup-filter-rpz.conf
- https://curbengh.github.io/pup-filter/pup-filter-rpz.conf
2022-01-08 06:01:13 +00:00
- https://curben.gitlab.io/pup-filter/pup-filter-rpz.conf
2022-01-09 08:49:42 +00:00
- https://malware-filter.pages.dev/pup-filter-rpz.conf
- https://pup-filter.pages.dev/pup-filter-rpz.conf
- https://malware-filter.netlify.app/pup-filter-rpz.conf
- https://pup-filter.netlify.app/pup-filter-rpz.conf
2021-04-01 04:29:18 +00:00
< / details >
2021-03-31 10:53:42 +00:00
## Unbound
This blocklist includes domains only.
### Install
```
# Create a new folder to store the blocklist
mkdir -p /usr/local/etc/unbound/
# Create a new cron job for daily update
printf '#!/bin/sh\ncurl -L "https://curben.gitlab.io/malware-filter/pup-filter-unbound.conf" -o "/usr/local/etc/unbound/pup-filter-unbound.conf"\n' > /etc/cron.daily/pup-filter
# cron job requires execution permission
chmod 755 /etc/cron.daily/pup-filter
# Configure Unbound to use the blocklist
printf '\n include: "/usr/local/etc/unbound/pup-filter-unbound.conf"\n' >> /etc/unbound/unbound.conf
```
- https://curben.gitlab.io/malware-filter/pup-filter-unbound.conf
< details >
< summary > Mirrors< / summary >
2022-01-09 08:49:42 +00:00
- https://curbengh.github.io/malware-filter/pup-filter-unbound.conf
- https://curbengh.github.io/pup-filter/pup-filter-unbound.conf
2022-01-08 06:01:13 +00:00
- https://curben.gitlab.io/pup-filter/pup-filter-unbound.conf
2022-01-09 08:49:42 +00:00
- https://malware-filter.pages.dev/pup-filter-unbound.conf
- https://pup-filter.pages.dev/pup-filter-unbound.conf
- https://malware-filter.netlify.app/pup-filter-unbound.conf
- https://pup-filter.netlify.app/pup-filter-unbound.conf
2021-03-31 10:53:42 +00:00
< / details >
2021-07-18 10:15:33 +00:00
## dnscrypt-proxy
### Install
```
# Create a new folder to store the blocklist
mkdir -p /etc/dnscrypt-proxy/
# Create a new cron job for daily update
printf '#!/bin/sh\ncurl -L "https://curben.gitlab.io/malware-filter/pup-filter-dnscrypt-blocked-names.txt" -o "/etc/dnscrypt-proxy/pup-filter-dnscrypt-blocked-names.txt"\n' > /etc/cron.daily/pup-filter
# cron job requires execution permission
chmod 755 /etc/cron.daily/pup-filter
```
Configure dnscrypt-proxy to use the blocklist:
``` diff
[blocked_names]
+ blocked_names_file = '/etc/dnscrypt-proxy/pup-filter-dnscrypt-blocked-names.txt'
```
- https://curben.gitlab.io/malware-filter/pup-filter-dnscrypt-blocked-names.txt
< details >
< summary > Mirrors< / summary >
2022-01-09 08:49:42 +00:00
- https://curbengh.github.io/malware-filter/pup-filter-dnscrypt-blocked-names.txt
- https://curbengh.github.io/pup-filter/pup-filter-dnscrypt-blocked-names.txt
2022-01-08 06:01:13 +00:00
- https://curben.gitlab.io/pup-filter/pup-filter-dnscrypt-blocked-names.txt
2022-01-09 08:49:42 +00:00
- https://malware-filter.pages.dev/pup-filter-dnscrypt-blocked-names.txt
- https://pup-filter.pages.dev/pup-filter-dnscrypt-blocked-names.txt
- https://malware-filter.netlify.app/pup-filter-dnscrypt-blocked-names.txt
- https://pup-filter.netlify.app/pup-filter-dnscrypt-blocked-names.txt
2022-01-08 06:01:13 +00:00
2021-07-18 10:15:33 +00:00
< / details >
2021-03-31 10:53:42 +00:00
## Tracking Protection List (IE)
This blocklist includes domains only.
- https://curben.gitlab.io/malware-filter/pup-filter.tpl
< details >
< summary > Mirrors< / summary >
2022-01-09 08:49:42 +00:00
- https://curbengh.github.io/malware-filter/pup-filter.tpl
- https://curbengh.github.io/pup-filter/pup-filter.tpl
2022-01-08 06:01:13 +00:00
- https://curben.gitlab.io/pup-filter/pup-filter.tpl
2022-01-09 08:49:42 +00:00
- https://malware-filter.pages.dev/pup-filter.tpl
- https://pup-filter.pages.dev/pup-filter.tpl
- https://malware-filter.netlify.app/pup-filter.tpl
- https://pup-filter.netlify.app/pup-filter.tpl
2021-03-31 10:53:42 +00:00
< / details >
## Snort2
This ruleset includes online URLs only. Not compatible with [Snort3 ](#snort3 ).
### Install
```
# Download ruleset
curl -L "https://curben.gitlab.io/malware-filter/pup-filter-snort2.rules" -o "/etc/snort/rules/pup-filter-snort2.rules"
# Create a new cron job for daily update
printf '#!/bin/sh\ncurl -L "https://curben.gitlab.io/malware-filter/pup-filter-snort2.rules" -o "/etc/snort/rules/pup-filter-snort2.rules"\n' > /etc/cron.daily/pup-filter
# cron job requires execution permission
chmod 755 /etc/cron.daily/pup-filter
# Configure Snort to use the ruleset
printf "\ninclude \$RULE_PATH/pup-filter-snort2.rules\n" >> /etc/snort/snort.conf
```
- https://curben.gitlab.io/malware-filter/pup-filter-snort2.rules
< details >
< summary > Mirrors< / summary >
2022-01-09 08:49:42 +00:00
- https://curbengh.github.io/malware-filter/pup-filter-snort2.rules
- https://curbengh.github.io/pup-filter/pup-filter-snort2.rules
2022-01-08 06:01:13 +00:00
- https://curben.gitlab.io/pup-filter/pup-filter-snort2.rules
2022-01-09 08:49:42 +00:00
- https://malware-filter.pages.dev/pup-filter-snort2.rules
- https://pup-filter.pages.dev/pup-filter-snort2.rules
- https://malware-filter.netlify.app/pup-filter-snort2.rules
- https://pup-filter.netlify.app/pup-filter-snort2.rules
2021-03-31 10:53:42 +00:00
< / details >
## Snort3
This ruleset includes online URLs only. Not compatible with [Snort2 ](#snort2 ).
### Install
```
# Download ruleset
curl -L "https://curben.gitlab.io/malware-filter/pup-filter-snort3.rules" -o "/etc/snort/rules/pup-filter-snort3.rules"
# Create a new cron job for daily update
printf '#!/bin/sh\ncurl -L "https://curben.gitlab.io/malware-filter/pup-filter-snort3.rules" -o "/etc/snort/rules/pup-filter-snort3.rules"\n' > /etc/cron.daily/pup-filter
# cron job requires execution permission
chmod 755 /etc/cron.daily/pup-filter
```
Configure Snort to use the ruleset:
``` diff
# /etc/snort/snort.lua
ips =
{
variables = default_variables,
+ include = 'rules/pup-filter-snort3.rules'
}
```
- https://curben.gitlab.io/malware-filter/pup-filter-snort3.rules
< details >
< summary > Mirrors< / summary >
2022-01-09 08:49:42 +00:00
- https://curbengh.github.io/malware-filter/pup-filter-snort3.rules
- https://curbengh.github.io/pup-filter/pup-filter-snort3.rules
2022-01-08 06:01:13 +00:00
- https://curben.gitlab.io/pup-filter/pup-filter-snort3.rules
2022-01-09 08:49:42 +00:00
- https://malware-filter.pages.dev/pup-filter-snort3.rules
- https://pup-filter.pages.dev/pup-filter-snort3.rules
- https://malware-filter.netlify.app/pup-filter-snort3.rules
- https://pup-filter.netlify.app/pup-filter-snort3.rules
2021-03-31 10:53:42 +00:00
< / details >
## Suricata
This ruleset includes online URLs only.
### Install
```
# Download ruleset
curl -L "https://curben.gitlab.io/malware-filter/pup-filter-suricata.rules" -o "/etc/suricata/rules/pup-filter-suricata.rules"
# Create a new cron job for daily update
printf '#!/bin/sh\ncurl -L "https://curben.gitlab.io/malware-filter/pup-filter-suricata.rules" -o "/etc/suricata/rules/pup-filter-suricata.rules"\n' > /etc/cron.daily/pup-filter
# cron job requires execution permission
chmod 755 /etc/cron.daily/pup-filter
```
Configure Suricata to use the ruleset:
``` diff
# /etc/suricata/suricata.yaml
rule-files:
- local.rules
+ - pup-filter-suricata.rules
```
- https://curben.gitlab.io/malware-filter/pup-filter-suricata.rules
< details >
< summary > Mirrors< / summary >
2022-01-09 08:49:42 +00:00
- https://curbengh.github.io/malware-filter/pup-filter-suricata.rules
- https://curbengh.github.io/pup-filter/pup-filter-suricata.rules
2022-01-08 06:01:13 +00:00
- https://curben.gitlab.io/pup-filter/pup-filter-suricata.rules
2022-01-09 08:49:42 +00:00
- https://malware-filter.pages.dev/pup-filter-suricata.rules
- https://pup-filter.pages.dev/pup-filter-suricata.rules
- https://malware-filter.netlify.app/pup-filter-suricata.rules
- https://pup-filter.netlify.app/pup-filter-suricata.rules
2021-03-31 10:53:42 +00:00
< / details >
## Issues
This blocklist operates by blocking the **whole** website, popular websites are excluded from the filters.
*Popular* websites are as listed in the [Umbrella Popularity List ](https://s3-us-west-1.amazonaws.com/umbrella-static/index.html ) (top 1M domains + subdomains), [Tranco List ](https://tranco-list.eu/ ) (top 1M domains) and this [custom list ](src/exclude.txt ).
If you wish to exclude certain website(s) that you believe is sufficiently well-known, please create an [issue ](https://gitlab.com/curben/pup-filter/issues ) or [merge request ](https://gitlab.com/curben/pup-filter/merge_requests ).
This blocklist **only** accepts new malicious URLs from [malware-discoverer ](https://github.com/zhouhanc/malware-discoverer ).
2022-01-11 06:33:52 +00:00
## FAQ and Guides
See [wiki ](https://gitlab.com/curben/malware-filter/-/wikis/home )
2021-03-31 10:53:42 +00:00
## License
[src/ ](src/ ): [CC0 ](LICENSE.md )
2022-01-08 06:01:13 +00:00
filters: Derived from [malware-discoverer ](https://github.com/zhouhanc/malware-discoverer ) with [Zhouhan Chen ](https://zhouhanc.com/ )'s permission
2021-03-31 10:53:42 +00:00
2021-04-03 03:00:23 +00:00
[malware-discoverer ](https://github.com/zhouhanc/malware-discoverer ): All rights reserved by [Zhouhan Chen ](https://zhouhanc.com/ )
2021-03-31 10:53:42 +00:00
[Tranco List ](https://tranco-list.eu/ ): MIT License
[Umbrella Popularity List ](https://s3-us-west-1.amazonaws.com/umbrella-static/index.html ): Available free of charge by Cisco Umbrella