dnstwist - Механизм перестановки доменных имен для обнаружения сквоттинга опечаток, фишинга и корпоративного шпионажа

11.06.2020
1
1
6
dnstwist - Механизм перестановки доменных имен для обнаружения сквоттинга опечаток, фишинга и корпоративного шпионажа

dnstwist - это инструмент на основе Python, который может помочь вам увидеть, какие проблемы могут возникнуть у пользователей при попытке ввести ваше доменное имя. Он может находить похожие на вид домены, которые злоумышленники могут использовать для атаки на вас. Он также может обнаруживать опечатки, фишинговые атаки, мошенничество и корпоративный шпионаж.

Это очень полезно в качестве дополнительного источника целевой информации об угрозах.

Идея довольно проста: dnstwist принимает ваше доменное имя в качестве начального числа, генерирует список потенциальных фишинговых доменов, а затем проверяет, зарегистрированы ли они. Кроме того, он может проверить, можно ли использовать почтовый сервер из записи MX для перехвата неверно направленных корпоративных сообщений электронной почты, и может генерировать нечеткие хэши веб-страниц, чтобы определить, являются ли они действующими фишинговыми сайтами.

Примечание: Наряду с длиной домена значительно увеличивается количество вариантов, генерируемых алгоритмами, и, следовательно, количество DNS-запросов, необходимых для их проверки. Например, чтобы проверить все варианты для google.com, вам нужно будет отправить более 300 тысяч запросов. Для домена facebook.com это число превышает 5 миллионов. Насколько легко угадать, это требует много ресурсов и, самое главное, еще больше времени. Для более длинных доменов проверка всего невозможна. По этой причине этот инструмент генерирует и проверяет домены, очень близкие к оригиналу. Теоретически это самые привлекательные домены с точки зрения злоумышленника. Однако знайте, что фантазия агрессоров безгранична.

Функции:
  • Широкий спектр эффективных алгоритмов фаззинга предметной области
  • Доменные имена Unicode (IDN)
  • Многопоточное распределение заданий
  • Запросы к записям A, AAAA, NS и MX
  • Оценивает сходство веб-страниц с помощью нечетких хешей, чтобы найти живые фишинговые сайты
  • Проверяет, можно ли использовать MX-хост (почтовый сервер) для перехвата неправильно перенаправленных сообщений электронной почты.
  • Дополнительные варианты домена с использованием файлов словарей
  • Информация о местоположении GeoIP
  • Захватывает баннеры служб HTTP и SMTP
  • Поиск в WHOIS для даты создания и изменения
  • Вывод в формате CSV и JSON

Требования:
  • Linux
Ubuntu Linux - это основная платформа разработки. Если вы используете Ubuntu 15.04 или новее, вы можете установить такие зависимости:


$ sudo apt-get install python-dnspython python-geoip python-whois \
python-requests python-ssdeep python-cffi


В качестве альтернативы вы можете использовать инструменты Python. Это можно сделать в виртуальной среде, чтобы избежать конфликтов с другими установками. Однако вам все равно понадобится пара библиотек, установленных на системном уровне.


Код:
$ sudo apt-get install libgeoip-dev libffi-dev
$ BUILD_LIB = 1 pip install -r requirements.txt

  • OSX
Если вы используете Mac, вы можете установить dnstwist через Homebrew следующим образом:


$ brew install dnstwist



Это установит dnstwist.py только как dnstwist вместе со всеми требованиями, упомянутыми выше. Использование такое же, вы можете просто опустить расширение файла, и двоичный файл будет добавлен в PATH.

  • Докер
Если вы используете Docker, вы можете загрузить официальный образ из Docker Hub и запустить его:


Код:
$ docker pull elceef / dnstwist
$ docker run elceef / dnstwist example.com


Как использовать dnstwist
Для начала рекомендуется ввести в качестве аргумента только доменное имя. Инструмент пропустит его через свои алгоритмы фаззинга и сгенерирует список потенциальных фишинговых доменов со следующими записями DNS: A, AAAA, NS и MX.


$ dnstwist.py example.com


Обычно сгенерированный список доменов состоит из более сотни строк - особенно для более длинных доменных имен. В таких случаях может быть целесообразно отображать только зарегистрированные (разрешаемые) с помощью аргумента --registered.


$ dnstwist.py --registered example.com


Ручная проверка каждого доменного имени с точки зрения обслуживания фишингового сайта может занять много времени. Чтобы решить эту проблему, dnstwist использует так называемые нечеткие хэши (кусочные хэши, запускаемые контекстом). Нечеткое хеширование - это концепция, которая включает в себя возможность сравнения двух входных данных (в данном случае кода HTML) и определения фундаментального уровня сходства. Эту уникальную функцию dnstwist можно включить с помощью аргумента --ssdeep. Для каждого сгенерированного домена dnstwist будет извлекать контент с отвечающего HTTP-сервера (после возможных перенаправлений) и сравнивать его нечеткий хэш с хешем исходного (начального) домена. Уровень сходства будет выражен в процентах. Имейте в виду, что получение 100% соответствия для динамически генерируемой веб-страницы маловероятно, но каждое уведомление следует тщательно проверять независимо от процентного уровня.


$ dnstwist.py --ssdeep example.com


В некоторых случаях фишинговые сайты обслуживаются с определенного URL-адреса. Если вы предоставите полный или частичный URL-адрес в качестве аргумента, dnstwist проанализирует его и применит для каждого сгенерированного варианта доменного имени. Эта возможность, очевидно, полезна только в сочетании с функцией нечеткого хеширования.
Код:
$ dnstwist.py --ssdeep https://example.com/owa/
$ dnstwist.py --ssdeep example.com/crm/login

Очень часто злоумышленники устанавливают приманки для электронной почты на фишинговых доменах и ждут получения сообщений с ошибками. В этом сценарии злоумышленники настроят свой сервер для очистки всей электронной почты, адресованной этому домену, независимо от пользователя, которому она была отправлена. Другая функция dnstwist позволяет выполнить простой тест на каждом почтовом сервере (объявленном через MX-запись DNS), чтобы проверить, какой из них можно использовать для таких враждебных намерений. Подозрительные серверы будут отмечены строкой SPYING-MX.

Помните о возможных ложных срабатываниях. Некоторые почтовые серверы только делают вид, что принимают неправильно адресованные электронные письма, но затем отбрасывают эти сообщения. Этот метод используется для предотвращения атаки сбора каталога.


$ dnstwist.py --mxcheck example.com


Не всегда доменные имена, сгенерированные алгоритмами фаззинга, достаточны. Чтобы сгенерировать еще больше вариантов доменного имени, загрузите в dnstwist файл словаря. Включены некоторые образцы словарей со списком наиболее часто используемых слов в целевых фишинговых кампаниях. Не стесняйтесь адаптировать его под свои нужды.


$ dnstwist.py - словари, словари / english.dict example.com


Помимо красивого и красочного вывода текстового терминала по умолчанию, инструмент предоставляет два хорошо известных и легко анализируемых формата вывода: CSV и JSON. Используйте его для обмена данными.


Код:
$ dnstwist.py --csv example.com> out.csv
$ dnstwist.py --json example.com> out.json
Инструмент поставляется со встроенной базой данных GeoIP. Используйте аргумент --geoip, чтобы отобразить географическое положение (название страны) для каждого IPv4-адреса.

$ dnstwist.py --geoip example.com


Конечно, все функции, предлагаемые dnstwist, вместе с краткими описаниями всегда под рукой:


$ dnstwist.py --help

 
  • Like
Реакции: mr.YaPon

Об LS-LA

  • Мы, группа единомышленников, основная цель которых повышать уровень знаний и умений.
    Не забывая о материальном благополучии каждого)

About LS-LA

  • We, a group of like-minded people, whose main goal is to increase the level of knowledge and skills.
    Not forgetting about everyone’s material well-being)

Быстрая навигация

Пользовательское меню