
Python 3.5+ DNS asynchrones Brute-Force-Dienstprogramm
Ein Python 3.5+ Tool, das asyncio verwendet, um Domainnamen asynchron per Brute-Force zu erraten.

Es ist schnell. Benchmarks auf kleinen VPS-Hosts zeigen etwa 100k DNS-Auflösungen in 1,5-2 Minuten. Eine Amazon M3 Box wurde verwendet, um 1 Million Anfragen in etwas mehr als 3 Minuten zu stellen. Ihre Ergebnisse können variieren. Es ist wahrscheinlich am besten, Googles Resolver zu vermeiden, wenn Sie rein an Geschwindigkeit interessiert sind.
HAFTUNGSAUSSCHLUSS
$ pip install aiodnsbrute
Hinweis: Die Verwendung einer virtualenv wird dringend empfohlen.
Alternativ können Sie die übliche Installation durchführen:
$ git clone https://github.com/blark/aiodnsbrute.git
$ cd aiodnsbrute
$ python setup.py install .
Hilfe anzeigen:
$ aiodnsbrute --help
Usage: cli.py [OPTIONS] DOMAIN
aiodnsbrute is a command line tool for brute forcing domain names
utilizing Python's asyncio module.
credit: blark (@markbaseggio)
Options:
-w, --wordlist TEXT Wordlist to use for brute force.
-t, --max-tasks INTEGER Maximum number of tasks to run asynchronosly.
-r, --resolver-file FILENAME A text file containing a list of DNS resolvers
to use, one per line, comments start with #.
Default: use system resolvers
-v, --verbosity Increase output verbosity
-o, --output [csv|json|off] Output results to DOMAIN.csv/json (extension
automatically appended when not using -f).
-f, --outfile FILENAME Output filename. Use '-f -' to send file
output to stdout overriding normal output.
--query / --gethostbyname DNS lookup type to use query (default) should
be faster, but won't return CNAME information.
--wildcard / --no-wildcard Wildcard detection, enabled by default
--verify / --no-verify Verify domain name is sane before beginning,
enabled by default
--version Show the version and exit.
--help Show this message and exit.
Führen Sie einen Brute-Force mit einigen benutzerdefinierten Optionen aus:
$ aiodnsbrute -w wordlist.txt -vv -t 1024 domain.com
Führen Sie einen Brute-Force aus, unterdrücken Sie die normale Ausgabe und senden Sie nur JSON nach stdout:
$ aiodnbrute -f - -o json domain.com
...für ein fortgeschrittenes Muster verwenden Sie benutzerdefinierte Resolver und leiten Sie die Ausgabe in das großartige jq um:
$ aiodnsbrute -r resolvers.txt -f - -o json google.com | jq '.[] | select(.ip[] | startswith("172."))'
Wildcard-Erkennung standardmäßig aktiviert (--no-wildcard deaktiviert sie):
$ aiodnsbrute foo.com
[*] Brute forcing foo.com with a maximum of 512 concurrent tasks...
[*] Using recursive DNS with the following servers: ['50.116.53.5', '50.116.58.5', '50.116.61.5']
[!] Wildcard response detected, ignoring answers containing ['23.23.86.44']
[*] Wordlist loaded, proceeding with 1000 DNS requests
[+] www.foo.com 52.73.176.251, 52.4.225.20
100%|██████████████████████████████████████████████████████████████████████████████| 1000/1000 [00:05<00:00, 140.18records/s]
[*] Completed, 1 subdomains found
NEU Verwenden Sie gethostbyname (erkennt CNAMEs, was für die potenzielle Erkennung von Subdomain-Übernahmen nützlich sein kann)
$ aiodnsbrute --gethostbyname domain.com
Geben Sie eine Liste von Resolvern aus einer Datei an (leere Zeilen und mit # beginnende werden ignoriert), verwenden Sie -r -, um die Liste von stdin zu lesen.
$ aiodnsbrute -r resolvers.txt domain.com
ulimit -n ausführen, um zu sehen, wie viele offene Dateien erlaubt sind. Sie können diese Zahl auch mit demselben Befehl erhöhen, z. B. ulimit -n <2048>.