Images Over DNS
Posted4 months agoActive4 months ago
dgl.cxTechstoryHigh profile
excitedpositive
Debate
60/100
DNSData ExfiltrationNetworkingCreative Hacking
Key topics
DNS
Data Exfiltration
Networking
Creative Hacking
The post showcases a creative technique for transmitting images over DNS, sparking discussion on its potential applications, limitations, and security implications.
Snapshot generated from the HN discussion
Discussion Activity
Active discussionFirst comment
33m
Peak period
12
0-2h
Avg / period
4.2
Comment distribution50 data points
Loading chart...
Based on 50 loaded comments
Key moments
- 01Story posted
Sep 20, 2025 at 7:50 AM EDT
4 months ago
Step 01 - 02First comment
Sep 20, 2025 at 8:23 AM EDT
33m after posting
Step 02 - 03Peak activity
12 comments in 0-2h
Hottest window of the conversation
Step 03 - 04Latest activity
Sep 21, 2025 at 11:18 AM EDT
4 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 45312515Type: storyLast synced: 11/20/2025, 6:03:33 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
It's pretty cool how this tech has evolved. UDP has become so much more reliable that you can even do SSL over UDP, with a complex mechanism meant to account for dropped packets during the handshake process.
You could even do this over UDP if you really wanted, just merging a bunch of 1200-byte records together
https://github.com/m3047/rear_view_rpz/blob/b17cf943ccd7498d...
https://youtu.be/AJ2Q12vYojY
https://youtu.be/GoPWuJR6Npc
For the bad apple one; I tried something like that, it works if you're directly querying the authoritative DNS server, but if a cache is involved the records will be re-ordered by randomisation (even in some cases with TTL=0). That's why I ended up doing this as a single very long record, because then it can be cached without worrying about reordering.
But ideally it'd be blocked and all traffic would go through an internal caching resolver, right? To reduce internal latency and load on outside servers, but also to have records if needed and to block whack requests or responses if needed.
And that also leaves out the common things like MX records.
If you run "strings" you should see "av01Image" pretty early on in the HEIF header, which is what signals it's really an AVIF file. Tools like "file" may possibly not be updated to look for that yet, so could just report the container alone.
[53] https://github.com/yarrick/iodine
I used to do a lot of consulting work at locations with extremely locked down networks. I could use iodine + wireguard to punch through most firewalls, slow, but effective.
Just using DNS for data exfiltration, in general, is usually pretty fruitful. I wrote a "live off the land" data exfil script for Windows once, using the certutil and nslookup commands to base64 encode data and ship it out to my off-site DNS server.
I'll have to try it against a Palo Alto NGFW sometime and see what alarms I trip. I honestly never thought to try.
Throttling and tiering can definitely affect more people than you might suspect (like spiky services) and considering data and use are important.