Rating: 2.0

# Vivid Spying - Forensics/Network - 131 points - 32 solvers

> We have captured the spy [traffic](./traffic_f02965261bd4de3e9a10fced162c27fe5c2c5b19) by our agents, hurry up and find the flag.

We open the attached file in Wireshark and find it's a series of DNS queries and responses about suspicious domain names, starting with `00101011111010110111101100101010010010110010101000001.asisctf.com` and ending with `1110.000011101100101011111010110111101100101010010010110010101000001.asisctf.com`. We quickly find that if you reverse the string and convert the bits to ASCII you get something that looks like a partial flag `ASIS{_Sp`. But how to get the rest?

After some experimenting we find that if we query the DNS server at `95.85.26.168` with a domain formatted like the suspicious ones we either get `NXDOMAIN` (for example for `0.asisctf.com`), or `NOERROR` (for example for `1.asisctf.com`). We can then continue with trying `01.asisctf.com` and since we get `NOERROR` for that one too, we know the bit we added at the left is correct. We write a script that extends in this way to find the full flag, adding periods when needed (because domain fragments can't be longer than 63 bytes).

After a short while we get the full flag, `ASIS{_Spying_with_DNS_!}`

Original writeup (https://github.com/ymgve/ctf-writeups/tree/master/asis2017finals/forensics-vivid_spying).