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/

  • frongt@lemmy.zip
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    Scans from where? Is it exposed to the internet? What does the scan traffic look like?

    • BonkTheAnnoyed@lemmy.blahaj.zoneOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      Mostly from AWS or the like, with occasional Chinese and Russian origins.

      The scans look like requests to various WordPress endpoints, JavaScript files associated with known vulnerabilities etc

  • kumi@feddit.online
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    You say you have a wildcad cart 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
        0
        ·
        3 months 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?

  • 4am@lemmy.zip
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months 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
      0
      ·
      3 months ago

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

      • bluehambrgr@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        In cryptography, there’s a difference between “secrets” (like passwords and encryption keys), and hiding / obscuring something (like steganography or changing your web server to run on a different port)

      • pishadoot@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months 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)

      • Fair Fairy@thelemmy.club
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        It’s not. Wildcard DNS and wildcard cert. Domain is not logged publicly.

        People that keep saying logged publicly simply don’t understand setup and technology

      • Keelhaul@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        How is it being logged publicly? Like OP said there is no specific subdomain registered in the DNS records (instead using a wildcard). Same for the SSL cert. Only things I can think of is the browser leaking the subdomains (through google or Microsoft) or the DNS queries themselves being logged and leaked. (Possibly by the ISP inspecting the traffic or logging and leaking on their own DNS servers?). I would hardly call either of those public.

  • Feyd@programming.dev
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    Did you yourself make a request to it or just set it up and not check it? My horrifying guess it that if you use SNI in a request every server in the middle could read the subdomain and some system in the internet routing is untrustworthy.

  • SavvyWolf@pawb.social
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    If you do a port scan on your box, what services are running? Maybe something like email or diagnostics is exposed to the internet and announcing subdomains?

  • fizzle@quokk.au
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months 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
      0
      ·
      3 months 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.

  • toebert@piefed.social
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    I can’t say I know the answer but a few ideas:

    • did you access it with a browser? Maybe it snitches on you or some extension does?
    • did you try to resolve it with a public DNS server at any point (are you sure nothing forwarded the request to one)?

    You could try it again, create the domain in the config and then do absolutely nothing. Don’t try to confirm it works in any way. If you don’t see the same behaviour you can do one of the above and then the other and see when it kicks in. If it gets picked up without you doing anything…then pass!

  • foggy@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    https://crt.sh/

    When a CA issues an SSL/TLS certificate, they’re required to submit it to public CT logs (append-only, cryptographically verifiable ledgers). This was designed to detect misissued or malicious certificates.

    Red and Blue team alike use this resource (crt.sh) to enumerate subdomains.

  • yeehaw@lemmy.ca
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    Reverse DNS? Or vuln scans just hitting IPs. Don’t need DNS for that.

  • eleijeep@piefed.social
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    You need to look at the DNS server used by whatever client is resolving that name. If it’s going to an external recursive resolver instead of using your own internal DNS server then you could be leaking lookups to the wider internet.

  • Fedditor385@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months 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
      0
      ·
      3 months 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
      0
      ·
      3 months 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.

  • FukOui@lemmy.zip
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    Following this thread!

    Stupid question, but are you somehow publicly exposing your vhost config (or a bak file of it)? Or do you see logs of someone bruteforcing the subdomain?

  • emergencycall@fedia.io
    link
    fedilink
    arrow-up
    0
    ·
    3 months ago

    You need better logging. Try doing a packet capture with tcpdump then decrypt the HTTPS traffic. Because what you’ve described so far, especially before the edit makes no sense.

    If you don’t have a DNS record pointing the subdomain to the IP address of the server, it shouldn’t be possible to resolve the IP for random Internet users. If this VHOST only exists in your Apache config file and nowhere else, it is private.

  • oranki@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months 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.