<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[VeilScan Blog | Startup Security Guides]]></title><description><![CDATA[Practical security guides for startup founders and engineering teams. Learn how to discover exposed assets, reduce your attack surface, and prepare for ISO 27001 or SOC 2 without a dedicated security team.]]></description><link>https://blog.veilscan.net</link><image><url>https://cdn.hashnode.com/uploads/logos/6a03d97b52a9c969d6e72c67/44c7129f-11cc-4d4c-97a4-288700f0c05b.png</url><title>VeilScan Blog | Startup Security Guides</title><link>https://blog.veilscan.net</link></image><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 09:15:49 GMT</lastBuildDate><atom:link href="https://blog.veilscan.net/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How to Find Forgotten Subdomains Before Attackers Do (2026 Guide)]]></title><description><![CDATA[How to Find Forgotten Subdomains Before Attackers Do (2026 Guide)
If you want to know how to find forgotten subdomains, start by assuming your current DNS inventory is incomplete. Most teams have more]]></description><link>https://blog.veilscan.net/how-to-find-forgotten-subdomains-before-attackers-do-2026-guide</link><guid isPermaLink="true">https://blog.veilscan.net/how-to-find-forgotten-subdomains-before-attackers-do-2026-guide</guid><category><![CDATA[subdomain]]></category><category><![CDATA[Attack Surface Management]]></category><category><![CDATA[DNS Security]]></category><category><![CDATA[Subdomain takeover]]></category><category><![CDATA[DevSecOps]]></category><dc:creator><![CDATA[Rhythm Bhattarai]]></dc:creator><pubDate>Mon, 03 Aug 2026 10:37:04 GMT</pubDate><content:encoded><![CDATA[<h1>How to Find Forgotten Subdomains Before Attackers Do (2026 Guide)</h1>
<p>If you want to know <strong>how to find forgotten subdomains</strong>, start by assuming your current DNS inventory is incomplete. Most teams have more internet-facing assets than they think, and the ones nobody owns are usually the ones that cause trouble later.</p>
<blockquote>
<p><strong>Definition box</strong></p>
<p>Forgotten subdomains are public hostnames that still resolve or still exist in historical records, but are no longer actively owned, maintained, or monitored.</p>
</blockquote>
<h2>Table of Contents</h2>
<ul>
<li><p><a href="#key-takeaways">Key Takeaways</a></p>
</li>
<li><p><a href="#what-forgotten-subdomains-are">What forgotten subdomains are</a></p>
</li>
<li><p><a href="#why-teams-lose-track-of-them">Why teams lose track of them</a></p>
</li>
<li><p><a href="#why-attackers-care">Why attackers care</a></p>
</li>
<li><p><a href="#how-attackers-find-them">How attackers find them</a></p>
</li>
<li><p><a href="#how-to-find-them-manually">How to find them manually</a></p>
</li>
<li><p><a href="#free-tools-and-automated-methods">Free tools and automated methods</a></p>
</li>
<li><p><a href="#continuous-monitoring">Continuous monitoring</a></p>
</li>
<li><p><a href="#best-practices">Best practices</a></p>
</li>
<li><p><a href="#common-mistakes">Common mistakes</a></p>
</li>
<li><p><a href="#real-world-scenarios">Real-world scenarios</a></p>
</li>
<li><p><a href="#checklist">Checklist</a></p>
</li>
<li><p><a href="#summary">Summary</a></p>
</li>
<li><p><a href="#faq">FAQ</a></p>
</li>
<li><p><a href="#conclusion">Conclusion</a></p>
</li>
</ul>
<h2>Key Takeaways</h2>
<ul>
<li><p>Forgotten subdomains expand your attack surface even when the underlying project is dead.</p>
</li>
<li><p>Attackers find them using certificate transparency logs, passive DNS, search, brute force, and historical records.</p>
</li>
<li><p>Manual discovery is useful, but automation is better once you have more than a few domains.</p>
</li>
<li><p>Continuous monitoring matters more than one-time scanning.</p>
</li>
<li><p>If nobody can explain why a subdomain exists, it should not stay public.</p>
</li>
</ul>
<h2>What forgotten subdomains are</h2>
<p>Forgotten subdomains are subdomains that were created for a project, test environment, migration, campaign, partner integration, or internal workflow, then left behind after the work ended. They may still resolve, still serve content, or still show up in public records even though the business no longer needs them.</p>
<p>Common examples:</p>
<ul>
<li><p><code>staging.example.com</code> left behind after a release.</p>
</li>
<li><p><code>beta.example.com</code> kept alive after launch.</p>
</li>
<li><p><code>promo.example.com</code> created for a marketing page.</p>
</li>
<li><p><code>old-api.example.com</code> pointing to a retired backend.</p>
</li>
<li><p><code>support.example.com</code> mapped to a third-party service that was later removed.</p>
</li>
</ul>
<p>These are often called <strong>abandoned subdomains</strong>, <strong>shadow assets</strong>, or stale <strong>dangling DNS records</strong> when the DNS entry still points somewhere that no longer exists. They matter because security teams usually focus on known apps, while forgotten subdomains quietly remain on the public internet.</p>
<p><em>Organizations often leave old subdomains publicly accessible.</em></p>
<h2>Why teams lose track of them</h2>
<p>Subdomains get forgotten because they are easy to create and hard to retire cleanly. A developer needs a quick staging hostname, marketing wants a campaign landing page, or a vendor integration needs a branded endpoint, and nobody owns the cleanup later.</p>
<p>The root causes are usually operational, not intentional:</p>
<ul>
<li><p>No central subdomain inventory.</p>
</li>
<li><p>Weak ownership tracking.</p>
</li>
<li><p>Temporary projects that become permanent by accident.</p>
</li>
<li><p>Migrations that leave old DNS records in place.</p>
</li>
<li><p>Third-party services removed without DNS cleanup.</p>
</li>
<li><p>Multiple teams creating internet-facing assets independently.</p>
</li>
</ul>
<p>That is why subdomain inventory belongs in <strong>external attack surface management</strong>, not just in deployment checklists.</p>
<h3>Practical example</h3>
<p>A startup launches <code>launch.example.com</code> for a product release, then moves the content to the root domain. Six months later, the old subdomain is still live, still indexed, and still part of the company's public footprint. Nobody remembers who owns it, but attackers can still find it.</p>
<h2>Why attackers care</h2>
<p>Attackers like forgotten subdomains because they often sit outside normal review and monitoring. These hosts may run older software, expose admin panels, or point to services nobody controls anymore.</p>
<p>The main risks are straightforward:</p>
<ul>
<li><p><strong>Subdomain takeover.</strong> A dangling CNAME can point to a removed cloud resource.</p>
</li>
<li><p><strong>Phishing.</strong> A malicious page on a trusted subdomain can look legitimate.</p>
</li>
<li><p><strong>Credential capture.</strong> Forgotten login pages can collect passwords or session tokens.</p>
</li>
<li><p><strong>Information leakage.</strong> Old test systems may expose source maps, debug data, or internal docs.</p>
</li>
<li><p><strong>Control gaps.</strong> Staging and beta systems often miss patching, MFA, logging, and access review.</p>
</li>
</ul>
<blockquote>
<p><strong>Callout</strong></p>
<p>If a forgotten subdomain still resolves, it is already part of your attack surface.</p>
</blockquote>
<h2>How attackers find them</h2>
<p>Attackers do not rely on one technique. They build a picture from public records, brute force, and historical data until the missing hostnames start showing up.</p>
<p>Common discovery sources include:</p>
<ul>
<li><p>Certificate transparency logs.</p>
</li>
<li><p>Passive DNS datasets.</p>
</li>
<li><p>Search engine indexes.</p>
</li>
<li><p>Historical DNS records.</p>
</li>
<li><p>Wordlist-based brute force.</p>
</li>
<li><p>Permutation-based enumeration of known names.</p>
</li>
</ul>
<p>Recent subdomain enumeration workflows still center on the same basics: CT logs, passive data, active DNS checks, and validation of which hosts are live.</p>
<h3>Typical attacker workflow</h3>
<ol>
<li><p>Pull subdomains from CT logs.</p>
</li>
<li><p>Cross-check passive DNS and archived records.</p>
</li>
<li><p>Brute-force common names like <code>dev</code>, <code>test</code>, <code>staging</code>, and <code>backup</code>.</p>
</li>
<li><p>Filter out wildcard DNS false positives.</p>
</li>
<li><p>Probe live hosts for takeover conditions or exposed services.</p>
</li>
</ol>
<p><em>CT logs often expose subdomains that teams have forgotten.</em></p>
<h2>How to find them manually</h2>
<p>Manual subdomain discovery is slower, but it teaches you what to look for. If you are starting with a single domain or a small portfolio, this is the best place to begin.</p>
<h3>Start with your own records</h3>
<p>Export the assets you already control:</p>
<ul>
<li><p>DNS zone files.</p>
</li>
<li><p>Cloud DNS records.</p>
</li>
<li><p>Certificates issued for your domain.</p>
</li>
<li><p>Internal asset lists.</p>
</li>
<li><p>Records inherited from acquisitions or older product lines.</p>
</li>
</ul>
<p>Then sort them into:</p>
<ul>
<li><p>Active production hosts.</p>
</li>
<li><p>Staging and test environments.</p>
</li>
<li><p>Vendor-owned subdomains.</p>
</li>
<li><p>Unknown entries.</p>
</li>
</ul>
<h3>Check certificate transparency logs</h3>
<p>CT logs are one of the best starting points because they reveal publicly issued certificates tied to your domain. Search your root domain and collect every hostname that appears.</p>
<p>Useful sources:</p>
<ul>
<li><p><code>crt.sh</code></p>
</li>
<li><p>Cert Spotter</p>
</li>
<li><p>Security tools that surface CT data</p>
</li>
</ul>
<h3>Review passive DNS and archives</h3>
<p>Passive DNS can show older hostnames that no longer appear in your current records. Web archives and cached pages can also reveal old campaign pages, login portals, and forgotten docs.</p>
<h3>Use search operators</h3>
<p>Search engines can expose indexed subdomains and old content. Useful queries include:</p>
<ul>
<li><p><code>site:example.com</code></p>
</li>
<li><p><code>site:*.example.com</code></p>
</li>
<li><p><code>inurl:example.com</code></p>
</li>
</ul>
<p>These often surface old docs, beta pages, and campaign sites that were never removed.</p>
<h3>Brute-force common names</h3>
<p>Use a targeted wordlist, not random guessing. Common subdomain names include:</p>
<ul>
<li><p><code>dev</code></p>
</li>
<li><p><code>test</code></p>
</li>
<li><p><code>staging</code></p>
</li>
<li><p><code>beta</code></p>
</li>
<li><p><code>old</code></p>
</li>
<li><p><code>legacy</code></p>
</li>
<li><p><code>admin</code></p>
</li>
<li><p><code>api</code></p>
</li>
<li><p><code>portal</code></p>
</li>
<li><p><code>backup</code></p>
</li>
</ul>
<p>Then resolve the results and remove false positives caused by wildcard DNS.</p>
<h3>Validate what still exists</h3>
<p>For every discovered subdomain, ask:</p>
<ul>
<li><p>Does it resolve?</p>
</li>
<li><p>Who owns it?</p>
</li>
<li><p>Is it publicly reachable?</p>
</li>
<li><p>Is it still needed?</p>
</li>
<li><p>Does it point to a service you control?</p>
</li>
</ul>
<p>If you cannot answer those questions quickly, the hostname needs review.</p>
<h2>Free tools and automated methods</h2>
<p>Manual work is fine for one domain. For multiple domains or frequent changes, automation is the practical choice.</p>
<table>
<thead>
<tr>
<th>Method</th>
<th>Best for</th>
<th>Strengths</th>
<th>Limits</th>
</tr>
</thead>
<tbody><tr>
<td>CT log review</td>
<td>Historical discovery</td>
<td>Finds certificates tied to your domain</td>
<td>Misses hosts without certs</td>
</tr>
<tr>
<td>Passive DNS</td>
<td>Old and deleted records</td>
<td>Good historical context</td>
<td>Depends on source coverage</td>
</tr>
<tr>
<td>Search engine queries</td>
<td>Publicly indexed hosts</td>
<td>Simple and fast</td>
<td>Incomplete coverage</td>
</tr>
<tr>
<td>DNS brute force</td>
<td>Predictable naming patterns</td>
<td>Finds hidden or guessed hosts</td>
<td>Noisy and time-consuming</td>
</tr>
<tr>
<td>Permutation scanning</td>
<td>Variants of known hosts</td>
<td>Finds related hostnames</td>
<td>Needs a baseline</td>
</tr>
<tr>
<td>Automated subdomain scanner</td>
<td>Continuous inventory</td>
<td>Fast, repeatable, scalable</td>
<td>Needs tuning and validation</td>
</tr>
</tbody></table>
<p>Tools commonly used in subdomain enumeration workflows include <strong>Amass</strong>, <strong>Subfinder</strong>, <strong>Gobuster</strong>, <strong>Massdns</strong>, <code>dnsx</code>, and <code>httpx</code>. They are often used together: collect passive results, deduplicate, resolve live hosts, then compare the output against your approved inventory.</p>
<h3>Step-by-step workflow</h3>
<h4>1. Run passive discovery first</h4>
<p>Passive discovery gives you the broadest first pass without touching the target much. It is useful for building a baseline of what is publicly known.</p>
<h4>2. Deduplicate the results</h4>
<p>Multiple sources will return the same hostname. Clean the list before you spend time validating it.</p>
<h4>3. Resolve live hosts</h4>
<p>Look for names that resolve to current IPs or active HTTP services. This separates real hosts from stale records.</p>
<h4>4. Detect wildcard DNS</h4>
<p>Wildcard DNS can make every random label look valid. If you skip this step, your results will be noisy.</p>
<h4>5. Run active brute force if authorized</h4>
<p>Use a curated wordlist to find predictable names like <code>dev</code>, <code>portal</code>, or <code>backup</code>. Only do this on assets you own or are explicitly allowed to test.</p>
<h4>6. Compare against the approved inventory</h4>
<p>Anything not in the inventory becomes a review item.</p>
<h4>7. Flag unknown or unmanaged hosts</h4>
<p>Unknown does not always mean malicious, but it does mean untracked. That is the gap you need to close.</p>
<h3>Example commands</h3>
<pre><code class="language-bash">subfinder -d example.com -silent -o subfinder.txt
amass enum -passive -d example.com -o amass-passive.txt
cat subfinder.txt amass-passive.txt | sort -u &gt; all-passive.txt
</code></pre>
<p>Use commands like these only on domains you control or are authorized to assess.</p>
<h3>Comparison of methods</h3>
<table>
<thead>
<tr>
<th>Approach</th>
<th>Visibility</th>
<th>Effort</th>
<th>Best use case</th>
</tr>
</thead>
<tbody><tr>
<td>Manual review</td>
<td>Medium</td>
<td>High</td>
<td>Small environments, first audit</td>
</tr>
<tr>
<td>Free tools</td>
<td>Medium to high</td>
<td>Medium</td>
<td>Budget-conscious teams</td>
</tr>
<tr>
<td>Automated scanner</td>
<td>High</td>
<td>Low after setup</td>
<td>Ongoing discovery</td>
</tr>
<tr>
<td>Continuous monitoring</td>
<td>Highest</td>
<td>Lowest over time</td>
<td>Mature attack surface management</td>
</tr>
</tbody></table>
<h2>Continuous monitoring</h2>
<p>One-time discovery is not enough. New subdomains appear when teams launch features, move vendors, or inherit assets through mergers and acquisitions. Continuous monitoring is what turns subdomain discovery into a real security process.</p>
<p>Monitor for:</p>
<ul>
<li><p>New subdomains in CT logs.</p>
</li>
<li><p>DNS changes on existing records.</p>
</li>
<li><p>CNAME targets that stop resolving.</p>
</li>
<li><p>Certificates issued for unknown hosts.</p>
</li>
<li><p>Hosts that flip from live to dead.</p>
</li>
<li><p>Staging or beta domains that become public by accident.</p>
</li>
</ul>
<p>A useful monitoring setup answers three questions:</p>
<ul>
<li><p>What changed?</p>
</li>
<li><p>Who owns it?</p>
</li>
<li><p>Is it supposed to be public?</p>
</li>
</ul>
<p>If the answer is unclear, the change deserves review.</p>
<img src="attack-surface-monitoring.webp" alt="Dashboard showing subdomain monitoring and DNS change alerts." style="display:block;margin:0 auto" />

<p><em>Monitoring turns discovery into an ongoing security process.</em></p>
<h3>What good monitoring looks like</h3>
<p>Good monitoring is not a pile of alerts. It is a lightweight pipeline that keeps your public asset inventory current and highlights real changes worth investigating.</p>
<p>A simple process looks like this:</p>
<ol>
<li><p>Watch CT logs for new certificates tied to your domains.</p>
</li>
<li><p>Check DNS for new or changed records.</p>
</li>
<li><p>Compare new results with your asset inventory.</p>
</li>
<li><p>Route unknown hosts to the right owner.</p>
</li>
<li><p>Retire anything that no longer has a business purpose.</p>
</li>
</ol>
<h2>Best practices</h2>
<p>If you want to reduce abandoned subdomains before they become a problem, make these habits part of your normal process:</p>
<ul>
<li><p>Maintain a central subdomain inventory.</p>
</li>
<li><p>Assign an owner to every public hostname.</p>
</li>
<li><p>Remove DNS records when services are retired.</p>
</li>
<li><p>Separate production from test and staging domains.</p>
</li>
<li><p>Block indexing on non-production hosts.</p>
</li>
<li><p>Review CT logs on a schedule.</p>
</li>
<li><p>Monitor for dangling DNS records.</p>
</li>
<li><p>Include subdomains in change management.</p>
</li>
<li><p>Re-check old campaign and partner hostnames after projects end.</p>
</li>
<li><p>Tie new subdomain creation to a cleanup plan.</p>
</li>
</ul>
<blockquote>
<p><strong>Rule of thumb</strong></p>
<p>If nobody can explain why a subdomain exists, it should not stay public.</p>
</blockquote>
<h3>Example workflow for teams</h3>
<p>A practical team workflow is simple:</p>
<ul>
<li><p>A subdomain is created.</p>
</li>
<li><p>The owner is recorded.</p>
</li>
<li><p>The business purpose is documented.</p>
</li>
<li><p>The expected retirement date is added.</p>
</li>
<li><p>Cleanup is reviewed when the project ends.</p>
</li>
</ul>
<p>That sounds basic, but most teams skip at least one of those steps.</p>
<h2>Common mistakes</h2>
<p>Teams usually make the same mistakes when handling forgotten subdomains:</p>
<ul>
<li><p>Treating subdomains as low priority.</p>
</li>
<li><p>Assuming old DNS records are harmless.</p>
</li>
<li><p>Forgetting third-party decommissioning.</p>
</li>
<li><p>Ignoring wildcard DNS and false positives.</p>
</li>
<li><p>Scanning once and assuming the result is complete.</p>
</li>
<li><p>Leaving ownership unclear.</p>
</li>
<li><p>Not monitoring CT logs or DNS drift.</p>
</li>
<li><p>Keeping staging environments publicly exposed.</p>
</li>
</ul>
<p>The biggest mistake is thinking a subdomain is safe just because it is old. Old does not mean inactive, and inactive does not mean unreachable.</p>
<h2>Real-world scenarios</h2>
<h3>Scenario 1: Marketing campaign cleanup</h3>
<p>A team launches <code>promo.example.com</code> for a product launch. The campaign ends, but the subdomain stays live with a form that still collects visitor data. That creates privacy and brand risk even if the page looks harmless.</p>
<h3>Scenario 2: Retired third-party service</h3>
<p>A company points <code>support.example.com</code> to a SaaS support platform. The platform is later canceled, but the DNS record remains. If the provider allows hostname reuse, that can become a takeover risk.</p>
<h3>Scenario 3: Old staging environment</h3>
<p>A <code>staging.example.com</code> host is left on an older stack with weak access controls. It may not contain production data, but it can still expose admin panels, internal notes, or debugging endpoints.</p>
<h3>Scenario 4: Acquisition leftovers</h3>
<p>After an acquisition, old subdomains from the acquired company remain online under the parent domain. Nobody tracks them because they were never folded into the main inventory. Attackers tend to look for exactly this kind of inherited exposure.</p>
<h2>Practical examples</h2>
<h3>Example: Starting from one root domain</h3>
<p>If you manage <code>example.com</code>, a simple first pass could look like this:</p>
<ol>
<li><p>Review current DNS records.</p>
</li>
<li><p>Search CT logs for <code>example.com</code>.</p>
</li>
<li><p>Check historical DNS data.</p>
</li>
<li><p>Run passive subdomain enumeration.</p>
</li>
<li><p>Validate live hosts.</p>
</li>
<li><p>Compare results with your known inventory.</p>
</li>
<li><p>Investigate anything not owned by an active team.</p>
</li>
</ol>
<h3>Example: Cleaning up a campaign subdomain</h3>
<p>A team creates <code>summer2026.example.com</code> for a seasonal campaign. When the campaign ends, the DNS record should either be removed or redirected to a permanent landing page. Leaving it live with no owner only increases the public footprint.</p>
<h2>Checklist</h2>
<p>Use this checklist during your next subdomain review:</p>
<ul>
<li><p>Export all known DNS records.</p>
</li>
<li><p>Search CT logs for your root domain.</p>
</li>
<li><p>Query passive DNS sources.</p>
</li>
<li><p>Run search engine checks for indexed hostnames.</p>
</li>
<li><p>Brute-force common subdomain names.</p>
</li>
<li><p>Detect and filter wildcard DNS.</p>
</li>
<li><p>Validate every unknown hostname.</p>
</li>
<li><p>Identify dangling CNAMEs and stale A records.</p>
</li>
<li><p>Assign an owner to each public subdomain.</p>
</li>
<li><p>Remove records that no longer have a business purpose.</p>
</li>
<li><p>Add monitoring for new subdomains and DNS changes.</p>
</li>
<li><p>Re-scan after major releases, migrations, and acquisitions.</p>
</li>
</ul>
<h2>Summary</h2>
<p>If you only scan for vulnerabilities on known apps, you will miss a lot of exposed infrastructure. The real first step is building a complete subdomain inventory, then keeping it current. That is the difference between a static list and a usable attack surface map.</p>
<h2>FAQ</h2>
<h3>What is a forgotten subdomain?</h3>
<p>A forgotten subdomain is a public hostname that still exists but no longer has active ownership or monitoring.</p>
<h3>Why do companies forget subdomains?</h3>
<p>They are often created quickly for projects, campaigns, tests, or integrations, then left behind when the work ends.</p>
<h3>How do attackers discover abandoned subdomains?</h3>
<p>They use certificate transparency logs, passive DNS, search engines, brute-force enumeration, and historical records.</p>
<h3>What is the best way to find forgotten subdomains?</h3>
<p>Use a combination of CT log review, passive DNS, search operators, DNS brute force, and continuous monitoring.</p>
<h3>Which free tools help with subdomain discovery?</h3>
<p>Common options include crt.sh, search engine operators, DNS lookup tools, and enumeration tools like Subfinder and Amass.</p>
<h3>How often should subdomain enumeration be run?</h3>
<p>For active environments, discovery should be continuous or scheduled regularly, not done only once a quarter.</p>
<h3>What is the risk of a dangling DNS record?</h3>
<p>A dangling DNS record can point to a removed service and create a subdomain takeover opportunity.</p>
<h3>How does continuous monitoring help prevent subdomain takeover?</h3>
<p>It alerts you when new hostnames appear or old ones stop resolving, so you can remove or reclaim them before they are abused.</p>
<h2>Conclusion</h2>
<p>To find forgotten subdomains, combine passive discovery, active enumeration, and continuous monitoring. That gives you the best chance of finding abandoned subdomains before they become takeover risks, phishing surfaces, or untracked internet-facing assets.</p>
<p>VeilScan can help you do that without living in spreadsheets or running one-off checks every month. Scan your domain, review your external attack surface, and keep monitoring for new subdomains before attackers find them first.</p>
<p><a href="https://veilscan.net">Try the Scanner</a> | <a href="https://veilscan.net/pricing">See Pricing</a></p>
]]></content:encoded></item><item><title><![CDATA[What Is Subdomain Takeover and How to Check If You Are Vulnerable]]></title><description><![CDATA[What Is Subdomain Takeover and How to Check If You Are Vulnerable
Most founders and engineering teams treat DNS as something you set up once and forget. That is exactly what attackers are counting on.]]></description><link>https://blog.veilscan.net/what-is-subdomain-takeover-and-how-to-check-if-you-are-vulnerable</link><guid isPermaLink="true">https://blog.veilscan.net/what-is-subdomain-takeover-and-how-to-check-if-you-are-vulnerable</guid><category><![CDATA[cybersecurity]]></category><category><![CDATA[Subdomain takeover]]></category><category><![CDATA[DNS Security]]></category><category><![CDATA[startup security]]></category><category><![CDATA[Security]]></category><category><![CDATA[Entrepreneurship]]></category><category><![CDATA[veilscan]]></category><dc:creator><![CDATA[Rhythm Bhattarai]]></dc:creator><pubDate>Mon, 01 Jun 2026 17:40:03 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a03d97b52a9c969d6e72c67/688ab4b1-7143-424f-96c9-772e77e168a3.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>What Is Subdomain Takeover and How to Check If You Are Vulnerable</h2>
<p>Most founders and engineering teams treat DNS as something you set up once and forget. That is exactly what attackers are counting on.</p>
<p>Subdomain takeover is one of the most underrated vulnerabilities in startup and SMB security. It does not require sophisticated exploits or zero-days. It requires finding a DNS record pointing to a service that no longer exists and claiming that service before you do. The result is an attacker-controlled page living under your own domain, inheriting your brand trust, your cookies, and sometimes your users' sessions.</p>
<p>This article explains what subdomain takeover is, why it happens, how attackers find and exploit it, and the exact steps you should take to find and fix vulnerable subdomains before they become a problem.</p>
<h3>What Is Subdomain Takeover?</h3>
<p>Subdomain takeover happens when a DNS record for a subdomain points to an external service that has been deprovisioned, deleted, or never fully set up, and an attacker claims that external service to take control of the subdomain.</p>
<p>The classic scenario looks like this:</p>
<ol>
<li><p>Your team spins up <a href="http://staging.yourcompany.com"><code>staging.yourcompany.com</code></a> and points it to a Heroku app.</p>
</li>
<li><p>The Heroku app is eventually deleted, but nobody removes the DNS record.</p>
</li>
<li><p>The CNAME for <a href="http://staging.yourcompany.com"><code>staging.yourcompany.com</code></a> still points to <a href="http://your-app.herokuapp.com"><code>your-app.herokuapp.com</code></a>.</p>
</li>
<li><p>An attacker creates a new Heroku app at that exact subdomain.</p>
</li>
<li><p>That attacker now controls everything served at <a href="http://staging.yourcompany.com"><code>staging.yourcompany.com</code></a>.</p>
</li>
</ol>
<p>From a browser's perspective, the page at <a href="http://staging.yourcompany.com"><code>staging.yourcompany.com</code></a> is legitimately yours. There is no warning. The attacker can serve phishing pages, steal cookies scoped to <code>*.</code><a href="http://yourcompany.com"><code>yourcompany.com</code></a>, send authenticated requests on behalf of your users, or use it as a trusted platform for malware distribution.</p>
<h3>Why It Happens So Often</h3>
<p>The root cause is almost always poor DNS hygiene combined with fast-moving teams. Subdomains get created for staging environments, product launches, marketing campaigns, third-party integrations, and trial SaaS tools. When those things get removed or replaced, the DNS records stay. Nobody owns the cleanup process.</p>
<p>Common services that are frequently involved in subdomain takeovers include:</p>
<ul>
<li><p>Heroku (deprovisioned apps)</p>
</li>
<li><p>GitHub Pages (deleted repositories or pages configurations)</p>
</li>
<li><p>Netlify and Vercel (removed deployments)</p>
</li>
<li><p>AWS S3 and CloudFront (deleted buckets or distributions)</p>
</li>
<li><p>Fastly, Pantheon, Shopify, HubSpot, Zendesk, and dozens more</p>
</li>
<li><p>Any SaaS tool your team connected to a custom subdomain</p>
</li>
</ul>
<p>The problem scales with team size and time. The more people who have DNS access, the more subdomains accumulate. The older the company, the more forgotten records exist.</p>
<h3>What Attackers Can Do With a Taken Subdomain</h3>
<p>The impact varies based on what the subdomain is and what trust it inherits from the parent domain.</p>
<p><strong>Cookie theft and session hijacking.</strong> Cookies set with the <code>Domain=.</code><a href="http://yourcompany.com"><code>yourcompany.com</code></a> attribute are accessible from any subdomain, including a taken one. An attacker serving content at a taken subdomain can read those cookies via JavaScript.</p>
<p><strong>Phishing with built-in legitimacy.</strong> A page at <a href="http://login.yourcompany.com"><code>login.yourcompany.com</code></a> or <a href="http://support.yourcompany.com"><code>support.yourcompany.com</code></a> is far more convincing than any lookalike domain. Users and email clients see a valid certificate for your domain.</p>
<p><strong>Bypassing Content Security Policy (CSP).</strong> If your CSP allowlists <code>*.</code><a href="http://yourcompany.com"><code>yourcompany.com</code></a>, a taken subdomain is a trusted origin. An attacker can use it to load malicious scripts on your main site.</p>
<p><strong>Email spoofing assistance.</strong> In some configurations, a taken subdomain can be used to assist in phishing email campaigns that appear to originate from your organization.</p>
<p><strong>Reputation and SEO damage.</strong> Search engines may index malicious or low-quality content served under your domain, affecting your domain authority and brand trust.</p>
<h3>How to Check If You Are Vulnerable</h3>
<h4>Step 1: Enumerate All Your Subdomains</h4>
<p>Before you can audit for dangling records, you need a complete list of your subdomains. Most teams are surprised how many they find.</p>
<p>Sources to check:</p>
<ul>
<li><p>Your DNS registrar and DNS management panel (Route 53, Cloudflare, Namecheap, etc.)</p>
</li>
<li><p>Certificate transparency logs (<a href="http://crt.sh">crt.sh</a> is a free public resource)</p>
</li>
<li><p>Your version control history and CI/CD configuration files</p>
</li>
<li><p>Your team's internal documentation and runbooks</p>
</li>
<li><p>Old infrastructure notes, Notion pages, or Confluence docs</p>
</li>
</ul>
<p>Free tools for enumeration: <code>subfinder</code>, <code>amass</code>, <code>dnsx</code>, and passive CT log searches via <a href="http://crt.sh">crt.sh</a>.</p>
<h4>Step 2: Identify Dangling CNAME Records</h4>
<p>A dangling CNAME is a DNS record that points to an external hostname that no longer resolves to an active resource. These are the primary vehicle for subdomain takeover.</p>
<p>For each subdomain in your list:</p>
<ol>
<li><p>Check if it has a CNAME record: <code>dig CNAME</code> <a href="http://staging.yourcompany.com"><code>staging.yourcompany.com</code></a></p>
</li>
<li><p>Resolve the CNAME target and check if it returns a valid response</p>
</li>
<li><p>Look for error responses from the target platform that indicate the resource no longer exists</p>
</li>
</ol>
<p>Indicator responses to watch for:</p>
<ul>
<li><p>Heroku: <code>No such app</code></p>
</li>
<li><p>GitHub Pages: <code>There isn't a GitHub Pages site here</code></p>
</li>
<li><p>Netlify: <code>Not Found - Request ID</code></p>
</li>
<li><p>AWS S3: <code>NoSuchBucket</code></p>
</li>
<li><p>Fastly: <code>Fastly error: unknown domain</code></p>
</li>
</ul>
<p>Any of these responses from a CNAME target means the subdomain is potentially claimable by an attacker.</p>
<h4>Step 3: Check for A Records Pointing to Released IPs</h4>
<p>Less common but still relevant. If a subdomain points via A record to a cloud IP address that has since been released and reassigned to another customer, the same takeover risk exists. This is harder to enumerate manually but worth including in automated scanning.</p>
<h4>Step 4: Validate Against Known-Vulnerable Services</h4>
<p>The <code>can-i-take-over-xyz</code> repository on GitHub maintains a community-sourced list of services and their takeover fingerprints. It is a useful reference when auditing your subdomains against specific platforms.</p>
<p>Cross-reference each dangling CNAME target against the list to confirm whether that service is exploitable.</p>
<h4>Step 5: Prioritize by Risk</h4>
<p>Not all dangling subdomains carry the same risk. Prioritize based on:</p>
<ul>
<li><p>Subdomains with names suggesting user-facing use: <code>login</code>, <code>app</code>, <code>account</code>, <code>portal</code>, <code>support</code>, <code>api</code></p>
</li>
<li><p>Subdomains that inherit sensitive cookies from the parent domain</p>
</li>
<li><p>Subdomains mentioned in your CSP allowlist</p>
</li>
<li><p>Subdomains that appear in publicly visible links or indexed by search engines</p>
</li>
</ul>
<p>A forgotten <a href="http://dev-test-2021.yourcompany.com"><code>dev-test-2021.yourcompany.com</code></a> pointing to a deleted Heroku app is still a risk, but a dangling <a href="http://auth.yourcompany.com"><code>auth.yourcompany.com</code></a> is a critical one.</p>
<h3>How to Fix Subdomain Takeover Vulnerabilities</h3>
<h4>Remove dangling DNS records immediately</h4>
<p>If the service is gone and the subdomain is no longer needed, delete the DNS record. This is the cleanest fix and removes the risk entirely.</p>
<h4>Reclaim the external resource</h4>
<p>If the subdomain is still in use or you are not ready to remove it, recreate the resource on the target platform under the same identifier. For example, recreate the deleted Heroku app at the same app name. This removes the attacker's ability to claim it.</p>
<h4>Implement DNS hygiene processes</h4>
<ul>
<li><p>Before decommissioning any external service, remove the DNS record first</p>
</li>
<li><p>Audit DNS records as part of offboarding any third-party tool</p>
</li>
<li><p>Assign ownership of DNS records to specific team members or a shared infrastructure registry</p>
</li>
<li><p>Run subdomain enumeration on a recurring schedule (monthly at minimum)</p>
</li>
</ul>
<h4>Monitor certificate transparency logs</h4>
<p>New TLS certificates issued for your subdomains will appear in CT logs within minutes of issuance. Monitoring these logs gives you real-time visibility into new subdomains being created and can alert you to unexpected certificate issuance on subdomains you did not set up.</p>
<p>Tools like <code>certspotter</code>, <a href="http://crt.sh"><code>crt.sh</code></a> RSS feeds, or purpose-built ASM platforms can automate this.</p>
<h3>Subdomain Takeover Audit Checklist</h3>
<ul>
<li><p>Enumerate all subdomains from DNS, CT logs, and internal records</p>
</li>
<li><p>Identify CNAME records for each subdomain</p>
</li>
<li><p>Resolve CNAME targets and check for platform-specific error responses</p>
</li>
<li><p>Cross-reference dangling CNAMEs against known-vulnerable service fingerprints</p>
</li>
<li><p>Prioritize subdomains by risk (user-facing, cookie scope, CSP allowlist)</p>
</li>
<li><p>Remove DNS records for deprovisioned services</p>
</li>
<li><p>Reclaim any external resources that cannot be immediately removed</p>
</li>
<li><p>Establish a pre-decommissioning DNS cleanup process</p>
</li>
<li><p>Set up CT log monitoring for unexpected certificate issuance</p>
</li>
<li><p>Schedule recurring subdomain audits</p>
</li>
</ul>
<h3>Conclusion</h3>
<p>Subdomain takeover does not require an attacker to break anything. It requires finding something your team left unlocked. The fix is simple: keep your DNS records in sync with your actual infrastructure and build the habit of cleaning up before you turn something off. A full subdomain audit takes a few hours the first time. Maintaining it takes minutes per quarter. That is a small investment compared to the cost of an attacker hosting a phishing page under your own domain name.</p>
]]></content:encoded></item><item><title><![CDATA[What Is Attack Surface Management and Why Every SMB Needs It in 2026]]></title><description><![CDATA[What Is Attack Surface Management and Why Every SMB Needs It in 2026
Most small and medium-sized businesses assume they are not interesting targets for hackers. They are wrong. Attackers don’t hand-pi]]></description><link>https://blog.veilscan.net/what-is-attack-surface-management-and-why-every-smb-needs-it-in-2026</link><guid isPermaLink="true">https://blog.veilscan.net/what-is-attack-surface-management-and-why-every-smb-needs-it-in-2026</guid><dc:creator><![CDATA[Rhythm Bhattarai]]></dc:creator><pubDate>Wed, 27 May 2026 17:37:37 GMT</pubDate><content:encoded><![CDATA[<h1>What Is Attack Surface Management and Why Every SMB Needs It in 2026</h1>
<p>Most small and medium-sized businesses assume they are not interesting targets for hackers. They are wrong. Attackers don’t hand-pick victims based on company size or brand recognition — they run automated scanners across the entire internet, looking for anything exposed and exploitable. If your business has a public-facing server, a forgotten subdomain, an open cloud storage bucket, or an employee-facing login portal, those scanners will find it.</p>
<p>Attack Surface Management (ASM) addresses exactly this problem. It is one of the most practical security concepts to emerge in recent years. While ASM has historically been associated with large enterprises, the core idea applies just as much to a 20-person SaaS startup or a regional financial services firm. This article explains what ASM is, why SMBs are particularly vulnerable, what attackers are looking for, how ASM works in practice, and what SMBs can do today without needing a dedicated security team.</p>
<h2>What is Attack Surface Management (ASM)?</h2>
<p>ASM is the continuous process of discovering, inventorying, assessing, and monitoring everything about your organization that’s visible or accessible from the internet — and then prioritizing and remediating the most significant exposures. Key goals:</p>
<ul>
<li><p>Discover all external-facing assets (known and unknown).</p>
</li>
<li><p>Continuously monitor for new exposures and configuration drift.</p>
</li>
<li><p>Contextualize findings so you can prioritize real risks instead of noisy alerts.</p>
</li>
<li><p>Provide remediation guidance and integrate with existing workflows (tickets, CI/CD, ITSM).</p>
</li>
</ul>
<p>ASM is broader than a one-off vulnerability scan. It focuses on visibility and context across the external attack surface and keeps tracking it over time.</p>
<h2>What Is an Attack Surface?</h2>
<p>Your attack surface is everything about your organization that is visible and reachable from the internet. That includes assets you know about and — critically — assets you have forgotten or never knew existed. The external attack surface specifically refers to internet-facing components attackers can discover and interact with.</p>
<p>Common external attack surface components:</p>
<ul>
<li><p>Domain names and subdomains (active, abandoned, and wildcard entries)</p>
</li>
<li><p>Web applications, admin panels, and APIs</p>
</li>
<li><p>Cloud infrastructure (storage buckets, compute instances, IAM policies)</p>
</li>
<li><p>Publicly exposed databases and services (e.g., misconfigured MongoDB, Redis)</p>
</li>
<li><p>Certificates and certificate transparency/logs</p>
</li>
<li><p>DNS records and email infrastructure (MX, SPF, DKIM)</p>
</li>
<li><p>Source code and configuration files in public repositories</p>
</li>
<li><p>CI/CD endpoints and build artifacts</p>
</li>
<li><p>Third-party services, vendor integrations, and partner portals</p>
</li>
<li><p>Remote access services (VPN, RDP, SSH) and exposed ports</p>
</li>
<li><p>Shadow IT (employee-created SaaS accounts, forgotten VMs)</p>
</li>
</ul>
<h2>Why SMBs Are Particularly Vulnerable</h2>
<ul>
<li><p>Limited security staff and expertise: SMBs often lack dedicated security teams and rely on general IT resources.</p>
</li>
<li><p>Configuration and patching gaps: Lean teams and fast product cycles lead to misconfigurations and delayed patching.</p>
</li>
<li><p>SaaS &amp; cloud complexity: Using many SaaS vendors and cloud services increases the chance of overlooked settings or leaked credentials.</p>
</li>
<li><p>Automated, opportunistic attackers: Attackers run broad scans and exploit the lowest-hanging fruit — size doesn’t matter.</p>
</li>
<li><p>Third-party risk: Vulnerabilities in vendors and integrations can cascade to your environment.</p>
</li>
<li><p>Credential reuse and weak controls: Reused passwords, missing MFA, and exposed API keys are easy entry points.</p>
</li>
<li><p>Forgotten assets: Old domains, staging sites, and test buckets often remain exposed and unattended.</p>
</li>
</ul>
<h2>What Attackers Look For</h2>
<ul>
<li><p>Exposed admin panels, dashboards, and debug endpoints</p>
</li>
<li><p>Default or weak credentials and exposed SSH/RDP access</p>
</li>
<li><p>Unpatched software with known CVEs</p>
</li>
<li><p>Open cloud storage buckets and misconfigured object ACLs</p>
</li>
<li><p>Public databases and management consoles</p>
</li>
<li><p>API keys, secrets, or configuration files in public repos</p>
</li>
<li><p>Misconfigured CORS or overly permissive cross-origin settings</p>
</li>
<li><p>Duplicate or abandoned domains prone to subdomain takeover</p>
</li>
<li><p>Expired or misissued TLS certificates</p>
</li>
<li><p>Misconfigured DNS records that enable redirection or takeover</p>
</li>
</ul>
<h2>How ASM Works in Practice</h2>
<p>ASM typically follows these phases:</p>
<ol>
<li><p>Discovery</p>
<ul>
<li><p>Passive discovery: certificate transparency logs, public datasets, DNS records, public code, certificate registries.</p>
</li>
<li><p>Active discovery: internet scans for open ports, services, and endpoints.</p>
</li>
</ul>
</li>
<li><p>Fingerprinting and Classification</p>
<ul>
<li>Identify asset types (web app, API, storage bucket), technologies, and ownership.</li>
</ul>
</li>
<li><p>Risk Scoring and Prioritization</p>
<ul>
<li>Assess exposure impact, exploitability, and business context to rank findings.</li>
</ul>
</li>
<li><p>Validation and Enrichment</p>
<ul>
<li>Reduce false positives with validation checks (active probes, HTTP responses, authentication requirements).</li>
</ul>
</li>
<li><p>Alerting &amp; Remediation Guidance</p>
<ul>
<li>Provide clear remediation steps and integrate alerts into ticketing/ITSM workflows.</li>
</ul>
</li>
<li><p>Continuous Monitoring</p>
<ul>
<li>Track changes over time, detect new exposures, and alert on suspicious activity.</li>
</ul>
</li>
<li><p>Integration</p>
<ul>
<li>Feed ASM findings into vulnerability management, incident response, and developer workflows (CI/CD) for faster fixes.</li>
</ul>
</li>
</ol>
<p>ASM is complementary to vulnerability scanners, penetration testing, and endpoint defenses. ASM gives visibility and context for external exposure; other tools dig deeper into internal vulnerabilities and exploitability.</p>
<h2>Practical Steps SMBs Can Take Today (No Dedicated Security Team Required)</h2>
<p>Immediate (first 24–72 hours)</p>
<ul>
<li><p>Inventory domains and subdomains: audit DNS, registrar accounts, and internal records.</p>
</li>
<li><p>Enable MFA on all admin, cloud, and critical accounts.</p>
</li>
<li><p>Rotate and revoke exposed keys and credentials found in public repos.</p>
</li>
<li><p>Check cloud storage buckets for public access and lock them down.</p>
</li>
<li><p>Close unused ports and disable remote access protocols (RDP/SSH) that aren’t needed.</p>
</li>
</ul>
<p>Short term (2–6 weeks)</p>
<ul>
<li><p>Run an external scan to discover internet-facing assets (use reputable free or low-cost tools).</p>
</li>
<li><p>Audit SaaS and third-party vendor access; remove unused integrations and enforce least privilege.</p>
</li>
<li><p>Harden publicly facing apps: apply security headers, rate limits, and basic WAF rules.</p>
</li>
<li><p>Set up certificate monitoring (watch for new or expiring certs) and DNS monitoring.</p>
</li>
<li><p>Establish a simple playbook for responding to exposed secrets or data leaks.</p>
</li>
</ul>
<p>Medium term (3–6 months)</p>
<ul>
<li><p>Adopt a lightweight ASM or managed service (many offer SMB plans) to automate discovery and monitoring.</p>
</li>
<li><p>Integrate ASM alerts into your existing ticketing or IT workflow.</p>
</li>
<li><p>Start periodic external penetration tests or vulnerability assessments.</p>
</li>
<li><p>Implement role-based access control and regular IAM reviews for cloud services.</p>
</li>
<li><p>Establish logging and retention for critical services; centralize alerts.</p>
</li>
</ul>
<p>Operational best practices (ongoing)</p>
<ul>
<li><p>Maintain an up-to-date external asset inventory.</p>
</li>
<li><p>Use a password manager and enforce unique passwords and MFA for staff.</p>
</li>
<li><p>Keep software and dependencies patched; subscribe to vendor security advisories.</p>
</li>
<li><p>Train staff on phishing and basic security hygiene.</p>
</li>
<li><p>Plan and test simple incident response steps (containment, communication, recovery).</p>
</li>
</ul>
<h2>Quick SMB ASM Checklist</h2>
<ul>
<li><p>Audit DNS records, domains, and subdomains</p>
</li>
<li><p>Lock down cloud buckets and storage permissions</p>
</li>
<li><p>Enforce MFA across all admin and cloud accounts</p>
</li>
<li><p>Revoke exposed API keys and rotate secrets</p>
</li>
<li><p>Monitor certificate transparency logs and DNS changes</p>
</li>
<li><p>Run external scans and validate findings</p>
</li>
<li><p>Implement least privilege for SaaS and cloud services</p>
</li>
<li><p>Subscribe to a lightweight ASM product or managed offering</p>
</li>
<li><p>Integrate ASM findings into ticketing and remediation workflows</p>
</li>
<li><p>Train staff and document basic incident response steps</p>
</li>
</ul>
<h2>Conclusion</h2>
<p>ASM is not just for big enterprises. For SMBs, it’s a practical, cost-effective approach to reduce the most common and damaging exposures that automated attackers find first. Start small: inventory what you have, close obvious gaps, and adopt continuous monitoring. Over time, ASM will help you move from reactive firefighting to proactive risk reduction — with measurable benefits for security and business resilience.</p>
]]></content:encoded></item><item><title><![CDATA[How to Check Your Website for Vulnerabilities (Free)]]></title><description><![CDATA[Most founders assume their website is secure because nothing bad has happened yet. That assumption is exactly what attackers rely on.
Your website is not just the pages your users see. It includes eve]]></description><link>https://blog.veilscan.net/how-to-check-your-website-for-vulnerabilities-free</link><guid isPermaLink="true">https://blog.veilscan.net/how-to-check-your-website-for-vulnerabilities-free</guid><category><![CDATA[cybersecurity]]></category><category><![CDATA[startup]]></category><category><![CDATA[vulnerability scanning ]]></category><category><![CDATA[Attack surface]]></category><category><![CDATA[Web Security]]></category><dc:creator><![CDATA[Rhythm Bhattarai]]></dc:creator><pubDate>Wed, 13 May 2026 10:56:14 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a03d97b52a9c969d6e72c67/008d4ad6-4bf0-4332-b655-65bd9fe88bc0.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most founders assume their website is secure because nothing bad has happened yet. That assumption is exactly what attackers rely on.</p>
<p>Your website is not just the pages your users see. It includes every subdomain you ever created, every API endpoint you exposed, every third party service you connected, and every port your server has open. Each one is a potential entry point.</p>
<p>The good news is you can find most of these exposures yourself in under 15 minutes, for free.</p>
<h3>What Does a Website Vulnerability Scan Actually Check?</h3>
<p>A proper external scan looks at your infrastructure the same way an attacker would, from the outside, with no special access.</p>
<p>It checks for:</p>
<ul>
<li><p>Subdomains you forgot about (old staging environments, abandoned projects, dev servers)</p>
</li>
<li><p>Open ports that should not be publicly accessible</p>
</li>
<li><p>Outdated software versions with known CVEs</p>
</li>
<li><p>Exposed admin panels (WordPress wp-admin, Grafana, phpMyAdmin)</p>
</li>
<li><p>TLS and SSL misconfigurations that weaken encryption</p>
</li>
<li><p>Email security gaps including missing DMARC, SPF, and DKIM records</p>
</li>
<li><p>Cloud storage buckets left publicly readable</p>
</li>
<li><p>Sensitive files accidentally exposed (.env files, backup archives, config files)</p>
</li>
</ul>
<p>Most startups have at least three of these issues without knowing it.</p>
<h3>Why Free Scanners Often Miss the Most Important Issues</h3>
<p>Generic free scanners run automated checks and return a list of potential findings. The problem is most of those findings are false positives, issues that look dangerous in a report but are not actually exploitable in your specific environment.</p>
<p>A security team wastes hours chasing false positives. A founder with no security background has no way to tell which findings are real.</p>
<p>Proof-based scanning solves this by verifying each finding before reporting it. Instead of flagging a potential issue, it confirms the issue is actually exploitable and shows you the evidence. You get a shorter list of real problems instead of a long list of noise.</p>
<h3>How to Run a Free Scan on Your Website</h3>
<p>VeilScan offers a free external scan that checks your domain for real, verified vulnerabilities. No agent installation required, no credit card, and results are ready within minutes.</p>
<p>Here is what to do:</p>
<ol>
<li><p>Go to veilscan.net/free-scan</p>
</li>
<li><p>Enter your domain name</p>
</li>
<li><p>Sign the rules of engagement (this confirms you have permission to scan your own domain)</p>
</li>
<li><p>Wait for the scan to complete</p>
</li>
<li><p>Review your findings with proof attached to each one</p>
</li>
</ol>
<p>The free scan covers subdomain discovery, port scanning, TLS checks, email security, and exposed service detection.</p>
<h3>What to Do With the Results</h3>
<p>When your scan completes you will see findings ranked by severity. Start with Critical and High findings first.</p>
<p>Each finding in VeilScan includes:</p>
<ul>
<li><p>What was found</p>
</li>
<li><p>Why it matters in plain language</p>
</li>
<li><p>Proof that it is exploitable</p>
</li>
<li><p>Recommended fix</p>
</li>
</ul>
<p>You do not need a security background to act on these results. The report is written for founders and engineering teams, not for security analysts.</p>
<h3>How Often Should You Scan?</h3>
<p>Running one scan is a good start but your attack surface changes every time you deploy new code, spin up a new service, or add a subdomain. New vulnerabilities are discovered in software libraries daily.</p>
<p>The startups that stay secure scan continuously, not just once a year before a compliance audit.</p>
<p>A one-time scan tells you where you stand today. Continuous monitoring tells you the moment something changes.</p>
<h3>Quick Answer</h3>
<p>You can check your website for vulnerabilities by running a free external scan that tests your subdomains, open ports, TLS configuration, email security, and exposed services for real, verified issues. VeilScan does this automatically with no installation required and delivers proof-backed results within minutes.</p>
<hr />
<p><strong>Frequently Asked Questions</strong></p>
<p><strong>Is it legal to scan my own website?</strong> Yes. Scanning infrastructure you own or have written permission to test is completely legal. VeilScan requires you to sign a rules of engagement document before scanning to confirm ownership.</p>
<p><strong>How long does a free scan take?</strong> Most scans complete within 5 to 15 minutes depending on the number of subdomains and open services discovered.</p>
<p><strong>Do I need to install anything?</strong> No. VeilScan is fully external and requires no agent, plugin, or server access. You enter your domain and the scan runs from outside your infrastructure.</p>
<p><strong>What is the difference between a vulnerability scan and a penetration test?</strong> A vulnerability scan is automated and runs continuously or on demand. A penetration test involves a human tester manually attempting to exploit findings. VeilScan is a continuous scanner that verifies exploitability, giving you many of the benefits of a pentest at a fraction of the cost.</p>
]]></content:encoded></item></channel></rss>