[M] DnsDict, DnsMask и DnsCombine

Общее описание

Используются для поиска поддоменов методом перебора (bruteforce). Имеют функционал для работы с wildcard записями.

Модули работают по списку DNS-серверов указанных в bases/dns-servers.txt. По умолчанию этот список содержит несколько публичных DNS, но для ускорения работы вы можете указывать DNS-сервера целевого домена. Это хорошее решение если домен имеет более 2 DNS.

Каждый рабочий поток получает DNS-сервер из этого списка по кругу — от первого до последнего и заново. Помните о том, что большое количество потоков при малом количестве DNS может привести к блокировке по IP.

Для работы с wildcard-зонами WS имеет 2 функции. Первая, простейшая, это игнорирование IP по умолчанию. Т.е. того адреса, который возвращается на запрос любого поддомена. Такое решение сохранит высокую скорость работы, но вы рискуете пропустить реальные поддомены указывающие на этот IP. Второе решение базируется на отправке «HTTP GET /» запроса на каждый найденный поддомен и поиске совпадений с определённым регулярным выражением в ответе сервера. При использовании обоих решений игнорирование IP будет происходить первым.

Модули могут искать по маске, словарю и комбинированным типом (маска+словарь)

Работает только в «raw» режиме.

Примеры

Простой поиск поддоменов по словарю:

./ws.py DnsDict --template @.standart-zone.polygon.web-scout.online --dict bases/demo/dict.txt

Простой поиск поддоменов по маске:

./ws.py DnsMask --template @.standart-zone.polygon.web-scout.online --mask ?l,1,4

Поиск поддоменов в wildcard-зоне с игнорированием IP по умолчанию:

./ws.py DnsDict --template @.wildcard-ip.polygon.web-scout.online --dict bases/demo/dict.txt --ignore-ip 8.8.8.8

Поиск поддоменов в wildcard-зоне методом запроса найденных имён на веб-сервере:

./ws.py DnsDict --template @.wildcard-web.polygon.web-scout.online --dict bases/demo/dict.txt --http-not-found-re "Ubuntu Default Page"

Опции (* - обязательные)

Имя

По умолчанию

Описание

--template *

Шаблон перебора. Маркировочным символом (@ по умолчанию) в нём отмечается то место, куда будет помещена проверяемая фраза. Примеры: «http://site.com/@», «https://site.com/@.php».

--dict *

Для DnsDict. Путь к словарю для перебора.

--mask *

Для DnsMask. Маска для перебора.

--combine-template *

Для DnsCombine. Шаблон для комбинированного поиска. Строка с вхождениям маркеров «%m%» и «%d%» на чьё место подставляются слова из маски и словаря соответственно.

--dns-protocol

auto

Протокол для общения с DNS-серверами. Может принимать значения «udp», «tcp», «auto». При значении «auto», сервера сперва проверяются на поддержку работы по TCP. Если такой поддержки нет, то проверяется поддержка UDP. Если и она отсутствует, то выводится сообщение «Check server *», а проблемный сервер игнорируется.

--zone

A

DNS-зона перебора. На данный момент может быть «А» и «CNAME».

--http-not-found-re

Регулярное выражение (python.re) для определения отсутствия запрошенного веб-хоста на целевом сервере. Используется при работе с wildcard записями. Указание этого параметра включает вышеописанный функционал по отправке HTTP GET / к каждому найденному хосту.

--http-protocol

http

Протокол для отправки HTTP GET / запросов к целевому серверу. «http»/«https».

--http-proxies

Файл со списком http-proxy.

--http-retest-re

Фраза в http ответе сервера которая указывает на необходимость переотправить проверочный запрос. Например «Service Temporarily Unavailable».

--headers-file

Файл с http заголовками для включения в заголовки HTTP GET / запроса.

--ignore-ip

IP-адрес который стоит игнорировать при позитивной сработке. Для работы с wildcard записями.

--msymbol

@

Маркировочный символ для шаблона поиска.

--delay

0

Задержка между запросами (в секундах). Касается не всех рабочих потоков в целом, а каждого потока в частности.

--threads

10

Количество рабочих потоков

--parts

На сколько частей разбить проверяемый список (словарь, маску)

--part

С какой из частей проверяемого списка работаем.

--test

0

Включение тестового режима

--xml-report

Путь к xml-отчёту