Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/typosquatter/ail-typo-squatting
OSINT (Разведка открытых источников)РазведкаСбор информацииРазведка угрозАнализ DNS
GitHubtyposquatter/ail-typo-squatting

ail-typo-squatting

Генерация списка потенциальных тайпсквоттинг-доменов с помощью механизма перестановки доменных имён для последующей передачи в AIL и другие системы.

Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
ail-typo-squatting — Генерация списка потенциальных тайпсквоттинг-доменов с помощью механизма перестановки доменных имён для последующей передачи в AIL и другие системы. | Kitploit
Сайт
10891 год назадПроверено Kitploit

ail-typo-squatting

ail-typo-squatting — это библиотека Python для генерации списка потенциальных доменов-тайпсквоттеров с помощью движка перестановки доменных имён для передачи в AIL и другие системы.

Инструмент можно использовать как автономно, так и для передачи данных в другие системы.

Если вы не хотите использовать библиотеку Python, https://typosquatting-finder.circl.lu/ — это онлайн-сервис, который использует эту библиотеку.

Требования

  • inflect библиотека
  • pyyaml
  • tldextract
  • dnspython

Установка

Установка из исходников

ail-typo-squatting можно установить с помощью poetry. Если у вас не установлен poetry, вы можете выполнить следующее: curl -sSL https://install.python-poetry.org | python3 -.

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

Установка через pip

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

Использование

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.

Пример использования

  1. Создание вариаций для ail-project.org и circl.lu с использованием всех алгоритмов.
root@kitploit:~
dacru@dacru:~/git/ail-typo-squatting/bin$ python3 typo.py -dn ail-project.org circl.lu -a -o .
  1. Создание вариаций для файла, содержащего доменные имена, с использованием пропуска символов, поддоменов и дефисации.
root@kitploit:~
dacru@dacru:~/git/ail-typo-squatting/bin$ python3 typo.py -fdn domain.txt -co -sub -hyp -o . -fo yara
  1. Создание вариаций для ail-project.org и circl.lu с использованием всех алгоритмов и DNS-резолвинга.
root@kitploit:~
dacru@dacru:~/git/ail-typo-squatting/bin$ python3 typo.py -dn ail-project.org circl.lu -a -dnsr -o .
  1. Создание вариаций для ail-project.org и вывод алгоритма, который генерирует вариацию (только для текстового формата).
root@kitploit:~
dacru@dacru:~/git/ail-typo-squatting/bin$ python3 typo.py -dn ail-project.org -a -o - -var

Использование в качестве библиотеки

Запуск всех алгоритмов

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()

Запуск конкретного алгоритма

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()

Пример вывода

Для выходного файла доступно 4 формата:

  • text
  • yara
  • regex
  • sigma

Для Text-файла каждая строка является вариацией.

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

Для Yara-файла каждое правило является вариацией.

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*)
}

Для 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

Для Sigma-файла все вариации перечисляются под ключом 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

Вывод DNS

Если выбран DNS-резолвинг, будет создан дополнительный файл в формате JSON.

Каждый ключ — это вариация, и он может содержать поле "ip", если доменное имя было разрешено. Поле "NotExist" присутствует всегда и содержит логическое значение, определяющее, существует ли домен.

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
    },
    ...
}

Список используемых алгоритмов

Благодарности

Проект был софинансирован в рамках CEF-TC-2020-2 - 2020-EU-IA-0260 - JTAN - Joint Threat Analysis Network.

Скачать инструмент
АлгоритмОписание
AddDashЭти опечатки создаются путём добавления дефиса между первым и последним символами строки.
AdditionЭти опечатки создаются путём добавления символов в доменное имя.
AddDynamicDnsЭти опечатки создаются путём добавления динамического DNS в конец исходного домена.
AddTldЭти опечатки создаются путём добавления TLD перед правильным TLD. Пример: google.com становится google.com.it
ChangeDotDashЭти опечатки создаются путём замены точки на дефис.
ChangeOrderЭти опечатки создаются путём изменения порядка букв в каждой части домена.
ComboЭти опечатки создаются путём комбинирования нескольких алгоритмов. Например, circl.lu становится cirl6.lu
CommonMisspellingЭти опечатки создаются путём замены слова на его неправильное написание. Более 8000 распространённых ошибок из Википедии. Например, www.youtube.com становится www.youtub.com, а www.abseil.com становится www.absail.com.
Double ReplacementЭти опечатки создаются путём замены одинаковых последовательных букв доменного имени.
HomoglyphЭти опечатки создаются путём замены символов на другие символы, которые выглядят похоже, но отличаются. Например, строчная буква l похожа на цифру один, т.е. l против 1. Например, google.com становится goog1e.com.
HomophonesЭти опечатки создаются путём замены слова на другое, которое звучит так же при произношении. Более 450 наборов слов, которые звучат одинаково. Например, www.base.com становится www.bass.com.
MissingDotЭти опечатки создаются путём удаления точки из доменного имени.
NumeralSwapЭти опечатки создаются путём замены числа на слово и наоборот. Например, circlone.lu становится circl1.lu.
OmissionЭти опечатки создаются путём пропуска одной буквы доменного имени за раз.
RepetitionЭти опечатки создаются путём повторения буквы доменного имени.
ReplacementЭти опечатки создаются путём замены каждой буквы доменного имени.
StripDashЭти опечатки создаются путём удаления дефиса из доменного имени.
SingularPluralizeЭти опечатки создаются путём преобразования домена из единственного числа во множественное и наоборот.
SubdomainЭти опечатки создаются путём размещения точки в доменном имени для создания поддомена. Пример: google.com становится goo.gle.com
VowelSwapЭти опечатки создаются путём замены гласных в доменном имени, кроме первой буквы. Например, www.google.com становится www.gaagle.com.
WrongTldЭти опечатки создаются путём замены исходного домена верхнего уровня на другой. Например, www.trademe.co.nz становится www.trademe.co.mz, а www.google.com становится www.google.org. Используются 19 самых распространённых доменов верхнего уровня.
WrongSldЭти опечатки создаются путём замены исходного домена второго уровня на другой. Например, www.trademe.co.uk становится www.trademe.ac.uk, а www.google.com останется www.google.com.