Skip to content

Commit

Permalink
Refreshed README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
elceef committed May 9, 2023
1 parent 8773f56 commit 79ce976
Showing 1 changed file with 25 additions and 24 deletions.
49 changes: 25 additions & 24 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ additional source of targeted threat intelligence.

![Demo](/docs/demo.gif)

DNS fuzzing is an automated workflow for discovering potentially malicious
domains targeting your organisation. This tool works by generating a large list
of permutations based on a domain name you provide and then checking if any of
those permutations are in use.
Additionally, it can generate fuzzy hashes of the web pages to see if they are
part of an ongoing phishing attack or brand impersonation, and much more!
DNS fuzzing is an automated workflow that aims to uncover potentially malicious
domains that target your organization. This tool generates a comprehensive list
of permutations based on a provided domain name, and subsequently verifies
whether any of these permutations are in use.
Additionally, it can generate fuzzy hashes of web pages to detect ongoing
phishing attacks or brand impersonation, and much more!

In a hurry? Try it in your web browser: [dnstwist.it](https://dnstwist.it)

Expand Down Expand Up @@ -186,7 +186,7 @@ The unique feature of detecting similar HTML source code can be enabled with
`--lsh` argument. For each generated domain, `dnstwist` will fetch content
from responding HTTP server (following possible redirects), normalize HTML code
and compare its fuzzy hash with the one for the original (initial) domain. The
level of similarity is be expressed as a percentage.
level of similarity is expressed as a percentage.

In cases when the effective URL is the same as for the original domain, the
fuzzy hash is not calculated at all in order to reject false positive
Expand Down Expand Up @@ -219,15 +219,17 @@ $ dnstwist --lsh tlsh domain.name

**Perceptual hashing**

If Chromium browser is installed, `dnstwist` can run it in so called headless
mode (without GUI) to render web pages, take their screenshots and calculate
pHash to evaluate visual similarity.
If Chromium browser is installed, `dnstwist` can utilize its headless mode,
which operates without a graphical user interface, to capture web page
screenshots, render them, and calculate pHash values. These pHash values are
then compared to evaluate the visual similarity, expressed as a percentage.

```
$ dnstwist --phash domain.name
```

Additionally, screenshots in PNG format can be saved to selected location:
Moreover, it is possible to save the captured screenshots in the PNG format to
a location of choice:

```
$ dnstwist --phash --screenshots /tmp/domain domain.name
Expand All @@ -241,7 +243,7 @@ API
---

In case you need to consume the data produced by the tool within your code,
probably the most convenient and fast way is to pass the input as follows.
the most convenient and efficient way is to pass the input as follows.

```
>>> import dnstwist
Expand All @@ -257,18 +259,17 @@ a number of daemon threads.
Notes on coverage
-----------------

Along with the length of the domain, the number of variants generated by the
algorithms increases considerably, and therefore the time and resources needed
to verify them. It's mathematically impossible to check all domain
permutations - especially for longer input domains which would require millions
of DNS lookups.
For this reason, this tool generates and checks domains very close to the
original one. Theoretically, these are the most attractive domains from the
attacker's point of view. However, be aware that the imagination of the
aggressors is unlimited.

Unicode tables consist of thousands of characters with many of them visually
similar to each other. However, despite the fact certain characters are
As the length of the input domain increases, the number of variants generated
by the algorithms increases significantly, resulting in a substantial increase
in the time and resources required to verify them. Checking every possible
domain permutation is impractical, especially for longer input domains, which
would require millions of DNS lookups. Thus, this tool generates and checks
domains that are very similar to the original one. Theoretically, these domains
are the most appealing from an attacker's point of view. However, it's
essential to note that attackers' imagination is unlimited.

Unicode tables comprise thousands of characters with many of them visually
similar to one another. However, despite the fact certain characters are
encodable using punycode, most TLD authorities will reject them during domain
registration process. In general, TLD authorities disallow mixing of characters
coming from different Unicode scripts or maintain their own sets of acceptable
Expand Down

0 comments on commit 79ce976

Please sign in to comment.