Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ail-typo-squatting — Genera un elenco di potenziali domini typosquatting con un motore di permutazione dei nomi di dominio per alimentare AIL e altri sistemi. | Kitploit
Strumenti/GitHubGitHub/typosquatter/ail-typo-squatting
OSINT (Open Source Intelligence)RicognizioneRaccolta InformazioniThreat IntelligenceAnalisi DNS
GitHubtyposquatter/ail-typo-squatting

ail-typo-squatting

Genera un elenco di potenziali domini typosquatting con un motore di permutazione dei nomi di dominio per alimentare AIL e altri sistemi.

Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web
108971 anno faRevisionato da Kitploit

ail-typo-squatting

ail-typo-squatting è una libreria Python per generare un elenco di potenziali domini typosquatting con un motore di permutazione dei nomi di dominio, per alimentare AIL e altri sistemi.

Lo strumento può essere utilizzato come strumento autonomo o per alimentare altri sistemi.

Se non vuoi utilizzare la libreria Python, https://typosquatting-finder.circl.lu/ è un servizio online che utilizza questa libreria.

Requisiti

  • Python 3.6+
  • inflect libreria
  • pyyaml
  • tldextract
  • dnspython

Installazione

Installazione da sorgente

ail-typo-squatting può essere installato con poetry. Se non hai poetry installato, puoi eseguire il seguente comando curl -sSL https://install.python-poetry.org | python3 -.

root@kitploit:~
$ poetry install
$ poetry shell
$ cd ail-typo-squatting
$ python typo.py -h

Installazione tramite pip

root@kitploit:~
$ pip3 install ail-typo-squatting

Utilizzo

root@kitploit:~
dacru@dacru:~/git/ail-typo-squatting/bin$ python3 typo.py --help  
usage: typo.py [-h] [-v] [-dn DOMAINNAME [DOMAINNAME ...]] [-fdn FILEDOMAINNAME] [-o OUTPUT] [-fo FORMATOUTPUT] [-br] [-dnsr] [-dnsl] [-l LIMIT] [-var] [-ko] [-a] [-om] [-repe] [-repl] [-drepl] [-cho]
               [-add] [-md] [-sd] [-vs] [-ada] [-hg] [-ahg] [-cm] [-hp] [-wt] [-wsld] [-at] [-sub] [-sp] [-cdd] [-addns] [-uddns] [-ns] [-combo] [-ca]

optional arguments:
  -h, --help            show this help message and exit
  -v                    verbose, more display
  -dn DOMAINNAME [DOMAINNAME ...], --domainName DOMAINNAME [DOMAINNAME ...]
                        list of domain name
  -fdn FILEDOMAINNAME, --filedomainName FILEDOMAINNAME
                        file containing list of domain name
  -o OUTPUT, --output OUTPUT
                        path to ouput location
  -fo FORMATOUTPUT, --formatoutput FORMATOUTPUT
                        format for the output file, yara - regex - yaml - text. Default: text
  -br, --betterregex    Use retrie for faster regex
  -dnsr, --dnsresolving
                        resolve all variation of domain name to see if it's up or not
  -dnsl, --dnslimited   resolve all variation of domain name but keep only up domain in final result json
  -l LIMIT, --limit LIMIT
                        limit of variations for a domain name
  -var, --givevariations
                        give the algo that generate variations
  -ko, --keeporiginal   Keep in the result list the original domain name
  -a, --all             Use all algo
  -om, --omission       Leave out a letter of the domain name
  -repe, --repetition   Character Repeat
  -repl, --replacement  Character replacement
  -drepl, --doublereplacement
                        Double Character Replacement
  -cho, --changeorder   Change the order of letters in word
  -add, --addition      Add a character in the domain name
  -md, --missingdot     Delete a dot from the domain name
  -sd, --stripdash      Delete of a dash from the domain name
  -vs, --vowelswap      Swap vowels within the domain name
  -ada, --adddash       Add a dash between the first and last character in a string
  -hg, --homoglyph      One or more characters that look similar to another character but are different are called homogylphs
  -ahg, --all_homoglyph
                        generate all possible homoglyph permutations. Ex: circl.lu, e1rc1.lu
  -cm, --commonmisspelling
                        Change a word by is misspellings
  -hp, --homophones     Change word by an other who sound the same when spoken
  -wt, --wrongtld       Change the original top level domain to another
  -wsld, --wrongsld     Change the original second level domain to another
  -at, --addtld         Adding a tld before the original tld
  -sub, --subdomain     Insert a dot at varying positions to create subdomain
  -sp, --singularpluralize
                        Create by making a singular domain plural and vice versa
  -cdd, --changedotdash
                        Change dot to dash
  -addns, --adddynamicdns
                        Add dynamic dns at the end of the domain
  -uddns, --updatedynamicdns
                        Update dynamic dns warning list
  -ns, --numeralswap    Change a numbers to words and vice versa. Ex: circlone.lu, circl1.lu
  -combo                Combine multiple algo on a domain name
  -ca, --catchall       Combine with -dnsr. Generate a random string in front of the domain.

Esempio di utilizzo

  1. Creazione di variazioni per ail-project.org e circl.lu, utilizzando tutti gli algoritmi.
root@kitploit:~
dacru@dacru:~/git/ail-typo-squatting/bin$ python3 typo.py -dn ail-project.org circl.lu -a -o .
  1. Creazione di variazioni per un file che contiene nomi di dominio, utilizzando omissione di caratteri - sottodominio - trattino.
root@kitploit:~
dacru@dacru:~/git/ail-typo-squatting/bin$ python3 typo.py -fdn domain.txt -co -sub -hyp -o . -fo yara
  1. Creazione di variazioni per ail-project.org e circl.lu, utilizzando tutti gli algoritmi e la risoluzione DNS.
root@kitploit:~
dacru@dacru:~/git/ail-typo-squatting/bin$ python3 typo.py -dn ail-project.org circl.lu -a -dnsr -o .
  1. Creazione di variazioni per ail-project.org e indicazione dell'algoritmo che genera la variazione (solo per il formato text).
root@kitploit:~
dacru@dacru:~/git/ail-typo-squatting/bin$ python3 typo.py -dn ail-project.org -a -o - -var

Utilizzo come libreria

Per eseguire tutti gli algoritmi

root@kitploit:~
from ail_typo_squatting import runAll
import math

resultList = list()
domainList = ["google.com"]
formatoutput = "yara"
pathOutput = "."
for domain in domainList:
    resultList = runAll(
        domain=domain, 
        limit=math.inf, 
        formatoutput=formatoutput, 
        pathOutput=pathOutput, 
        verbose=False, 
        givevariations=False,
        keeporiginal=False
    )

    print(resultList)
    resultList = list()

Per eseguire un algoritmo specifico

root@kitploit:~
from ail_typo_squatting import formatOutput, omission, subdomain, addDash
import math

resultList = list()
domainList = ["google.com"]
limit = math.inf
formatoutput = "yara"
pathOutput = "."
for domain in domainList:
    resultList = omission(domain=domain, resultList=resultList, verbose=False, limit=limit, givevariations=False,  keeporiginal=False)

    resultList = subdomain(domain=domain, resultList=resultList, verbose=False, limit=limit, givevariations=False,  keeporiginal=False)

    resultList = addDash(domain=domain, resultList=resultList, verbose=False, limit=limit, givevariations=False,  keeporiginal=False)

    print(resultList)
    formatOutput(format=formatoutput, resultList=resultList, domain=domain, pathOutput=pathOutput, givevariations=False)

    resultList = list()

Esempio di output

Ci sono 4 formati possibili per il file di output:

  • text
  • yara
  • regex
  • sigma

Per il file Text, ogni riga è una variazione.

root@kitploit:~
ail-project.org
il-project.org
al-project.org
ai-project.org
ailproject.org
ail-roject.org
ail-poject.org
ail-prject.org
ail-proect.org
ail-projct.org
ail-projet.org
ail-projec.org
aail-project.org
aiil-project.org
...

Per il file Yara, ogni regola è una variazione.

root@kitploit:~
rule ail-project_org {
    meta:
        domain = "ail-project.org"
    strings: 
        $s0 = "ail-project.org"
        $s1 = "il-project.org"
        $s2 = "al-project.org"
        $s3 = "ai-project.org"
        $s4 = "ailproject.org"
        $s5 = "ail-roject.org"
        $s6 = "ail-poject.org"
        $s7 = "ail-prject.org"
        $s8 = "ail-proect.org"
        $s9 = "ail-projct.org"
        $s10 = "ail-projet.org"
        $s11 = "ail-projec.org"
    condition:
         any of ($s*)
}

Per il file Regex, ogni variazione viene trasformata in regex e concatenata con le altre per ottenere un'unica grande regex.

root@kitploit:~
ail\-project\.org|il\-project\.org|al\-project\.org|ai\-project\.org|ailproject\.org|ail\-roject\.org|ail\-poject\.org|ail\-prject\.org|ail\-proect\.org|ail\-projct\.org|ail\-projet\.org|ail\-projec\.org

Per il file Sigma, ogni variazione è elencata sotto la chiave variations.

root@kitploit:~
title: ail-project.org
variations:
- ail-project.org
- il-project.org
- al-project.org
- ai-project.org
- ailproject.org
- ail-roject.org
- ail-poject.org
- ail-prject.org
- ail-proect.org
- ail-projct.org
- ail-projet.org
- ail-projec.org

Output DNS

Se la risoluzione DNS è selezionata, verrà creato un file aggiuntivo in formato JSON.

Ogni chiave è una variazione e può avere un campo "ip" se il nome di dominio è stato risolto. Il campo "NotExist" sarà presente ogni volta con un valore booleano per determinare se il dominio esiste o meno.

root@kitploit:~
{
    "circl.lu": {
        "NotExist": false,
        "ip": [
            "185.194.93.14"
        ]
    },
    "ircl.lu": {
        "NotExist": true
    },
    "crcl.lu": {
        "NotExist": true
    },
    "cicl.lu": {
        "NotExist": true
    },
    "cirl.lu": {
        "NotExist": true
    },
    "circ.lu": {
        "NotExist": true
    },
    "ccircl.lu": {
        "NotExist": true
    },
    "ciircl.lu": {
        "NotExist": true
    },
    ...
}

Elenco degli algoritmi utilizzati

Riconoscimenti

Il progetto è stato cofinanziato da CEF-TC-2020-2 - 2020-EU-IA-0260 - JTAN - Joint Threat Analysis Network.

Scarica lo strumento
AlgoDescription
AddDashQuesti typo sono creati aggiungendo un trattino tra il primo e l'ultimo carattere di una stringa.
AdditionQuesti typo sono creati aggiungendo un carattere al nome di dominio.
AddDynamicDnsQuesti typo sono creati aggiungendo un DNS dinamico alla fine del dominio originale.
AddTldQuesti typo sono creati aggiungendo un TLD prima del TLD corretto. Esempio: google.com diventa google.com.it
ChangeDotDashQuesti typo sono creati cambiando un punto in un trattino.
ChangeOrderQuesti typo sono creati cambiando l'ordine delle lettere in ogni parte del dominio.
ComboQuesti typo sono creati combinando più algoritmi. Ad esempio, circl.lu diventa cirl6.lu
CommonMisspellingQuesti typo sono creati sostituendo una parola con una sua forma errata. Oltre 8000 errori di ortografia comuni da Wikipedia. Ad esempio, www.youtube.com diventa www.youtub.com e www.abseil.com diventa www.absail.com.
Double ReplacementQuesti typo sono creati sostituendo lettere identiche e consecutive del nome di dominio.
HomoglyphQuesti typo sono creati sostituendo caratteri con altri che sembrano simili ma sono diversi. Un esempio è che la l minuscola somiglia al numero uno, ad esempio l vs 1. Ad esempio, google.com diventa goog1e.com.
HomophonesQuesti typo sono creati sostituendo una parola con un'altra che suona uguale quando viene pronunciata. Oltre 450 gruppi di parole che suonano allo stesso modo quando pronunciate. Ad esempio, www.base.com diventa www.bass.com.
MissingDotQuesti typo sono creati eliminando un punto dal nome di dominio.
NumeralSwapQuesti typo sono creati cambiando un numero in parole e viceversa. Ad esempio, circlone.lu diventa circl1.lu.
OmissionQuesti typo sono creati omettendo una lettera del nome di dominio, una lettera alla volta.
RepetitionQuesti typo sono creati ripetendo una lettera del nome di dominio.
ReplacementQuesti typo sono creati sostituendo ogni lettera del nome di dominio.
StripDashQuesti typo sono creati eliminando un trattino dal nome di dominio.
SingularPluralizeQuesti typo sono creati trasformando un dominio singolare in plurale e viceversa.
SubdomainQuesti typo sono creati inserendo un punto nel nome di dominio per creare un sottodominio. Esempio: google.com diventa goo.gle.com
VowelSwapQuesti typo sono creati scambiando le vocali all'interno del nome di dominio, tranne la prima lettera. Ad esempio, www.google.com diventa www.gaagle.com.
WrongTldQuesti typo sono creati cambiando il dominio di primo livello originale con un altro. Ad esempio, www.trademe.co.nz diventa www.trademe.co.mz e www.google.com diventa www.google.org. Utilizza i 19 domini di primo livello più comuni.
WrongSldQuesti typo sono creati cambiando il dominio di secondo livello originale con un altro. Ad esempio, www.trademe.co.uk diventa www.trademe.ac.uk e www.google.com rimarrà www.google.com.