grid lines

[ GUIDE 06 . Vulnerability scanning . 9 min read ]

How to add and verify a new domain in AlienGate

AlienGate scans only hosts you have proven you control. Add the target, publish the token file at /.well-known/aliengate-verify.txt, check it in a browser, press Verify, and read what changes on Websites & IPs, including the automatic discovery pass.

ALIENGATE SUPPORT . 5 OCT 2026

  • Audience: anyone bringing a new website, subdomain or host into an AlienGate workspace for the first time
  • Applies to: app.aliengate.io — Infrastructure Security → Websites & IPs → + Add Target
  • Time to complete: ~2 minutes in the product, plus however long it takes you to publish one text file to the web server
  • Leads on to: Article 01 — How to Run a Vulnerability Assessment

What you will end up with

By the end of this guide you will have:

  • a new host verified as yours, with the proof of ownership published on the host itself,
  • that host listed as an asset in Websites & IPs, counted in your attack surface,
  • its first discovery pass already running — started automatically by the verification, not by you,
  • a target you can select in the Scanner Console and actually scan.

Why AlienGate makes you do this

An active vulnerability scan is an intrusive act. It crawls, it submits forms, it sends payloads. Pointing one at a host you do not control is, depending on where you are, somewhere between rude and illegal — and a platform that scanned anything you typed into a box would be a convenient weapon for someone else to misuse.

So AlienGate will not scan a host until you have proven you control it, and the proof it accepts is the one thing only a person with access to that server can do: publish a file on it.

This is the same mechanism search consoles and certificate authorities use, for the same reason. It takes two minutes and you only do it once per host.


The flow

Websites & IPs → + Add Target → enter the host
   ↓
Next Step panel                  AlienGate issues a token for this host
   ↓
Publish the token at /.well-known/aliengate-verify.txt
   ↓
Open that URL in a browser yourself      ← do not skip this
   ↓
Verify ──► Verifying Domain… ──┬─► Domain Verified Successfully!
                               └─► Verification Failed ──► fix the file ──► Verify Again
   ↓
Host appears in Websites & IPs, first discovery pass starts on its own
   ↓
Scannable: Scanner Console → Scan targets

Step 1 — Add the target and read the Next Step panel

Go to Infrastructure Security → Websites & IPs (app.aliengate.io/dashboard/manage-targets) and click + Add Target in the top right. Enter the host you want to bring in.

AlienGate issues a verification token for that host and shows the Next Step panel.

The Next Step panel: download the token file, publish it at /.well-known/aliengate-verify.txt, then verify

Three numbered steps, each stated by the product:

# Step What the product says
01 Download the file "Download the verification file (or copy its contents) to your local machine."
02 Upload to your server "Place the file at /.well-known/aliengate-verify.txt so it's publicly accessible over HTTP(S)."
03 Verify ownership "Ensure the file is publicly accessible via a browser, then click the Verify button below."

The token sits in the dark field under step 01 — it reads like aliengate-verify=2011eef8b74c4498 — with a Copy button and a Download button. Either route works: copy the string and write the file yourself, or download the ready-made file and upload it unchanged.

The field is elided for display. The panel shows the token truncated (aliengate-verify=2011eef…). Use Copy or Download rather than typing what you can see.

Two details decide whether this works on the first attempt:

  • The path is exact: /.well-known/aliengate-verify.txt, at the root of that host. Not /aliengate-verify.txt, and not the same path on the parent domain. The leading dot makes .well-known a hidden directory on Unix-like systems, which is the single most common reason it goes missing from a deploy.
  • "Publicly accessible over HTTP(S)" means publicly: no login, no IP allowlist, no VPN, no Deny from all inherited from a parent directory. The verifier is an anonymous client on the internet with no session and no special treatment.

Step 2 — Publish the file, then look at it yourself

Put the file on the server by whatever route you normally ship static files — a deploy, an upload, a volume mount, a one-line nginx location block. Then, before you touch Verify, open the URL in a browser.

The verification file served over HTTP, showing the aliengate-verify token as plain text

What you want to see is the token, as plain text, and nothing else.

This check takes one second and it is the difference between verifying on the first attempt and going round the loop three times. It catches things the verification error will not explain for you:

  • a web server returning a styled 404 page with HTTP 200 — the file "exists" and contains your error template,
  • a redirect to HTTPS landing on a certificate the verifier will not accept,
  • a file saved as aliengate-verify.txt.txt by an editor with extensions hidden,
  • the file served as a download rather than inline, because the server sets an attachment disposition on .txt,
  • the parent directory listing being disabled in a way that also blocks the file,
  • a CDN or WAF serving a challenge page to clients it does not recognise.

If a browser on a network you do not control can read the token, the verifier can too. That is the whole test. Checking from inside the office network or over the VPN proves nothing — use a phone on mobile data, or a private window with the VPN off.


Step 3 — Verify

Back in the Next Step panel, click Verify.

Verifying Domain — the platform fetching and checking the verification file

AlienGate shows Verifying Domain… — "We're checking your verification file. This may take a moment." — with a progress bar and the subtext Verifying ownership via HTML file…. There is a Cancel button if you realise mid-check that you published the wrong thing.

If the fetch does not find a matching token you get Verification Failed, with Cancel and Verify Again. Fix the file and re-run the check; the token does not change between attempts, so there is nothing to re-copy.

When it succeeds:

Domain Verified Successfully — the host has been added to the attack surface

Domain Verified Successfully! — "shop.0-day.jp has been verified and added to your attack surface." Click Done. A Domain created successfully toast confirms it in the top right.

Leave the file in place. Nothing in the product tells you to remove it, and removing it is how a host stops verifying the next time the platform checks. Treat /.well-known/aliengate-verify.txt as part of the site, and make sure your deploy pipeline keeps shipping it.


Step 4 — Read what changed on Websites & IPs

The asset list reloads with the new host in it.

The new host in Websites & IPs, already running its first discovery pass

Three things changed, and only one of them is the obvious one:

1. The host is in the table. It has a row, classified Exposed Service under the primary domain, showing No technologies detected, 0 Safe vulnerabilities and No SSL issues.

2. The Subdomains counter went up; Verified Domains did not. In the capture, Subdomains moved from 3 to 4 while Verified Domains stayed at 1. A verified subdomain of a domain you already hold counts as a subdomain, not as a second verified domain — worth knowing if you are tracking against a plan limit.

3. It started scanning on its own. Under the hostname: Scanning now · 0%. Verification kicks off a discovery pass immediately. You did not ask for it and you do not need to wait for it.

The defaults on a fresh row are not findings. No technologies detected and 0 Safe describe a host that has existed in the platform for four seconds. The pass that just started will fill in the fingerprint.


Step 5 — Know what that automatic pass is, and is not

Open the Scanner Console and you can watch it run in the live security terminal.

The live security terminal showing the Subdomain Finder discovery pass against the newly verified host

[i] 2 job(s) active.
[Subdomain Finder] shop.0-day.jp — Extracting subdomains from Certificate Transparency Logs.
[Web Application Scan] shop.0-day.jp — 0%

12:58:50  [+]  Engines online — 2 job(s) dispatched.
12:58:50  [i]  Streaming live telemetry from the scan engine.
12:58:51  [~]  shop.0-day.jp · waiting for a scan slot

The Subdomain Finder job is the automatic pass. It is reconnaissance — it pulls names out of Certificate Transparency logs to map what else exists under the host. The product files it under "Reconnaissance — observations, not vulnerabilities", and that label is exact.

It is not a vulnerability scan. It does not crawl the application, it does not test anything, and it certainly does not look behind a login. A host that has only ever had this pass run against it will show no findings, and that means nothing at all about its security.

This also explains a thing that confuses people the first time: launch one engine of your own shortly after verifying, and the terminal reports two jobs active, with yours waiting for a scan slot behind the discovery pass. That is the queue working, not a fault. Read the per-engine progress bars rather than the overall percentage, which is averaged across both.


What to do next

The host is now a selectable target in the Scanner Console. From here:


Troubleshooting

Symptom Likely cause Fix
Verification Failed, but the file looks present The server returns your 404 template with HTTP 200 Open the URL in a private window and read the raw content. If it is HTML, the file is not where you think it is.
Verification Failed, but the file loads fine for you The file is on the wrong host — parent domain instead of the subdomain, or the other way round It must be on the exact host you entered in + Add Target.
Verification Failed, and the file loads only on the VPN Not publicly reachable The verifier is an anonymous internet client. Remove the allowlist, or verify from a publicly reachable deployment.
Verification Failed, and a browser shows a challenge or captcha A CDN or WAF is interposing on unrecognised clients Exempt /.well-known/ from the challenge, or allow the scanner addresses — see Article 03.
The file 404s again after a release .well-known is hidden and was dropped by a build, rsync or container copy that skips dotfiles Add it to the deploy explicitly and re-check after each release.
The token does not match Copied from the truncated preview in the panel Use Copy or Download.
Verified, but the host shows no findings Only the automatic discovery pass has run That pass is reconnaissance. Run a real scan — Article 01.
A new scan sits at waiting for a scan slot The discovery pass is still holding the slot Normal. It starts when the slot frees.

Reference

The verification file

Path /.well-known/aliengate-verify.txt
Content aliengate-verify=<token>
Scheme HTTP or HTTPS
Access Public — no auth, no allowlist, no VPN, no challenge page
Host The exact host entered in + Add Target
After verifying Leave it in place
Retry The token survives failed attempts; Verify Again re-checks the same file

What verification does and does not start

Runs automatically on verification Has to be launched by you
Subdomain Finder (Certificate Transparency reconnaissance) ✅
Website Recon ✅
Network Scan · SSL/TLS Analysis ✅
Web Application Scan (authenticated or not) ✅
WordPress · Cloud · Kubernetes scans ✅

Where things live

Thing Path
Websites & IPs app.aliengate.io/dashboard/manage-targets
Add a target + Add Target, top right of Websites & IPs
Vulnerability Scanner app.aliengate.io/dashboard/vulnerability-assessment
Scanner Console Scan Vulnerability on the scanner page, or Run Scan in the top bar

Tags: add-target, domain-verification, well-known, websites-and-ips, discovery

Last updated: 5 OCT 2026

Find out what's already out there. It takes about forty seconds.

Run a free exposure check on your domain. If it comes back clean, you've lost a minute. If it doesn't, you've found out before someone else did.