CertaDNS
Skip to lesson

Typosquatting and Homograph Attacks · lesson 1 of 3

How lookalike domains are generated

After this lesson you can

Classify a lookalike domain by the technique used to produce it.

Assumes you have read The hierarchy, and who the three parties are.

Reaching p=reject stops anyone sending as your exact domain. The obvious next move for an attacker is a domain that is not yours but reads as though it is — and it costs about ten dollars.

Why this is the default technique now

  • Registration is cheap, instant, and requires no verification in most TLDs.
  • The attacker authenticates their own domain properly. Their SPF, DKIM and DMARC all pass, because it is genuinely their domain.
  • Your controls are not consulted at any point. There is nothing on your side that fails.
  • Domains are disposable. A phishing domain is often registered, used within days, and abandoned before anyone has completed a takedown.

So the defence is not prevention — you cannot stop a registration — but detection and response. That shapes everything in this module and the next.

The permutation families

TechniqueExample on "acmebank.com"Relies on
Character omissionacmebnk.comA typing error.
Character duplicationaccmebank.comA typing error.
Transpositionacemback.comA typing error.
Adjacent-key substitutionacnebank.comA typing error.
Visual substitutionacrnebank.com — rn reading as mThe reader, not a typing error.
Hyphenationacme-bank.comPlausibility — it looks like a legitimate variant.
TLD swapacmebank.net, acmebank.coThe reader not checking the ending.
Subdomain shapeacmebank.com.secure-login.exampleThe reader stopping at the first familiar part.
Bitsquattingacmebink.comA memory bit-flip. Real, documented, and rare.

The line that matters is in the third column

The first four rely on the victim making a mistake, so they catch stray traffic and are relatively low yield. Everything below the line targets the reader’s eye in a message the attacker sent deliberately, and those are the ones used in business email compromise. Classifying by that distinction is more useful than classifying by the character operation.

The subdomain shape, spelled out

This one deserves its own treatment because it fools technical people who are in a hurry.

https://acmebank.com.secure-login.example/signin
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        the registrable domain here is secure-login.example
        "acmebank.com" is just a subdomain label the attacker created

The rule: read a name from the right. The registrable domain is the part just left of the public suffix, and everything to the left of that is chosen by whoever controls it. A familiar string early in a hostname means nothing at all.

Checking one

Given a suspicious domain, three lookups establish most of what you need:

dig +short A suspicious-domain.example      # is anything hosted
dig +short MX suspicious-domain.example     # can it send and receive mail
whois suspicious-domain.example | grep -i 'creation\|registrar'

Recent creation plus an MX record is the combination that should move a domain up your list. A lookalike with mail configured is a domain someone intends to send from, and the next lesson deals with how to weigh that alongside the other signals.

Look, do not touch

Passive lookups — DNS, WHOIS, certificate transparency — are observation. Fetching the site, submitting anything to it, or probing it is interaction, and it tells the operator they have been noticed. Establish what you can passively first.

Last reviewed