dnstwist | Domain name permutation engine for detecting homograph | Security library
kandi X-RAY | dnstwist Summary
kandi X-RAY | dnstwist Summary
Domain name permutation engine for detecting homograph phishing attacks, typo squatting, and brand impersonation
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- Parse command line arguments
- Convert domain name to domain domain name
- Return the full URI
- Return the permutations of domains
- Close the driver
- Returns the set of tld
- Generate permutation
- Scan a list of sessions
- Stop all worker threads
- Scan the domains
- Return the status of the job
- Run the server
- Check mx
- Try to scrape the smtp banner
- Return http header from ip and vhost
- List scan domains
- Return a list of domains
- Get the version string
- Return status of a scan session
- Read extras from a file
dnstwist Key Features
dnstwist Examples and Code Snippets
# add domain to list for which to hunt phishing domains
python util.py add (domain name) (email address) [optional: path to csv containing additional TLDs to check]
# start searching process
python core.py # or set it as a cron job to regular reports
$ export GFYP_EMAIL_USERNAME=alice@example.com
$ export GFYP_EMAIL_PASSWORD=ilovemallory
$ export GFYP_EMAIL_SMTPSERVER=smtp.example.com
# Use an official Python runtime as a parent image
FROM python:2.7
# Set the working directory to /app
WORKDIR /app
# Copy the current directory contents into the container at /app
ADD . /app
# Environment
RUN apt-get update
RUN apt-get
Process myProcess = new Process();
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = "python dnstwist.py --csv google.com > output.csv";
myProcess.StartInfo.CreateNoWindow = true;
myProcess.Start();
Community Discussions
Trending Discussions on dnstwist
QUESTION
There is an evident lapse in my understanding on concurrent development in Rust unfortunately. This question stems from weeks repeated struggles to solve a seemingly "trivial" problem.
Problem DomainDeveloping a Rust library, named twistrs that is a domain name permutation and enumeration library. The aim and objective of the library, is to be provide a root domain (e.g. google.com
) and generate permutations of that domain (e.g. guugle.com
) and enrichment that permutation (e.g. it resolves to 123.123.123.123
).
One of its objectives, is to perform substantially faster than its Python counterpart. Most notably, network calls such as, but not limited to, DNS lookups.
Currently Design ProposalThe idea behind the library (apart from being a learning ground) is to develop a very trivial security library that can be implemented to meet various requirements. You (as a client) can choose to interact directly to the permutation or enrichment modules internally, or use the library provided async/concurrent implementation.
Note that there is no shared state internally. This is probably very inefficient, but somewhat meaningless for the time being as it prevents a lot of issues.
Current ProblemInternally the DNS lookup is done synchronously and blocks by nature. I'm having trouble turning this into concurrent code. The closest I could get was to use tokio mpsc channels, and perform spawn a single tokio task:
...ANSWER
Answered 2020-Aug-23 at 17:44Edit: I misinterpreted your question and didn't realize that the DNS resolution itself wasn't asynchronous. The following approach won't actually work with synchronous code and will just result in the executor stalling because of the blocking code, but I'll leave it up in case you switch to an asynchronous resolution method. I'd recommend using tokio's asynchronous lookup_host()
if that fits your needs.
Async executors are designed to handle large numbers of parallel tasks, so you could try spawning a new task for every request, using a Semaphore
to create an upper bound on the number of running tasks at once. The code for that might look like this:
QUESTION
I am currently working on a Rust port of a security tool. Inline with Rust's guides, I want to segregate the core library into its own crate, so that we can create various tools (CLI, API, streams etc.) that interface with with the core library without coupling them together.
The core library exposes two public Enums, one of them being the PermutationMode
(truncated):
ANSWER
Answered 2020-Jun-20 at 21:36Unfortunately not. You would have to redefine the enum so that the arg_enum!
macro can access the tokens.
If you add a conversion function between the two then you can make sure that upstream changes to the library enum force you to update your CLI, by giving you a compilation error:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install dnstwist
You can use dnstwist like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page