[HN Gopher] Bizarre and unusual uses of DNS
       ___________________________________________________________________
        
       Bizarre and unusual uses of DNS
        
       Author : todsacerdoti
       Score  : 95 points
       Date   : 2023-02-25 19:51 UTC (3 hours ago)
        
 (HTM) web link (fosdem.org)
 (TXT) w3m dump (fosdem.org)
        
       | grendelt wrote:
       | " _HTTP over DNS over HTTPS_ "
        
       | mikeponders wrote:
       | You can bypass captive portals by using some of the ideas
       | displayed in this presentation, but you will probably also need
       | to have a server with a good unmetered connection and a cleverly
       | named (sub)domain.
        
         | EvanAnderson wrote:
         | Iodine (https://github.com/yarrick/iodine) will do this. I did
         | it with my home Internet connection as the server and found it
         | very useful in a pinch.
         | 
         | Using DNS to exfiltrate arbitrary data thru firewalls that
         | don't log DNS requests is handy too.
        
       | woodruffw wrote:
       | Another fun one I learned about recently: `e164.arpa` is a
       | reserved domain for E.164 phone number to Internet address
       | lookups[1]: you can query it for NAPTR records, which tell the
       | client how to initiate a call over the Internet (via SIP) instead
       | of over PSTN.
       | 
       | [1]: https://www.ietf.org/rfc/rfc2916.txt
        
         | spc476 wrote:
         | I worked in that space for over a decade. While it's true, the
         | use of E.164 in production was never done (usually, it's some
         | subdomain from the Oligarchic Cell Phone companies). Second,
         | it's never free. Nothing on the telephony network is free.
         | Third, you get back data that includes a regex on how to
         | transform the other data into something you can use---very
         | convoluted.
        
           | ehPReth wrote:
           | Too bad; this would be really cool to 'own' your E.164 domain
           | in some cases
        
       | nighthawk454 wrote:
       | Reminded me of Corey Quinn's "Route53 as a database"
       | 
       | https://www.lastweekinaws.com/blog/route-53-amazons-premier-...
        
         | spenczar5 wrote:
         | That is given a slide in the talk, yep.
        
       | pram wrote:
       | A prior company I worked at had API keys (like AWS) in TXT
       | records that would be used in some bootstrapping. Thats uhh,
       | certainly a convenient place to put them, yeah.
        
         | sunaurus wrote:
         | Was it at least private DNS?
        
           | teddyh wrote:
           | In practice, there's no such thing as "private" DNS. You can
           | disable zone transfers and type "ANY" queries, but NSEC
           | records of DNSSEC enable name enumeration, and public
           | resolvers record and often publish the queries done through
           | them.
           | 
           | Do _not_ put any private information in DNS. It's not made
           | for it, and many, many systems which work with DNS assume in
           | their design that all DNS data is public.
        
             | ericpauley wrote:
             | They may be referring to private resolvers used within a
             | private address range (e.g., https://docs.aws.amazon.com/Ro
             | ute53/latest/DeveloperGuide/ho...)
        
               | teddyh wrote:
               | The DNS data is still not encrypted over the wire, and
               | clients could use their own local resolver which in turn
               | uses the private resolver. This local resolver will most
               | probably be designed with the assumption that DNS data is
               | public.
        
               | ericpauley wrote:
               | Route53 private DNS is resolved over link-local
               | addresses, so whether the responses are encrypted is
               | irrelevant. They're specifically designed for private
               | resolution within a VPC.
        
               | teddyh wrote:
               | 6. The network is secure.
               | 
               | -- https://en.wikipedia.org/wiki/Fallacies_of_distributed
               | _compu...
        
               | fiddlerwoaroof wrote:
               | That's assuming a generic network
        
               | ericpauley wrote:
               | Link-local networking in VPC is specifically designed to
               | secure data that is plaintext at the application layer
               | (DNS). It's effectively communication with the
               | hypervisor, not over some untrusted link.
               | 
               | If you don't buy this, I guess you should start
               | encrypting all your syscalls too?
        
       | zyberzero wrote:
       | I remember 15 years or so; a friend and I figured out that DNS
       | got through my friends cellular connection even though the data
       | limit were reached. We tested and set up a socks-over-dns-proxy
       | back then and it worked! We loled and then never did anything
       | more than that unfortunately (or it depends, we'd most likely be
       | detected if we continued to use that, eh, solution).
        
       | exabrial wrote:
       | Sadly, we can't have browsers that use SRV records.
        
         | teddyh wrote:
         | HTTPS records are (reportedly) coming soon(tm):
         | https://datatracker.ietf.org/doc/draft-ietf-dnsop-svcb-https...
         | 
         | TL;DR: HTTPS records are like SRV records without the weight
         | number (but, crucially, including the priority number), and
         | with some extra stuff to make the TLS handshake happier.
        
       | manuel_w wrote:
       | Tangentially related: One can store SSH server host keys in DNS
       | and tell the client to make use of them. (OpenSSH supports
       | `VerifyHostKeyDNS=yes`.) This is an alternative to the client
       | asking the user to confirm the server host key, which many people
       | just blindly confirm.
       | 
       | I asked GitLab if they could make use of that, but it hasn't
       | received much attention so far:
       | 
       | * https://gitlab.com/gitlab-com/www-gitlab-com/-/issues/10376
        
         | Nextgrid wrote:
         | You'd need DNSSEC for this right? If not can't an MITM still
         | intercept the DNS lookup and substitute their own key?
         | 
         | In fact, even if the original domain does support DNSSEC, can a
         | userspace program such as the SSH client actually tell whether
         | the record it just resolved was resolved using a DNSSEC-aware
         | resolver?
        
           | aaronmdjones wrote:
           | Yes, you would need a DNSSEC-validating resolver, and no,
           | ssh(1) can't confirm if the answer was actually validated or
           | not.
           | 
           | There's an "ad" (Authenticated Data) flag in the DNS reply
           | header that a resolver can set to 1 to indicate that it
           | validated the answer, but an MITM can also just set that to
           | 1. The client would have to do its own validation, and ssh(1)
           | doesn't. Therefore, you can only safely use this if you use a
           | DNSSEC-validating resolver, and you trust the resolver (e.g.
           | you administer it yourself), and you have a trusted path
           | between you and it (e.g. it's on your LAN).
        
       | evantahler wrote:
       | Link to pdf slides
       | https://fosdem.org/2023/schedule/event/dns_bizarre_and_unusu...
        
       | trebligdivad wrote:
       | lspci has an option to update it's database over DNS (lspci -q)
        
       | VLM wrote:
       | Someone in the old days was playing around with VERY small RSS
       | feeds in DNS TXT records. The slides mention blogging but at a UI
       | level whereas this was "what if we put actual RSS feeds in DNS?"
       | There was some sort of multiline protocol; don't remember how it
       | worked. It never gained traction but I thought it was cool.
       | 
       | There was also something very weird with VRML files in the early
       | 90s, like favicon but in 3d and shipped over DNS kind of idea.
       | Yeah that got about zero traction also.
        
         | xdfgh1112 wrote:
         | There should be a whole website about failed 90/00s web
         | technologies that didn't take off.
        
       | bitlax wrote:
       | https://news.ycombinator.com/item?id=31704789
        
       | taftster wrote:
       | This is the kind of stuff that makes the internet fun. I really
       | like the types of projects that exist simply to exist. People
       | putting out things that have no reason except for the enjoyment.
       | 
       | It seems like we're missing this kind of stuff lately. Even the
       | April 1st hacks have failed to be interesting on the same level.
       | I wonder what has happened and why.
        
         | crabbone wrote:
         | Yeah, and then this "enjoyment" spills into real-life widely
         | used programs, s.a. Kubernetes. This is literally me, yesterday
         | discovering a little "gotcha" of an _L7_ reverse proxy in
         | Kubernetes:                   # netstat $(hostname) 40443
         | Trying 10.X.X.X         Connected to hostname.foo.bar
         | Escape character is '^]'         ...         # ss -tpln | grep
         | 40443         #         # lsof -i :40443         #
         | 
         | This kind of fun makes you want to punch each individual ITF
         | member as well as people in Kubernetes who decided it'd be cool
         | to implement L7 proxy using DNAT.
        
           | p_l wrote:
           | Good that they didn't, then.
           | 
           | No, seriously, there is no L7 reverse proxy implemented using
           | kube-proxy mechanism (aforementioned DNAT) - It's L4 proxy
           | for supporting legacy code that doesn't support intelligently
           | querying for endpoints (by SRV record, k8s API, or other
           | service discovery protocol).
           | 
           | It's not even required to use it, Services can be declared to
           | not need it (common example is using service mesh or ingress
           | controller with http)
        
       | ttyprintk wrote:
       | ClamAV passes its versioning via DNS. No need to open outbound
       | HTTP.
        
         | unixhero wrote:
         | As a TXT dns entry? Or?
        
           | seedie wrote:
           | Yes, the domain to query is current.cvd.clamav.net
        
       ___________________________________________________________________
       (page generated 2023-02-25 23:00 UTC)