# \[M] HostsDict, HostsMask и HostsCombine

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

Используются для поиска веб-хостов на серверах напрямую, без участия DNS. Работа данных модулей сводится к тому, чтоб отправлять HTTP запросы на целевой IP-адрес подставляя искомые имена в заголовок «Host». Функционал может пригодиться для обнаружения служебных хостов имеющих DNS записи на внутренних DNS серверах (или вообще без них). Или для хостов которые перенесли на другой IP, а на старом не были удалены.

Поиск производится по маске, словарю и в комбинированном режиме (маска + словарь).

Модули работают только в raw режиме.

## Примеры

Поиск виртуального хоста на веб-сервере по словарю:

```
./ws.py HostsDict --ip 82.146.56.21 --dict bases/demo/dict.txt --template @.hostsbrute.polygon.web-scout.online --false-re "Ubuntu Default Page"
```

Поиск виртуального хоста на веб-сервере по маске:

```
./ws.py HostsMask --ip 82.146.56.21 --mask ?l,1,4 --template @.hostsbrute.polygon.web-scout.online --false-re "Ubuntu Default Page"
```

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

| Имя                   | По умолчанию | Описание                                                                                                                                                               |   |   |
| --------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | - |
| --template \*         |              | Шаблон перебора. Маркировочным символом (@ по умолчанию) в нём отмечается то место, куда будет помещена проверяемая фраза. Примеры:  «@.site.com», «@-admin.site.com». |   |   |
| --dict \*             |              | Для HostsDict. Путь к словарю для перебора.                                                                                                                            |   |   |
| --mask \*             |              | Для HostsMask. Маска для перебора.                                                                                                                                     |   |   |
| --combine-template \* |              | Для HostsCombine. Шаблон для комбинированного поиска. Строка с вхождениям маркеров «%m%» и «%d%» на чьё место подставляются слова из маски и словаря соответственно.   |   |   |
| --ip \*               |              | Целевой IP-адрес.                                                                                                                                                      |   |   |
| --false-re \*         |              | RegEx (python.re), при наличии совпадений в теле ответа свидетельствующая об отрицательном результате.                                                                 |   |   |
| --false-size \*       |              | Размер тела отрицательного ответа. Помните что разные утилиты могут давать разный размер ответа. Используйте тестовый режим чтобы узнать нужное вам значение.          |   |   |
| --http-protocol       | http         | Протокол для отправки HTTP GET / запросов к целевому серверу. «http»/«https».                                                                                          |   |   |
| --msymbol             | @            | Маркировочный символ для шаблона поиска.                                                                                                                               |   |   |
| --proxies             |              | Файл со списком http-proxy.                                                                                                                                            |   |   |
| --retest-re           |              | Регулярное выражение (python.re) для поиска в ответе сервера признака необходимости переотправить запрос. Например «Service Temporarily Unavailable».                  |   |   |
| --retest-codes        |              | Набор кодов (через запятую) указывающих на то, что запрос нужно отправить заново. Например «502,503».                                                                  |   |   |
| --headers-file        |              | Файл с http заголовками для включения в заголовки запроса.                                                                                                             |   |   |
| --delay               | 0            | Задержка между запросами (в секундах). Касается не всех рабочих потоков в целом, а каждого потока в частности.                                                         |   |   |
| --threads             | 10           | Количество рабочих потоков                                                                                                                                             |   |   |
| --parts               |              | На сколько частей разбить проверяемый список (словарь, маску)                                                                                                          |   |   |
| --part                |              | С какой из частей проверяемого списка работаем.                                                                                                                        |   |   |
| --test                | 0            | Включение тестового режима                                                                                                                                             |   |   |
| --xml-report          |              | Путь к xml-отчёту                                                                                                                                                      |   |   |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://webscout.gitbook.io/webscout-ru/moduli-hostsbruterdict-hostsbrutermask-i-hostsbrutercombine.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
