Skip to content

dnstwister/dnstwister

Repository files navigation

dnstwister

A Python 3 Heroku-hostable web-application wrapping the excellent dnstwist.

Build dnstwister Quality Gate Status

Deploy

dnstwist

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 Heroku-deployable Python flask-based web interface and offers csv/json reports and a fully featured RESTful API.

This project 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.

The SaaS offering dnstwister.report grew out of this repository, but as of October 2019 the core code that runs dnstwister.report was forked from this dnstwister repository into a private repository. This was done to:

  • Clearly separate the code required to run a web-scale SaaS offering from that required to host your own dnstwister instance - for instance email gateways and FaaS endpoints.

  • Allow for the introduction of my own IP beyond that of the core dnstwist module authored by elceef.

To ensure I am respecting the dnstwist licence the dnstwist module embedded in this repository will always match that used in dnstwister.report.

The current version of dnstwist used in this repository and in dnstwister.report is available here, including the original Apache LICENCE.

Pull requests against this repository may or may not be merged into this repository and/or the private repository, as appropriate.

Contributors

Developing and running dnstwister

You need Python 3.9.

Once-off setup:

pip install pipenv
pipenv install --dev

Running:

pipenv run python local_server.py --reload

And browse via http://localhost:5000

Running dnstwister using Docker

If you don't have Docker installed, you can click here for Docker CE, and follow the installation steps.

Building and Running locally

# Cloning latest source code
git clone https://github.com/dnstwister/dnstwister

# Changing directory
cd dnstwister

# 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.

Fetching pre-built image

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.

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.

Tests

Running:

pipenv run py.test

Say hello

I'd love to hear your feedback so email me, fire off a tweet in my general direction! :)