1 # Phishing URL Blocklist
3 A blocklist of phishing websites, based on the [PhishTank](https://www.phishtank.com/) and [OpenPhish](https://openphish.com/) lists. Blocklist is updated twice a day.
5 There are multiple formats available, refer to the appropriate section according to the program used:
7 - uBlock Origin (uBO) -> [URL-based](#url-based) section (recommended)
8 - Pi-hole -> [Domain-based](#domain-based) or [Hosts-based](#hosts-based) section
9 - AdGuard Home -> [Domain-based (AdGuard Home)](#domain-based-adguard-home) or [Hosts-based](#hosts-based) section
10 - AdGuard browser extension -> [URL-based (AdGuard)](#url-based-adguard)
11 - Vivaldi -> [URL-based (Vivaldi)](#url-based-vivaldi)
12 - [Hosts](#hosts-based)
14 - BIND -> BIND [zone](#bind) or [RPZ](#response-policy-zone)
16 - [dnscrypt-proxy](#dnscrypt-proxy)
17 - Internet Explorer -> [Tracking Protection List (IE)](#tracking-protection-list-ie)
20 - [Suricata](#suricata)
22 Not sure which format to choose? See [Compatibility](https://gitlab.com/curben/urlhaus-filter/wikis/compatibility) page.
24 Check out my other filters:
26 - [urlhaus-filter](https://gitlab.com/curben/urlhaus-filter)
27 - [pup-filter](https://gitlab.com/curben/pup-filter)
28 - [tracking-filter](https://gitlab.com/curben/tracking-filter)
32 Import the following URL into uBO to subscribe:
34 - https://curben.gitlab.io/malware-filter/phishing-filter.txt
36 _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 "Phishing URL Blocklist"._
39 <summary>Mirrors</summary>
41 - https://cdn.statically.io/gl/curben/phishing-filter/master/dist/phishing-filter.txt
42 - https://glcdn.githack.com/curben/phishing-filter/raw/master/dist/phishing-filter.txt
43 - https://raw.githubusercontent.com/curbengh/phishing-filter/master/dist/phishing-filter.txt
44 - https://cdn.statically.io/gh/curbengh/phishing-filter/master/dist/phishing-filter.txt
45 - https://gitcdn.xyz/repo/curbengh/phishing-filter/master/dist/phishing-filter.txt
46 - https://cdn.jsdelivr.net/gh/curbengh/phishing-filter/dist/phishing-filter.txt
50 **AdGuard Home** users should use [this blocklist](#domain-based-adguard-home).
52 ## URL-based (AdGuard)
54 Import the following URL into AdGuard browser extension to subscribe:
56 - https://curben.gitlab.io/malware-filter/phishing-filter-ag.txt
59 <summary>Mirrors</summary>
61 - https://cdn.statically.io/gl/curben/phishing-filter/master/dist/phishing-filter-ag.txt
62 - https://glcdn.githack.com/curben/phishing-filter/raw/master/dist/phishing-filter-ag.txt
63 - https://raw.githubusercontent.com/curbengh/phishing-filter/master/dist/phishing-filter-ag.txt
64 - https://cdn.statically.io/gh/curbengh/phishing-filter/master/dist/phishing-filter-ag.txt
65 - https://gitcdn.xyz/repo/curbengh/phishing-filter/master/dist/phishing-filter-ag.txt
66 - https://cdn.jsdelivr.net/gh/curbengh/phishing-filter/dist/phishing-filter-ag.txt
70 ## URL-based (Vivaldi)
72 _Requires Vivaldi Desktop/Android 3.3+, blocking level must be at least "Block Trackers"_
74 Import the following URL into Vivaldi's **Tracker Blocking Sources** to subscribe:
76 - https://curben.gitlab.io/malware-filter/phishing-filter-vivaldi.txt
79 <summary>Mirrors</summary>
81 - https://cdn.statically.io/gl/curben/phishing-filter/master/dist/phishing-filter-vivaldi.txt
82 - https://glcdn.githack.com/curben/phishing-filter/raw/master/dist/phishing-filter-vivaldi.txt
83 - https://raw.githubusercontent.com/curbengh/phishing-filter/master/dist/phishing-filter-vivaldi.txt
84 - https://cdn.statically.io/gh/curbengh/phishing-filter/master/dist/phishing-filter-vivaldi.txt
85 - https://gitcdn.xyz/repo/curbengh/phishing-filter/master/dist/phishing-filter-vivaldi.txt
86 - https://cdn.jsdelivr.net/gh/curbengh/phishing-filter/dist/phishing-filter-vivaldi.txt
92 This blocklist includes domains and IP addresses.
94 - https://curben.gitlab.io/malware-filter/phishing-filter-domains.txt
97 <summary>Mirrors</summary>
99 - https://cdn.statically.io/gl/curben/phishing-filter/master/dist/phishing-filter-domains.txt
100 - https://glcdn.githack.com/curben/phishing-filter/raw/master/dist/phishing-filter-domains.txt
101 - https://raw.githubusercontent.com/curbengh/phishing-filter/master/dist/phishing-filter-domains.txt
102 - https://cdn.statically.io/gh/curbengh/phishing-filter/master/dist/phishing-filter-domains.txt
103 - https://gitcdn.xyz/repo/curbengh/phishing-filter/master/dist/phishing-filter-domains.txt
104 - https://cdn.jsdelivr.net/gh/curbengh/phishing-filter/dist/phishing-filter-domains.txt
108 ## Domain-based (AdGuard Home)
110 This AdGuard Home-compatible blocklist includes domains and IP addresses.
112 - https://curben.gitlab.io/malware-filter/phishing-filter-agh.txt
115 <summary>Mirrors</summary>
117 - https://cdn.statically.io/gl/curben/phishing-filter/master/dist/phishing-filter-agh.txt
118 - https://glcdn.githack.com/curben/phishing-filter/raw/master/dist/phishing-filter-agh.txt
119 - https://raw.githubusercontent.com/curbengh/phishing-filter/master/dist/phishing-filter-agh.txt
120 - https://cdn.statically.io/gh/curbengh/phishing-filter/master/dist/phishing-filter-agh.txt
121 - https://gitcdn.xyz/repo/curbengh/phishing-filter/master/dist/phishing-filter-agh.txt
122 - https://cdn.jsdelivr.net/gh/curbengh/phishing-filter/phishing-filter-agh.txt
128 This blocklist includes domains only.
130 - https://curben.gitlab.io/malware-filter/phishing-filter-hosts.txt
133 <summary>Mirrors</summary>
135 - https://cdn.statically.io/gl/curben/phishing-filter/master/dist/phishing-filter-hosts.txt
136 - https://glcdn.githack.com/curben/phishing-filter/raw/master/dist/phishing-filter-hosts.txt
137 - https://raw.githubusercontent.com/curbengh/phishing-filter/master/dist/phishing-filter-hosts.txt
138 - https://cdn.statically.io/gh/curbengh/phishing-filter/master/dist/phishing-filter-hosts.txt
139 - https://gitcdn.xyz/repo/curbengh/phishing-filter/master/dist/phishing-filter-hosts.txt
140 - https://cdn.jsdelivr.net/gh/curbengh/phishing-filter/dist/phishing-filter-hosts.txt
146 This blocklist includes domains only.
151 # Create a new folder to store the blocklist
152 mkdir -p /usr/local/etc/dnsmasq/
154 # Create a new cron job for daily update
155 printf '#!/bin/sh\ncurl -L "https://curben.gitlab.io/malware-filter/phishing-filter-dnsmasq.conf" -o "/usr/local/etc/dnsmasq/phishing-filter-dnsmasq.conf"\n' > /etc/cron.daily/phishing-filter
157 # cron job requires execution permission
158 chmod 755 /etc/cron.daily/phishing-filter
160 # Configure dnsmasq to use the blocklist
161 printf "\nconf-file=/usr/local/etc/dnsmasq/phishing-filter-dnsmasq.conf\n" >> /etc/dnsmasq.conf
164 - https://curben.gitlab.io/malware-filter/phishing-filter-dnsmasq.conf
167 <summary>Mirrors</summary>
169 - https://cdn.statically.io/gl/curben/phishing-filter/master/dist/phishing-filter-dnsmasq.conf
170 - https://glcdn.githack.com/curben/phishing-filter/raw/master/dist/phishing-filter-dnsmasq.conf
171 - https://raw.githubusercontent.com/curbengh/phishing-filter/master/dist/phishing-filter-dnsmasq.conf
172 - https://cdn.statically.io/gh/curbengh/phishing-filter/master/dist/phishing-filter-dnsmasq.conf
173 - https://gitcdn.xyz/repo/curbengh/phishing-filter/master/dist/phishing-filter-dnsmasq.conf
174 - https://cdn.jsdelivr.net/gh/curbengh/phishing-filter/dist/phishing-filter-dnsmasq.conf
180 This blocklist includes domains only.
185 # Create a new folder to store the blocklist
186 mkdir -p /usr/local/etc/bind/
188 # Create a new cron job for daily update
189 printf '#!/bin/sh\ncurl -L "https://curben.gitlab.io/malware-filter/phishing-filter-bind.conf" -o "/usr/local/etc/bind/phishing-filter-bind.conf"\n' > /etc/cron.daily/phishing-filter
191 # cron job requires execution permission
192 chmod 755 /etc/cron.daily/phishing-filter
194 # Configure BIND to use the blocklist
195 printf '\ninclude "/usr/local/etc/bind/phishing-filter-bind.conf";\n' >> /etc/bind/named.conf
198 Add this to "/etc/bind/null.zone.file" (skip this step if the file already exists):
202 @ IN SOA ns.nullzone.loc. ns.nullzone.loc. (
214 Zone file is derived from [here](https://github.com/tomzuu/blacklist-named/blob/master/null.zone.file).
216 - https://curben.gitlab.io/malware-filter/phishing-filter-bind.conf
219 <summary>Mirrors</summary>
221 - https://cdn.statically.io/gl/curben/phishing-filter/master/dist/phishing-filter-bind.conf
222 - https://glcdn.githack.com/curben/phishing-filter/raw/master/dist/phishing-filter-bind.conf
223 - https://raw.githubusercontent.com/curbengh/phishing-filter/master/dist/phishing-filter-bind.conf
224 - https://cdn.statically.io/gh/curbengh/phishing-filter/master/dist/phishing-filter-bind.conf
225 - https://gitcdn.xyz/repo/curbengh/phishing-filter/master/dist/phishing-filter-bind.conf
226 - https://cdn.jsdelivr.net/gh/curbengh/phishing-filter/dist/phishing-filter-bind.conf
230 ## Response Policy Zone
232 This blocklist includes domains only.
234 - https://curben.gitlab.io/malware-filter/phishing-filter-rpz.conf
237 <summary>Mirrors</summary>
239 - https://cdn.statically.io/gl/curben/phishing-filter/master/dist/phishing-filter-rpz.conf
240 - https://glcdn.githack.com/curben/phishing-filter/raw/master/dist/phishing-filter-rpz.conf
241 - https://raw.githubusercontent.com/curbengh/phishing-filter/master/dist/phishing-filter-rpz.conf
242 - https://cdn.statically.io/gh/curbengh/phishing-filter/master/dist/phishing-filter-rpz.conf
243 - https://gitcdn.xyz/repo/curbengh/phishing-filter/master/dist/phishing-filter-rpz.conf
244 - https://cdn.jsdelivr.net/gh/curbengh/phishing-filter/dist/phishing-filter-rpz.conf
250 This blocklist includes domains only.
255 # Create a new folder to store the blocklist
256 mkdir -p /usr/local/etc/unbound/
258 # Create a new cron job for daily update
259 printf '#!/bin/sh\ncurl -L "https://curben.gitlab.io/malware-filter/phishing-filter-unbound.conf" -o "/usr/local/etc/unbound/phishing-filter-unbound.conf"\n' > /etc/cron.daily/phishing-filter
261 # cron job requires execution permission
262 chmod 755 /etc/cron.daily/phishing-filter
264 # Configure Unbound to use the blocklist
265 printf '\n include: "/usr/local/etc/unbound/phishing-filter-unbound.conf"\n' >> /etc/unbound/unbound.conf
268 - https://curben.gitlab.io/malware-filter/phishing-filter-unbound.conf
271 <summary>Mirrors</summary>
273 - https://cdn.statically.io/gl/curben/phishing-filter/master/dist/phishing-filter-unbound.conf
274 - https://glcdn.githack.com/curben/phishing-filter/raw/master/dist/phishing-filter-unbound.conf
275 - https://raw.githubusercontent.com/curbengh/phishing-filter/master/dist/phishing-filter-unbound.conf
276 - https://cdn.statically.io/gh/curbengh/phishing-filter/master/dist/phishing-filter-unbound.conf
277 - https://gitcdn.xyz/repo/curbengh/phishing-filter/master/dist/phishing-filter-unbound.conf
278 - https://cdn.jsdelivr.net/gh/curbengh/phishing-filter/dist/phishing-filter-unbound.conf
287 # Create a new folder to store the blocklist
288 mkdir -p /etc/dnscrypt-proxy/
290 # Create a new cron job for daily update
291 printf '#!/bin/sh\ncurl -L "https://curben.gitlab.io/malware-filter/phishing-filter-dnscrypt-blocked-names.txt" -o "/etc/dnscrypt-proxy/phishing-filter-dnscrypt-blocked-names.txt"\n' > /etc/cron.daily/phishing-filter
292 printf '\ncurl -L "https://curben.gitlab.io/malware-filter/phishing-filter-dnscrypt-blocked-ips.txt" -o "/etc/dnscrypt-proxy/phishing-filter-dnscrypt-blocked-ips.txt"\n' >> /etc/cron.daily/phishing-filter
294 # cron job requires execution permission
295 chmod 755 /etc/cron.daily/phishing-filter
298 Configure dnscrypt-proxy to use the blocklist:
302 + blocked_names_file = '/etc/dnscrypt-proxy/phishing-filter-dnscrypt-blocked-names.txt'
305 + blocked_ips_file = '/etc/dnscrypt-proxy/phishing-filter-dnscrypt-blocked-ips.txt'
308 - https://curben.gitlab.io/malware-filter/phishing-filter-dnscrypt-blocked-names.txt
309 - https://curben.gitlab.io/malware-filter/phishing-filter-dnscrypt-blocked-ips.txt
312 <summary>Mirrors</summary>
314 - https://cdn.statically.io/gl/curben/phishing-filter/master/dist/phishing-filter-dnscrypt-blocked-names.txt
315 - https://glcdn.githack.com/curben/phishing-filter/raw/master/dist/phishing-filter-dnscrypt-blocked-names.txt
316 - https://raw.githubusercontent.com/curbengh/phishing-filter/master/dist/phishing-filter-dnscrypt-blocked-names.txt
317 - https://cdn.statically.io/gh/curbengh/phishing-filter/master/dist/phishing-filter-dnscrypt-blocked-names.txt
318 - https://gitcdn.xyz/repo/curbengh/phishing-filter/master/dist/phishing-filter-dnscrypt-blocked-names.txt
319 - https://cdn.jsdelivr.net/gh/curbengh/phishing-filter/dist/phishing-filter-dnscrypt-blocked-names.txt
321 - https://cdn.statically.io/gl/curben/phishing-filter/master/dist/phishing-filter-dnscrypt-blocked-ips.txt
322 - https://glcdn.githack.com/curben/phishing-filter/raw/master/dist/phishing-filter-dnscrypt-blocked-ips.txt
323 - https://raw.githubusercontent.com/curbengh/phishing-filter/master/dist/phishing-filter-dnscrypt-blocked-ips.txt
324 - https://cdn.statically.io/gh/curbengh/phishing-filter/master/dist/phishing-filter-dnscrypt-blocked-ips.txt
325 - https://gitcdn.xyz/repo/curbengh/phishing-filter/master/dist/phishing-filter-dnscrypt-blocked-ips.txt
326 - https://cdn.jsdelivr.net/gh/curbengh/phishing-filter/dist/phishing-filter-dnscrypt-blocked-ips.txt
329 ## Tracking Protection List (IE)
331 This blocklist includes domains only.
333 - https://curben.gitlab.io/malware-filter/phishing-filter.tpl
336 <summary>Mirrors</summary>
338 - https://cdn.statically.io/gl/curben/phishing-filter/master/dist/phishing-filter.tpl
339 - https://glcdn.githack.com/curben/phishing-filter/raw/master/dist/phishing-filter.tpl
340 - https://raw.githubusercontent.com/curbengh/phishing-filter/master/dist/phishing-filter.tpl
341 - https://cdn.statically.io/gh/curbengh/phishing-filter/master/dist/phishing-filter.tpl
342 - https://gitcdn.xyz/repo/curbengh/phishing-filter/master/dist/phishing-filter.tpl
343 - https://cdn.jsdelivr.net/gh/curbengh/phishing-filter/dist/phishing-filter.tpl
349 This ruleset includes online URLs only. Not compatible with [Snort3](#snort3).
355 curl -L "https://curben.gitlab.io/malware-filter/phishing-filter-snort2.rules" -o "/etc/snort/rules/phishing-filter-snort2.rules"
357 # Create a new cron job for daily update
358 printf '#!/bin/sh\ncurl -L "https://curben.gitlab.io/malware-filter/phishing-filter-snort2.rules" -o "/etc/snort/rules/phishing-filter-snort2.rules"\n' > /etc/cron.daily/phishing-filter
360 # cron job requires execution permission
361 chmod 755 /etc/cron.daily/phishing-filter
363 # Configure Snort to use the ruleset
364 printf "\ninclude \$RULE_PATH/phishing-filter-snort2.rules\n" >> /etc/snort/snort.conf
367 - https://curben.gitlab.io/malware-filter/phishing-filter-snort2.rules
370 <summary>Mirrors</summary>
372 - https://cdn.statically.io/gl/curben/phishing-filter/master/dist/phishing-filter-snort2.rules
373 - https://glcdn.githack.com/curben/phishing-filter/raw/master/dist/phishing-filter-snort2.rules
374 - https://raw.githubusercontent.com/curbengh/phishing-filter/master/dist/phishing-filter-snort2.rules
375 - https://cdn.statically.io/gh/curbengh/phishing-filter/master/dist/phishing-filter-snort2.rules
376 - https://gitcdn.xyz/repo/curbengh/phishing-filter/master/dist/phishing-filter-snort2.rules
377 - https://cdn.jsdelivr.net/gh/curbengh/phishing-filter/dist/phishing-filter-snort2.rules
383 This ruleset includes online URLs only. Not compatible with [Snort2](#snort2).
389 curl -L "https://curben.gitlab.io/malware-filter/phishing-filter-snort3.rules" -o "/etc/snort/rules/phishing-filter-snort3.rules"
391 # Create a new cron job for daily update
392 printf '#!/bin/sh\ncurl -L "https://curben.gitlab.io/malware-filter/phishing-filter-snort3.rules" -o "/etc/snort/rules/phishing-filter-snort3.rules"\n' > /etc/cron.daily/phishing-filter
394 # cron job requires execution permission
395 chmod 755 /etc/cron.daily/phishing-filter
398 Configure Snort to use the ruleset:
401 # /etc/snort/snort.lua
404 variables = default_variables,
405 + include = 'rules/phishing-filter-snort3.rules'
409 - https://curben.gitlab.io/malware-filter/phishing-filter-snort3.rules
412 <summary>Mirrors</summary>
414 - https://cdn.statically.io/gl/curben/phishing-filter/master/dist/phishing-filter-snort3.rules
415 - https://glcdn.githack.com/curben/phishing-filter/raw/master/dist/phishing-filter-snort3.rules
416 - https://raw.githubusercontent.com/curbengh/phishing-filter/master/dist/phishing-filter-snort3.rules
417 - https://cdn.statically.io/gh/curbengh/phishing-filter/master/dist/phishing-filter-snort3.rules
418 - https://gitcdn.xyz/repo/curbengh/phishing-filter/master/dist/phishing-filter-snort3.rules
419 - https://cdn.jsdelivr.net/gh/curbengh/phishing-filter/dist/phishing-filter-snort3.rules
425 This ruleset includes online URLs only.
431 curl -L "https://curben.gitlab.io/malware-filter/phishing-filter-suricata.rules" -o "/etc/suricata/rules/phishing-filter-suricata.rules"
433 # Create a new cron job for daily update
434 printf '#!/bin/sh\ncurl -L "https://curben.gitlab.io/malware-filter/phishing-filter-suricata.rules" -o "/etc/suricata/rules/phishing-filter-suricata.rules"\n' > /etc/cron.daily/phishing-filter
436 # cron job requires execution permission
437 chmod 755 /etc/cron.daily/phishing-filter
440 Configure Suricata to use the ruleset:
443 # /etc/suricata/suricata.yaml
446 + - phishing-filter-suricata.rules
449 - https://curben.gitlab.io/malware-filter/phishing-filter-suricata.rules
452 <summary>Mirrors</summary>
454 - https://cdn.statically.io/gl/curben/phishing-filter/master/dist/phishing-filter-suricata.rules
455 - https://glcdn.githack.com/curben/phishing-filter/raw/master/dist/phishing-filter-suricata.rules
456 - https://raw.githubusercontent.com/curbengh/phishing-filter/master/dist/phishing-filter-suricata.rules
457 - https://cdn.statically.io/gh/curbengh/phishing-filter/master/dist/phishing-filter-suricata.rules
458 - https://gitcdn.xyz/repo/curbengh/phishing-filter/master/dist/phishing-filter-suricata.rules
459 - https://cdn.jsdelivr.net/gh/curbengh/phishing-filter/dist/phishing-filter-suricata.rules
465 This blocklist operates by blocking the **whole** website, instead of specific webpages; exceptions are made on popular websites (e.g. `https://docs.google.com/`), in which webpages are specified instead (e.g. `https://docs.google.com/phishing-page`). Phishing webpages are only listed in [URL-based](#url-based) filter, popular websites are excluded from other filters.
467 *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).
469 If you wish to exclude certain website(s) that you believe is sufficiently well-known, please create an [issue](https://gitlab.com/curben/phishing-filter/issues) or [merge request](https://gitlab.com/curben/phishing-filter/merge_requests).
471 This blocklist **only** accepts new phishing URLs from [PhishTank](https://www.phishtank.com/) and [OpenPhish](https://openphish.com/).
473 Please report new phishing URL to [PhishTank](https://www.phishtank.com/add_web_phish.php) or [OpenPhish](https://openphish.com/faq.html).
477 Since the filter is updated frequently, cloning the repo would become slower over time as the revision grows.
479 Use shallow clone to get the recent revisions only. Getting the last five revisions should be sufficient for a valid MR.
481 `git clone --depth 5 https://gitlab.com/curben/phishing-filter.git`
485 [src/](src/): [CC0](LICENSE.md)
487 [dist/](dist/): [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
489 [badge.sh](src/badge.sh) & [.gitlab/](.gitlab/) contain badges that are licensed by [Shields.io](https://shields.io) under [CC0 1.0](LICENSE.md)
491 [PhishTank](https://www.phishtank.com/): Available [free of charge](https://www.phishtank.com/faq.php#isitoktousetheapifor) by Cisco for commercial and non-commercial use.
493 _PhishTank is either trademark or registered trademark of Cisco Systems, Inc._
495 [OpenPhish](https://openphish.com/): Available [free of charge](https://openphish.com/terms.html) by OpenPhish
497 [Tranco List](https://tranco-list.eu/): MIT License
499 [Umbrella Popularity List](https://s3-us-west-1.amazonaws.com/umbrella-static/index.html): Available free of charge by Cisco Umbrella
501 [csvquote](https://github.com/dbro/csvquote): [MIT License](https://choosealicense.com/licenses/mit/)
503 This repository is not endorsed by PhishTank/OpenDNS and OpenPhish.