This tool is a simple DNS server that can handle and reconstruct chunked data sent via DNS queries. It listens for incoming DNS requests, logs them, and processes special DNS queries formatted to transmit chunked binary data.
- Handles standard DNS A record queries.
- Supports receiving chunked data encoded in DNS subdomains.
- Reconstructs and saves received binary data into incrementally numbered files.
- Logs all DNS queries.
Ensure you have Python installed:
pip install -r requirements.txt
You can run the server using the following command:
python eDNS.py
-v, --verbose
: Enable verbose logging.-i, --interface
: Set the interface to listen on (default:0.0.0.0
).-p, --port
: Set the port to listen on (default:53
).
Example:
python eDNS.py -v -i 0.0.0.0 -p 53
- The server listens for incoming DNS queries.
- If a query follows the chunked data format (
packet_id-total_chunks-chunk_id.hex_data.example.com
), the server reconstructs the original binary data. - Once all chunks are received, the server merges and saves the data into the
data/
directory with an incrementing filename (e.g.,1.bin
,2.bin
, etc.).
To send data via DNS queries, you can use a script to encode and send data piece by piece.
All DNS queries are logged in dns_queries.log
.
This project is open-source and available for modification and distribution.