A tool to fingerprint DNS resolver software.
All the supported versions are in SOFTWARE.md.
This project is undergoing a major rewrite inside the rewrite branch. The goals:
- Reconsider the use of decision trees and ML altogether
- Optimize the software Docker images
- Keep truly important testcases
- Clean up the code
This project requires Python 3.10 or higher.
Install all the requirements inside a virtual environment:
$ python3 -m virtualenv -p python3.10 .venv
$ source .venv/bin/activate
$ pip3 install -r requirements.txtThe input to the scanner is a text file with one IP address per line. The output is a JSON file:
$ python3 src/scan.py --input_file <input_file> --output_file <output_file> --granularity [vendor,major,minor,build] --threads <num_of_threads>Example output:
{
"ip": "1.2.3.4",
"versions": ["bind9"]
}If you wish to launch all the software, issue test cases, generate fingerprints and models, follow the instructions in BUILD.md.
Read CONTRIBUTING.md.