A Heroku-hosted version of the very excellent dnstwist.
production | development |
---|---|
In the author's words, dnstwist helps you "...find similar-looking domains that adversaries can use to attack you..."
This project, dnstwister, gives you access to the power of dnstwist via a convenient web interface and offers csv/json reports and a fully featured RESTful API.
And it's 100% free.
dnstwister is hosted at https://dnstwister.report.
This project currently uses a modified version of dnstwist, in dnstwister/dnstwist.
I have kept the original dnstwist README and LICENCE but I have applied an "Unlicense" to dnstwister.
Though the licences are different (dnstwist uses an Apache licence), this is an acceptable use of dnstwist in my project.
- @elceef (dnstwist itself)
- @peterwallhead (mobile UI assistance)
- @prashant-shahi (docker configuration)
Some of the more advanced functionality of dnstwister.report (email subscriptions, asynchronous web UI, "noisy" domain filtering etc) is built off infrastructure beyond the core Python Flask stack behind dnstwister - for instance PostgreSQL & REDIS databases and CloudFlare Workers. Some of the code that supports this functionality is not available in this repository as it forms the core of the dnstwister.report service.
The fundamental functionality supporting the generation of a web-based report on a domain via the web interface will always remain available in this repository.
Once-off setup:
pip install pipenv
pipenv install --dev
Running:
pipenv run python local_server.py
And browse via http://localhost:5000
If you don't have Docker installed, you can click here for Docker CE, and follow the installation steps.
# Cloning latest source code
git clone https://github.com/thisismyrobot/dnstwister
# Changing directory
cd dnstwister
# Checkout to the stable branch i.e. heroku-deploy
git checkout heroku-deploy
# Building dnstwister image using Dockerfile
docker build -t dnstwister .
# Running the application inside a container
docker run -td -p 5000:5000 --name myapp dnstwister
Now, go to http://localhost:5000
using any browser to use dnstwister.
Alternatively, you can pull the pre-built image from DockerHub, and run locally. This way, you wouldn't have to wait for the build time. The image present in docker hub is from the stable branch heroku-deploy.
docker pull dnstwister/dnstwister:2.9.3
docker run -td -p 5000:5000 --name myapp dnstwister/dnstwister:2.9.3
Now, go to http://localhost:5000
using any browser to use dnstwister.
Running:
pipenv run py.test
I'd love to hear your feedback so email me, fire off a tweet in my general direction or you can just say thanks!... :)