01 ·Abusing eBPF, Part 1: What even is eBPF?
What eBPF actually is, why it is interesting from an attacker's seat, and a first counter running in the kernel with Rust and aya.
02 ·Abusing DNS, Part 7: Who is in charge here?
The NS records that make a subdomain yours, and the delegation that lets any resolver on the internet find your server.
03 ·Abusing DNS, Part 6: It's all about who you know
Routing queries through the host's own resolver instead of straight at our server, so the traffic looks like everyone else's.
04 ·Abusing DNS, Part 5: Client says what?
Sending arbitrary data the other way, packed into the 63 characters a single DNS label will carry.
05 ·Abusing DNS, Part 4: Let the fun begin?
Getting real data out of a protocol built for tiny answers, by chunking it across repeated TXT queries.
06 ·Brain explode: AI is getting a little scary
A PE checksum problem, three AI tools, and the one that went and read the docs instead of inventing functions.
07 ·Abusing DNS, Part 3: What do you want?
The client side: a Rust CLI that asks our own DNS server for records, so we stop leaning on dig to test it.
08 ·Abusing DNS, Part 2: Serving up some fun
Building a DNS server in Rust that answers real queries — the first working piece of a key-value store that talks over DNS.
09 ·Abusing DNS, Part 1: How does DNS do what it do?
How DNS resolution actually works, and why a protocol every network lets out is such a useful place to hide data.
10 ·Spooky simple Python tricks
The handful of Python tricks I reach for almost daily to reshape, encode and explore data.