Skip to content
Python 3.5+ DNS asynchronous brute force utility
Branch: master
Clone or download
blark update readme
clarify instructions
Latest commit 7837dec Dec 21, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
aiodnsbrute memory management fixed, some other stuff too Jun 18, 2017
tests first commit Jun 12, 2017
.gitignore derp Jun 13, 2017 update readme Dec 21, 2017
screenshot.png added screenshot Jun 13, 2017
setup.cfg version tweaks Jun 12, 2017 fixed wordlist location and added output of total Jun 13, 2017
tox.ini first commit Jun 12, 2017

Async DNS Brute

A Python 3.5+ script that uses asyncio to brute force domain names asynchronously.

aiodnsbrute screenshot


It's fast. Benchmarks on small VPS hosts put around 100k DNS resoultions at 1.5-2mins. An amazon M3 box was used to make 1 mil requests in just over 3 minutes. Your mileage may vary. It's probably best to avoid using Google's resolvers if you're purely interested in speed.


Right now the script just uses the system's DNS resolvers. I'll be adding a feature to read in a list of resolvers from a text file.


If you don't use pipsi, you're missing out. Here are installation instructions.


The following should get you up and running.

$ sudo apt-get install python3-pip
$ sudo pip3 install virtualenv
$ curl | python3

NOTE: pipsi installs each package into ~/.local/venvs/PKGNAME and then symlinks all new scripts into ~/.local/bin so add ~/.local/bin to your .bashrc and then source .bashrc

$ git clone
$ cd aiodnsbrute
$ pipsi install .


Get help with:

$ aiodnsbrute --help

Usage: aiodnsbrute [OPTIONS] DOMAIN

  Brute force DNS domain names asynchronously

  -w, --wordlist TEXT      Wordlist to use for brute force.
  -t, --max-tasks INTEGER  Maximum number of tasks to run asynchronosly.
  -v, --verbosity          Turn on/increase output.
  --help                   Show this message and exit.

Run a brute force with some custom options:

$ aiodnsbrute -w wordlist.txt -vv -t 1024

note you might want to do a ulimit -n to see how many open files are allowed. You can also increase that number using the same command, i.e. ulimit -n <2048>

You can’t perform that action at this time.