A Simulator for the semantic intersection attack on the DNS Range Query algorithm.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



This is a simulator for the (semantic) intersection attack on the DNS Range Query algorithm, as proposed by Zhao et al.

It requires a dataset generated by DNSPatternFinder.py.

More details on the program will be added closer to public release.


usage: DRQPatternAttack.py [-h] [-m {1,2,3,4,5,6}] [-s NUM] [-c CNT]
                           [-p PARTITION] [-t THREADS] [--target url | --all]
                           [--stat] [-v | -q] [--version]

positional arguments:
  file                  select pattern file.

optional arguments:
  -h, --help            show this help message and exit
  -m {1,2,3,4,5,6}, --mode {1,2,3,4,5,6}
                        Enable a specific mode of operation. See below for
                        possible options. [default 1]
  -s NUM, --size NUM    Size of the range query [default 50]
  -c CNT, --count CNT   Number of random targets to be tried [default 50]
  -p PARTITION, --partition PARTITION
                        Number of Queries the Client should be allowed to use
                        [default -1 for all queries]
  -t THREADS, --threads THREADS
                        Number of Threads used for processing [default 1]
  --target url          Attack this domain
  --all                 Attack all possible targets (may take a long time).
                        Implies -q, --stat
  --stat                Show statistics about the accuracy of the algorithm
  -v, --verbose         enable verbose output (show more information).
  -q, --quiet           enable quiet mode.
  --version             show program's version number and exit

Modes of Operation:
  1) No distinguishable Blocks 		- Random Generation
  2) Distinguishable first Block 	- Random Generation
  3) Fully distinguishable Blocks 	- Random Generation
  4) No distinguishable Blocks 		- Pattern-based generation
  5) Distinguishable first Block 	- Pattern-based generation
  6) Fully distinguishable Blocks 	- Pattern-based generation

  Please consult the paper to find more information about the modes