I generated 16 character (upper/lower) subdomain and set up a virtual host for it in Apache, and within an hour was seeing vulnerability scans.

How are folks digging this up? What’s the strategy to avoid this?

I am serving it all with a single wildcard SSL cert, if that’s relevant.

Thanks

Edit:

  • I am using a single wildcard cert, with no subdomains attached/embedded/however those work
  • I don’t have any subdomains registered with DNS.
  • I attempted dig axfr example.com @ns1.example.com returned zone transfer DENIED

Edit 2: I’m left wondering, is there an apache endpoint that returns all configured virtual hosts?

Edit 3: I’m going to go through this hardening guide and try against with a new random subdomain https://www.tecmint.com/apache-security-tips/

  • androidul@lemmy.world
    link
    fedilink
    English
    arrow-up
    54
    ·
    edit-2
    1 month ago

    if you use Let’s Encrypt (ACME protocol) AFAIK you can find all domains registered in a directory that even has a search, no matter if it’s wildcard or not.

    It was something like this https://crt.sh/ but can’t find the site exactly anymore

    LE: you can also find some here https://search.censys.io/

    • Shimitar@downonthestreet.eu
      link
      fedilink
      English
      arrow-up
      16
      ·
      1 month ago

      This.

      That’s why temping obscurity for security is not a good idea. Doesn’t take much to be “safe”, at least reasonably safe. But that not much its good practice to be done :)

      • Fair Fairy@thelemmy.club
        link
        fedilink
        English
        arrow-up
        6
        arrow-down
        5
        ·
        1 month ago

        No. Not this.

        Op is doing hidden subdomain pattern. Wildcard dns and wildcard ssl.

        This way subdomain acts as a password and application essentially inaccessible for bot crawls.

        Works very well

  • Decronym@lemmy.decronym.xyzB
    link
    fedilink
    English
    arrow-up
    39
    arrow-down
    2
    ·
    edit-2
    1 month ago

    Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

    Fewer Letters More Letters
    CA (SSL) Certificate Authority
    DNS Domain Name Service/System
    IP Internet Protocol
    SSL Secure Sockets Layer, for transparent encryption
    TLS Transport Layer Security, supersedes SSL
    VPN Virtual Private Network
    VPS Virtual Private Server (opposed to shared hosting)

    7 acronyms in this thread; the most compressed thread commented on today has 16 acronyms.

    [Thread #990 for this comm, first seen 11th Jan 2026, 01:25] [FAQ] [Full list] [Contact] [Source code]

  • 4am@lemmy.zip
    link
    fedilink
    English
    arrow-up
    21
    ·
    1 month ago

    For anyone who needs to read it: At the end of the day this is obscurity, not security; however obscurity is a good secondary defense because it buys time.

    I too would be interested to learn how this leaked

    • zeca@lemmy.ml
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 month ago

      Isnt security mostly achieved by heavy obscurity? A password secures because other people dont know what it is, it is obscured.

      • pishadoot@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 month ago

        They’re not the same.

        Hiding an unlocked treasure chest in the forest is obscurity. Sure, you might be the only one who knows it’s there at first but eventually someone might come across it.

        Having a vault at a bank branch is security - everyone knows there’s a vault there, but you’ll be damned if you’re going to get into it when you’re not authorized.

        Good passwords, when implemented correctly, use hashing (one way encryption) to provide security. It’s not obscured, people know you need a password to access the thing (in our example)

  • Fedditor385@lemmy.world
    link
    fedilink
    English
    arrow-up
    16
    arrow-down
    1
    ·
    1 month ago

    If you have browser with search suggestions enabled, everything you type in URL bar gets sent to a search engine like Google to give you URL suggestions. I would not be surprised if Google uses this data to check what it knows about the domain you entered, and if it sees that it doesn’t know anything, it sends the bot to scan it to get more information.

    But in general, you can’t access a domain without using a browser which might send that what you type to some company’s backend and voila, you leaked your data.

    • Derpgon@programming.dev
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 month ago

      Easily verified by creating another bunch of domains and using a browser that doesn’t do tracking - like waterfox

    • kumi@feddit.online
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 month ago

      What you can do is segregate networks.

      If the browser runs in, say, a VM with only access to the intranet and no internet access at all, this risk is greatly reduced.

  • kumi@feddit.online
    link
    fedilink
    English
    arrow-up
    9
    ·
    edit-2
    1 month ago

    You say you have a wildcard cert but just to make sure: I don’t suppose you’ve used ACME for Letsencrypt or some other publicly trusted CA to issue a cert including the affected name? If so it will be public in Certificate Transparency Logs.

    If not I’d do it again and closely log and monitor every packet leaving the box.

      • kumi@feddit.online
        link
        fedilink
        English
        arrow-up
        4
        ·
        1 month ago

        My next suspicion from what you’ve shared so far apart from what others suggested would be something out of the http server loop.

        Have you used some free public DNS server and inadvertently queried it with the name from a container or something? Developer tooling building some app with analytics not disabled? Any locally connected AI agents having access to it?

  • Fair Fairy@thelemmy.club
    link
    fedilink
    English
    arrow-up
    8
    ·
    1 month ago

    Crawlers typically crawl by ip.

    Are u sure they just not using ip?

    U need to expressly configure drop connection if invalid domain.

    I use similar pattern and have 0 crawls.

      • mic_check_one_two@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 month ago

        It can be both server and DNS provider. For instance, Cloudflare allows you to set rules for what traffic is allowed. And you can set it to automatically drop traffic for everything except your specific subdomains. I also have mine set to ban a IP after 5 failed subdomain attempts. That alone will do a lot of heavy lifting, because it ensures your server is only getting hit with the requests that have already figured out a working subdomain.

        Personally, I see a lot of hacking attempts aimed at my main www. subdomain, for Wordpress. Luckily, I don’t run Wordpress. But the bots are 100% out there, just casually scanning for Wordpress vulnerabilities.

  • oranki@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    7
    ·
    1 month ago

    Maybe that particular subdomain is getting treated as the default virtual host by Apache? Are the other subdomains receiving scans too?

    I don’t use Apache much, but NGINX sometimes surprises on what it uses if the default is not specifically defined.

    • BonkTheAnnoyed@lemmy.blahaj.zoneOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 month ago

      Yeah, this is interesting, I’ll dig more into this direction.

      But the randomly generated subdomain has never seen a DNS registrar.

      I do have *.mydomain.com registered though…hmmm

  • fizzle@quokk.au
    link
    fedilink
    English
    arrow-up
    5
    ·
    1 month ago

    All the obvious things have been mentioned.

    The only way to identify the problem is to share the exact steps youve followed and then others can reproduce.

    Based on what youve told us, no one knows how the subdomain is leaked. Without meaning to be derisive, that suggests that something youve told us isn’t quite correct.

    • BonkTheAnnoyed@lemmy.blahaj.zoneOP
      link
      fedilink
      English
      arrow-up
      6
      ·
      1 month ago

      Well, the good news is that I at least think I’m doing all the right things.

      I’ll spin up a new VM tomorrow and start from scratch.

  • TieDyePie@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    1 month ago

    If you do a GET / request against the IP (typically http too) does it yield a redirect to your proper fqdn? It shouldn’t return anything and remain stealthy as you likely dont want to expose anything directly on IP connections and rely solely on your vhosts.

  • stratself@lemdro.id
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 month ago

    My guess would be NSEC zone walking if your DNS provider supports DNSSEC. But that shouldn’t work with unregistered or wildcard domains

    The next guess would be during setup, someone somewhere got ahold of your SNI (and/or outgoing DNS requests). Maybe your ISP/VPN service actually logs them and announce it to the world

    I suggest next time, try setting up without any over-the-internet traffic at all. E.g. always use curl with the --resolve flag on the same VM as Apache to check if it’s working

  • eli@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    arrow-down
    1
    ·
    1 month ago

    I run my webservers behind a pfsense firewall with ssl offloading(using a wildcard cert) with a static IP and use Haproxy to have sub-domain’s go to individual servers. Even though I’ve seen my fair share of scans, I only ever expose port 443 and keep things updated.

    Recently though someone on here mentioned routing everything over Tailscale via a VPS. I didn’t want to pay for a VPS and frankly can’t even find one that is reasonably priced in the US(bandwidth limits mainly), so I threw Tailscale onto my pfsense, setup split-dns on Tailscale’s admin panel with my domain name, and then reconfigured Haproxy to listen on my Tailscale interface. Even got IPv6 working(huge pain due to a bug it seems). Oh and setup pfblocker.

    My current plan is I’m going to run my webservers behind Tailscale and keep my game servers public and probably segment those servers to a different vlan/subnet/dmz/whatever. And maybe just have a www/blog landing page that is read only on 443 and have it’s config/admin panel accessible via my tailscale only.

    Anyway, back on topic. I run my game servers and I don’t advertise them out anywhere(wildcard cert) and do whitelist only, yet I still see my minecraft servers get hit constantly on port 25565.

    So not much you can do except minimize exposure as much as possible.