A tool to bruteforce dumains!
Dumb works with a masked dumain for substitution. The dumain can have as many masks as you want as long as you pass the according wordlists. For example:
Using the mask DUMB.dumain.com
and the following wordlists:
www
ftp
backoffice
Dumb will generate the following dumains for bruteforce:
www.dumain.com
ftp.dumain.com
backoffice.dumain.com
For subdumains, you can only pass dumain.com
and dumb will understand as DUMB.dumain.com
.
Using the same principle, you can pass as mask dumain.DUMB
with the following wordlist:
com
net
org
Dumb will generate the following dumains for bruteforce:
dumain.com
dumain.net
dumain.org
To bruteforce everything you can pass the mask as "DUMB.DUMB.DUMB" passing three wordlists:
wordlist1 wordlist2 wordlist3
www foo com
ftp bar net
Dumb will generate:
www.foo.com
ftp.foo.com
www.bar.com
ftp.bar.com
www.foo.net
ftp.foo.net
www.bar.net
ftp.bar.net
Dumb receives the dumain mask as first parameter and the wordlists following. The number of wordlists must match the number of masks in the dumain. For example:
- One mask:
$ dumb "DUMB.dumain.com" wordlists/foo.txt
- Two masks:
$ dumb "DUMB.dumain.DUMB" wordlists/foo.txt wordlists/bar.txt
- Several masks:
$ dumb "DUMB-DUMB-DUMB_DUMB.DUMB.DUMB" wordlists/foo_1.txt ... wordlists/foo_6.txt
If you don't want to build from source, you can use the docker version:
docker run -it giovanifss/dumb "DUMB.dumain.com" subdomains.txt
Also, if you want to test the newest code (beta) with improvements, use:docker run -it giovanifss/dumb:beta "DUMB.dumain.com" subdomains.txt
Note that the beta may be unstable or do not perform well
All the wordlists in wordlists/
are inside the docker container in filesystem root /
, this means that you can call dumb passing the wordlists name:
docker run -it giovanifss/dumb "DUMB.dumain.com" (subdomains.txt|subdominios.txt|domain-endings.txt)
To work with local wordlists that aren't present inside the container, you can use docker volumes:
docker run -v local/wordlist.txt:/opt/wordlist.txt -it giovanifss/dumb "DUMB.dumain.com" /opt/wordlist.txt
If you want to build from source you will need stack:
- Enter in the project directory and run
$ stack build
. - To execute:
$ stack exec dumb "DUMB.dumain.com" wordlists/subdomains.txt
Note that some older versions of stack have some problems to build the project (Debian stack package, for example). Make sure you get the latest stack version.
Future planned features are:
- Argument parser support, for better configuration of the tool execution;
- Post analysis of found dumains, generating statistics and metrics;
The tool performance will highly depend on your network connection. Usually, it should take less then 10 seconds to finish a subdumain burteforce with the wordlists/subdomains.txt
wordlist.
If you have a good connection and think that the tool is slow, try changing the 1000
in the splitDomains
function call, e.g. mapM_ (MP.mapM_ (resolve rs)) (splitDomains 1000 allDomains)
, to a higher value.
Alternatively, you can change mapM_ (MP.mapM_ (resolve rs)) (splitDomains 1000 allDomains)
to MP.mapM_ (resolve rs) allDomains
to execute all the requests in parallel.