Catch phishing domains impersonating your brand each morning

Every weekday we scan new security certificates for fake versions of your domain, check them for known abuse, and alert your team in Teams.

Agentic Task
CensysVirusTotalNotionMicrosoft TeamsEngineeringOperationsNotifications & AlertsResearch & Monitoring
PromptCreate

Every weekday at 8am, hunt for newly issued TLS certificates that impersonate our brand and alert our security team about the genuinely new ones. Use a cron trigger set to weekdays at 8am. Ask me at setup for our brand terms, our own domains, and our known partner domains, and keep the last two as an allowlist.

Discovery. Use the Censys "Run a Search Query" operation with a CenQL query that regex-matches our brand terms across certificate names and DNS names. Model the query on the progressive-filter shape Censys recommends in their own phishing-prevention writeup, replacing acme with our brand term: ((services.tls.certificate.names=/(.*acme.*)/ or name=/(.*acme.*)/ or dns.names=/(.*acme.*)/ or dns.reverse_dns.names=/(.*acme.*)/)). Build regex variations that catch typosquat and lookalike patterns: character swaps, doubled or omitted letters, homoglyph-style substitutions, added words like login, secure, account, verify, pay, billing and support, alternate TLDs, and hyphenated forms of our name. Censys receives certificates and their SubjectAltNames from certificate transparency logs in near real time, so this catches impersonation infrastructure before it is weaponized rather than after.

Filtering. Drop every result that matches one of our own domains or a known partner domain from the allowlist. Everything that remains is a candidate impersonation.

Enrichment. For each candidate, call the VirusTotal "Get a Domain Report" operation to see how many security engines already flag it (read the malicious and suspicious counts under last_analysis_stats) and to pull resolution detail showing whether the domain currently points at a live host. Then call the Censys "Get a Certificate" operation with the certificate's SHA-256 fingerprint to get the issuer organization and the validity period. VirusTotal's free tier allows roughly 4 requests per minute and 500 per day, so pace these lookups and cap the number of candidates enriched per run (25 is a sensible default) instead of letting the run fail on rate limits.

Deduplication, and this step is load-bearing rather than decorative. Before creating anything, use the Notion "Query a Data Source" operation against our "Brand Impersonation Watchlist" data source, filtering on the certificate fingerprint, to check whether we have already logged this certificate. Skip every certificate that is already present. Without this check the workflow re-alerts on the same lookalike certificate every single morning, and the team mutes the channel inside a week.

Logging. For each genuinely new finding, use the Notion "Create a Page" operation to add a row to the Brand Impersonation Watchlist recording the certificate SHA-256 fingerprint, the lookalike domain, the issuing certificate authority, the hosting IP, the VirusTotal verdict (malicious and suspicious counts out of total engines), the severity you assigned, and the date first seen. Log every new finding here regardless of severity.

Severity. Assign high, medium or low yourself, weighing three things: whether the certificate is already resolving to a live host, since live infrastructure is materially more dangerous than a parked or unresolved name; whether the issuer is a free certificate authority commonly abused for phishing, such as Let's Encrypt or ZeroSSL; and whether the name pattern targets a login or payment page, using tokens like login, signin, secure, verify, account, pay and billing. A live host on a free certificate with a login-themed name is high. An unresolved name with none of those signals is low. Existing VirusTotal detections should push severity upward.

Alerting. Finish with exactly one Microsoft Teams message using the "Create Channel Message" operation to our security channel, listing only the new high and medium severity impersonations. Give each one a single line: the lookalike domain, its severity, and a one-line reason such as "live host, free certificate, login-themed name". Reference the Notion page for full detail. Low severity findings are logged to Notion but never posted.

Silence on quiet days. If there are no new findings after deduplication, or no new findings that reach high or medium severity, post nothing at all. Do not send a "nothing to report" message and do not post an empty summary. Complete the run silently. Microsoft's terms also prohibit using Teams as a log file, so only ever send messages a human will actually read.

What does this prompt do?

  • Scans newly issued security certificates every weekday morning for domains built to look like yours: character swaps, added words like "login" or "secure", alternate endings, and hyphenated variations.
  • Cross-checks every suspicious domain against 70+ threat engines, then pulls who issued the certificate and whether it is already pointing at a live server.
  • Keeps a running Notion watchlist so you hear about each impersonation once, when it first appears, instead of every morning forever.
  • Posts a single Microsoft Teams message with only the high and medium risk findings and one line on why each matters, and stays completely silent on quiet days.

What do I need to use this?

  • A Censys account. You will create a personal access token under Account Settings, plus your Organization ID if your account belongs to an organization.
  • A VirusTotal account and its API key, found under your profile menu.
  • A Notion workspace with a database called "Brand Impersonation Watchlist", shared with the General Input connection so it can read from and add to it.
  • A Microsoft Teams account with permission to post in the channel where you want alerts.
  • Your brand terms and spellings to watch, plus a list of your own domains and partner domains so they never get flagged.

How can I customize it?

  • Which brand terms and misspellings to watch, and the allowlist of your own and partner domains that should never be flagged.
  • The severity threshold for alerting. By default only high and medium findings reach Teams while everything is logged to Notion.
  • The run time and days, and whether to keep the quiet-day silence or get a short "nothing new" confirmation instead.

FAQs

Will this alert me about the same fake domain every day?
No. Every finding is logged to your Notion watchlist along with the certificate's unique fingerprint, and each morning's run checks that list before it alerts. You hear about an impersonation once, when it first appears.
What happens on days when nothing new turns up?
Nothing gets posted. The workflow stays completely silent unless there is a genuinely new impersonation, which is what keeps the channel worth reading.
Does this work with a free VirusTotal account?
Yes, though free accounts are limited to a few lookups a minute and 500 a day. If you watch a widely copied brand, cap how many candidates get checked each run or move to a paid key.
How does it decide what counts as high severity?
Three signals: whether the fake domain is already live and serving traffic, whether the certificate came from a free issuer that phishing kits commonly use, and whether the name is built to imitate a login or payment page. Something live, free-issued, and login-themed lands at the top.
Can it post to Slack instead of Microsoft Teams?
Yes. Teams is the default here because security teams in Microsoft shops rarely get built-for-them workflows, but you can point the alert at Slack, email, or any other channel you have connected.

Related templates

Artwork desk for the Notion posts still missing an image

Open one screen each Monday to see which upcoming posts still have no image, generate three on-brand options, and file the one you pick.

Ideogram
Notion
Google Drive
App
Share of voice dashboard for your brand and competitors

See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.

GDELT
Notion
Slack Bot
App
Influencer campaign roster board with AI creator briefs

Drag creators through Sourced to Wrapped on a board grouped by campaign, with audience stats on every card and a one-click brief for each creator.

HypeAuditor
Google Sheets
Notion
App
Smart home entity health cockpit for Home Assistant

Open one screen to find every unavailable, stale, or low-battery device in your smart home, see which hub is really at fault, and clear out the dead entries in bulk.

Home Assistant
Notion
App
Open model approval desk for your production AI stack

See every open model your teams run in production, who approved it, and whether a quiet license change means it needs another look.

Hugging Face
Notion
Slack Bot
App
Bid board that watches every procurement portal for you

Stop checking a dozen agency sites by hand. Open one board of live solicitations, each scored against what your team can actually bid on.

Hyperbrowser
Notion
Slack Bot
App

Find the fake version of your domain before your customers do.

Set up a morning watch that catches brand impersonation the day the certificate is issued, not the day a customer gets phished.