
Найдите гораздо больше из Wayback Machine, Common Crawl, Alien Vault OTX, URLScan, VirusTotal, GhostArchive и Intelligence X!
Идея waymore заключается в том, чтобы найти еще больше ссылок из Wayback Machine (и других источников), чем другие существующие инструменты.
👉 Самое большое отличие waymore от других инструментов в том, что он также может загружать архивированные ответы для URL-адресов на Wayback Machine (и URLScan), чтобы затем вы могли искать в них еще больше ссылок, комментарии разработчиков, дополнительные параметры и т.д. 👉 Кроме того, другие инструменты в настоящее время не справляются с ограничением скорости, установленным источниками, и часто просто останавливаются с неполными результатами, не сообщая вам об этом.
Любой, кто занимается баг-баунти, вероятно, использовал удивительный waybackurls от @TomNomNoms. Этот инструмент получает URL-адреса из web.archive.org и дополнительные ссылки (если есть) из одной из коллекций индексов на index.commoncrawl.org. Вы, вероятно, также использовали удивительный gau от @hacker_ который также находит URL-адреса из архива Wayback, Common Crawl, а также из Alien Vault, URLScan, Virus Total и Intelligence X. Теперь waymore получает URL-адреса из ВСЕХ этих источников (с возможностью фильтрации, чтобы получить то, что нужно):
👉 Это момент, который многие, похоже, упускают, так что я просто повторю его :) ... Самое большое отличие waymore от других инструментов в том, что он также может загружать архивированные ответы для URL-адресов на Wayback Machine, чтобы затем вы могли искать в них еще больше ссылок, комментарии разработчиков, дополнительные параметры и т.д.
👉 ПОЖАЛУЙСТА, ПРОЧИТАЙТЕ ВСЮ ИНФОРМАЦИЮ НА ЭТОЙ СТРАНИЦЕ, ЧТОБЫ МАКСИМАЛЬНО ИСПОЛЬЗОВАТЬ ЭТОТ ИНСТРУМЕНТ, И ОСОБЕННО ПЕРЕД ТЕМ, КАК СООБЩАТЬ О КАКИХ-ЛИБО ПРОБЛЕМАХ 🤘
👉 ЭТОТ ИНСТРУМЕНТ МОЖЕТ БЫТЬ ОЧЕНЬ МЕДЛЕННЫМ, НО ОН ПРЕДНАЗНАЧЕН ДЛЯ ПОКРЫТИЯ, А НЕ ДЛЯ СКОРОСТИ
⚠️ Частая ошибка - передача файла с поддоменами для получения всего для домена. НЕ ДЕЛАЙТЕ ЭТОГО! Просто передайте только домен, чтобы получить все поддомены для этого домена. Это будет НАМНОГО быстрее, и вы ничего не пропустите.
ПРИМЕЧАНИЕ: Если у вас уже есть файл config.yml, он не будет перезаписан. В той же директории будет создан файл config.yml.NEW. Если вам нужна новая конфигурация, удалите config.yml и переименуйте config.yml.NEW обратно в config.yml.
waymore поддерживает Python 3.7+ (требуется Python 3.7 или выше для поддержки async/await).
Установите waymore в среду Python по умолчанию (глобальную).```bash
pip install waymore
ИЛИ```bash
pip install git+https://github.com/xnl-h4ck3r/waymore.git -v
Вы можете обновить с помощью```bash pip install --upgrade waymore
### pipx
Быстрая настройка в изолированной среде Python с помощью [pipx](https://pypa.github.io/pipx/)```bash
pipx install git+https://github.com/xnl-h4ck3r/waymore.git
| ------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| -i | --input | Целевой домен (или файл с доменами) для поиска ссылок. Может быть только доменом или доменом с конкретным путём. Если это только домен, чтобы получить всё для него, не добавляйте префикс www.. Также можно указать только TLD, поставив точку в начале, например .mil, — будут получены все поддомены для всех доменов с этим TLD (ПРИМЕЧАНИЕ: источник Alien Vault OTX исключается при поиске TLD, так как для него требуется полный домен). ПРИМЕЧАНИЕ: Любая схема, номер порта, строка запроса или фрагмент URL будут удалены из входных значений. Однако, если указан путь, он будет искаться конкретно, что ограничит результаты. |
| -mode | | Режим запуска: U (только получение URL), R (только загрузка ответов) или B (оба). Если -i — только домен, то -mode по умолчанию будет B. Если -i — домен с путём, то по умолчанию будет . |
| -oU | --output-urls | Файл для сохранения ссылок, включая путь при необходимости. Если аргумент не передан, в пути, указанном ключом в файле (обычно по умолчанию ), будет создан каталог . Внутри него будет создан каталог с целевым доменом (или доменом с путём), переданным в (или для каждой строки файла, переданного в ). Например: |
| -oR | --output-responses | Каталог для сохранения файлов ответов, включая путь при необходимости. Если аргумент не передан, в пути, указанном ключом в файле (обычно по умолчанию ), будет создан каталог . Внутри него будет создан каталог с целевым доменом (или доменом с путём), переданным в (или для каждой строки файла, переданного в ). Например: |
| -n | --no-subs | Не включать поддомены целевого домена (используется только если входные данные не являются доменом с конкретным путём). |
| -f | --filter-responses-only | Начальные ссылки из источников не будут фильтроваться, будут отфильтрованы только загруженные ответы. Например, может быть полезно видеть все доступные пути из ссылок, даже если не нужно проверять содержимое. |
| -fc | | Фильтр HTTP-кодов состояния для полученных URL и ответов. Список кодов через запятую (по умолчанию: значения из ). Передача этого аргумента переопределит значение из . |
| -ft | | Фильтр MIME-типов для полученных URL и ответов. Список MIME-типов через запятую (по умолчанию: значения из ). Передача этого аргумента переопределит значение из . . |
| -mc | | Только совпадения по HTTP-кодам состояния для полученных URL и ответов. Список кодов через запятую. Передача этого аргумента переопределяет конфиг и . |
| -mt | | Только MIME-типы для полученных URL и ответов. Список MIME-типов через запятую. Передача этого аргумента переопределяет конфиг и . . |
| -l | --limit | Сколько ответов будет сохранено (если передан или ). Положительное значение получит результатов, отрицательное — результатов. Значение 0 получит ответы (по умолчанию: 5000). |
| -from | --from-date | Дата, с которой получать данные. Если не указана, будет получено с самых ранних возможных результатов. Можно передать частичное значение, например , и т.д. |
| -to | --to-date | Дата, до которой получать данные. Если не указана, будет получено до самых поздних возможных результатов. Можно передать частичное значение, например , и т.д. |
| -ci | --capture-interval | Фильтрует поиск на archive.org, чтобы получать не более 1 захвата в час (), день () или месяц (). Этот фильтр используется только для ответов. По умолчанию , но также можно установить , чтобы ничего не фильтровать и получать все ответы. |
| -ra | --regex-after | Регулярное выражение для фильтрации ссылок, найденных из всех источников URL и загруженных ответов. |
| -url-filename | | Устанавливает имя файла загруженных ответов в соответствии с URL, сгенерировавшим ответ, в противном случае оно будет установлено как хеш-значение ответа. Использование хеш-значения означает, что несколько URL, сгенерировавших одинаковый ответ, приведут к сохранению только одного файла для этого ответа. |
| -xwm | | Исключить проверки ссылок из Wayback Machine (archive.org) |
| -xcc | | Исключить проверки ссылок из commoncrawl.org |
| -xav | | Исключить проверки ссылок из alienvault.com |
| -xus | | Исключить проверки ссылок из urlscan.io |
| -xvt | | Исключить проверки ссылок из virustotal.com |
| -xix | | Исключить проверки ссылок из Intelligence X.com |
| -xga | | Исключить проверки ссылок из ghostarchive.org |
| -lcc | | Ограничить количество проиндексированных коллекций Common Crawl для поиска, например будет искать только последние коллекций (по умолчанию: 1). По состоянию на ноябрь 2024 года существует 106 коллекций. Установка значения будет искать коллекции. Если вы не хотите искать Common Crawl вообще, используйте опцию . |
| -t | --timeout | Только для архивных ответов! Сколько секунд ждать отправки данных от сервера перед завершением (по умолчанию: 30). |
| -p | --processes | Базовая многопоточность используется при получении запросов для файла URL. Этот аргумент определяет количество процессов (потоков) (по умолчанию: 2). |
| -r | --retries | Количество повторных попыток для запросов, получивших ошибку соединения или ограничение скорости (по умолчанию: 1). |
| -sip | --source-ip OR --bind-ip | Привязать исходящие HTTP/HTTPS запросы к этому исходному IP (полезно на многосетевых хостах). Передача этого аргумента переопределяет значение в файле . |
| -m | --memory-threshold | Пороговое значение использования памяти в процентах. Если использование памяти машины превышает порог, программа будет остановлена и завершена корректно до того, как закончится память (по умолчанию: 95). |
| -ko | --keywords-only | Возвращать только ссылки и ответы, содержащие ключевые слова, которые вас интересуют. Это может сократить время получения результатов. Если вы указываете флаг без значения, ключевые слова берутся из списка, разделённого запятыми, в файле (обычно в ) с ключом . В противном случае можно передать конкретное значение Regex для использования, например , чтобы получать только ссылки, содержащие слово , или , чтобы получать только JS-файлы. Проверка Regex НЕ чувствительна к регистру. |
| -lr | --limit-requests | Ограничить количество запросов, которые будут сделаны при получении ссылок из источника (это не относится к Common Crawl). Некоторые цели могут возвращать огромное количество необходимых запросов, которые просто невозможно выполнить, поэтому это можно использовать для управления такой ситуацией. По умолчанию 0 (ноль), что означает отсутствие ограничения. |
| -ow | --output-overwrite | Если выходной файл URL (по умолчанию или указанный через ) уже существует, он будет перезаписан, а не дополнен. |
| -nlf | --new-links-file | Если этот аргумент передан, также будет записан файл (или, если используется , это будет имя этого файла с суффиксом ), который будет содержать ссылки последнего запуска. Это можно использовать для непрерывного мониторинга цели (только для , не для ). |
| | --stream | Выводить URL в STDOUT по мере их обнаружения (дубликаты будут показаны). Работает только с . Весь остальной вывод подавляется, поэтому используйте для просмотра ошибок. Используйте , чтобы явно сохранять результаты в файл (будет выполнено дедупликация). |
| -c | --config | Путь к конфигурационному файлу YML. Если не передан, ищется файл в каталоге по умолчанию, обычно . |
| -wrlr | --wayback-rate-limit-retry | Количество минут, которое пользователь хочет ждать при паузе из-за ограничения скорости на Wayback Machine (archive.org) вместо остановки с ошибкой (по умолчанию: 3). |
| -urlr | --urlscan-rate-limit-retry | Количество минут, которое пользователь хочет ждать при паузе из-за ограничения скорости на URLScan.io вместо остановки с ошибкой (по умолчанию: 1). |
| -co | --check-only | Эта опция выполнит несколько минимальных запросов, чтобы показать, сколько запросов и примерно сколько времени может потребоваться для получения URL из источников и загруженных ответов из Wayback Machine (к сожалению, невозможно проверить, сколько времени займёт загрузка ответов из URLScan). |
| -nd | --notify-discord | Отправлять ли уведомление в Discord по завершении waymore. Требует указания в файле . |
| -nt | --notify-telegram | Отправлять ли уведомление в Telegram по завершении waymore. Требует указания и в файле . |
| -oijs | --output-inline-js | Сохранять ли объединённый встроенный JavaScript всех соответствующих файлов в каталоге ответов при использовании (или ). Файлы сохраняются с именем , где — номер файла; сохраняется 1000 уникальных скриптов на файл. Также будет создан файл , содержащий значение всех внешних скриптов, на которые есть ссылки в файлах. |
| -v | --verbose | Подробный вывод |
| | --version | Показать текущий номер версии. |
| -h | --help | Показать справку и выйти. |## Запуск с docker
Установите docker```bash git clone https://github.com/xnl-h4ck3r/waymore.git cd waymore
Сборка образа:```bash
docker build -t waymore .
Запустите waymore с помощью этой команды:```bash docker run -it --rm -v $PWD/results:/app/results waymore:latest -i example.com -oU example.com.links -oR results/example.com/
## Ввод и режим
Ввод `-i` может быть как просто доменом, например `redbull.com`, так и конкретным доменом с путём, например `redbull.com/robots.txt`. Вы также можете передать файл с доменами/URL-адресами для обработки (или передать значения через конвейер из другой программы в командной строке). **ПРИМЕЧАНИЕ: Любая схема, номер порта, строка запроса или фрагмент URL будут удалены из входных значений. Однако, если вы укажете путь, он будет искаться конкретно, что ограничит ваши результаты.**
Существуют различные режимы, которые можно запускать для waymore. Аргумент `-mode` может принимать 3 различных значения:
- `U` - URL-адреса будут получены из archive.org (если не передан `-xwm`), commoncrawl.org (если не передан `-xcc`), otx.alienvault.com (если не передан `-xvv`) и urlscan.io (если не передан `-xus`)
- `R` - Ответы будут загружены с archive.org
- `B` - Будут получены как URL-адреса, так и ответы
Если ввод был конкретным URL-адресом, например `redbull.com/robots.txt`, то `-mode` по умолчанию равен `R`. Будут загружены только ответы. Вы не можете изменить режим на `U` или `B` для домена с путём, потому что нет необходимости получать URL-адреса для конкретного URL.
Если ввод — это просто домен, например `redbull.com`, то `-mode` по умолчанию равен `B`. При необходимости его можно изменить на `U` или `R`. Когда передан только домен, все URL-адреса/ответы извлекаются для этого домена (и поддоменов, если не передан `-n`). Если передан параметр без поддоменов `-n`, поддомен `www` всё равно включается по умолчанию.
## config.yml
Файл `config.yml` (обычно находится в `~/.config/waymore/`) содержит значения, которые можно обновить в соответствии с вашими потребностями. Фильтры задаются в виде списков, разделённых запятыми:
- `FILTER_CODE` — Исключения, используемые для исключения ответов, которые мы попытаемся получить с web.archive.org, а также для имён файлов, когда `-i` является каталогом, например `301,302`. Это можно переопределить с помощью аргумента `-fc`. Передача `-mc` (для сопоставления кодов состояния вместо фильтрации) переопределит любое значение в `FILTER_CODE` или `-fc`.
- `FILTER_MIME` — Исключения MIME-типов содержимого, используемые для фильтрации ссылок и ответов с web.archive.org через их API, например `'text/css,image/jpeg`. Это можно переопределить с помощью аргумента `-ft`. Передача `-mt` (для сопоставления MIME-типов вместо фильтрации) переопределит любое значение в `FILTER_MIME` или `-ft`.
- `FILTER_URL` — Исключения кодов ответа, которые мы будем использовать для фильтрации ссылок и ответов с web.archive.org через их API, например `.css,.jpg`
- `FILTER_KEYWORDS` — Будут возвращены только ссылки и ответы, содержащие указанные ключевые слова, если передан аргумент `-ko`/`--keywords-only` (без явного указания значения в командной строке), например `admin,portal`
- `URLSCAN_API_KEY` — Вы можете зарегистрироваться на [urlscan.io](https://urlscan.io/user/signup), чтобы получить **БЕСПЛАТНЫЙ** API-ключ (также доступны платные подписки). Рекомендуется получить ключ и поместить его в файл конфигурации, чтобы получать больше данных (и быстрее) от их API. ПРИМЕЧАНИЕ: Вы будете ограничены по скорости, если у вас нет полной платной подписки.
- `CONTINUE_RESPONSES_IF_PIPED` — Если получение архивных ответов не завершилось, в следующий раз вам будет предложено продолжить предыдущий запуск. Однако, если `stdout` передаётся через конвейер другому процессу, подразумевается, что вы не хотите интерактивного запроса. Значение `True` (по умолчанию) гарантирует продолжение предыдущего запуска. Если вы хотите каждый раз начинать заново, установите `False`.
- `WEBHOOK_DISCORD` — Если передан аргумент `--notify-discord`, `waymore` отправит уведомление на этот вебхук Discord.
- `TELEGRAM_BOT_TOKEN` — Если передан аргумент `--notify-telegram`, `waymore` будет использовать этот токен для отправки уведомления в Telegram.
- `TELEGRAM_CHAT_ID` — Если передан аргумент `--notify-telegram`, `waymore` отправит уведомление на этот ID чата.
- `DEFAULT_OUTPUT_DIR` — Это расположение по умолчанию для любых выходных файлов, если аргументы `-oU` и `-oR` не используются. Если значение этого ключа пустое, то по умолчанию будет использоваться расположение файла `config.yml`.
- `INTELX_API_KEY` — Вы можете зарегистрироваться [здесь на intelx.io](https://intelx.io/product). Для выполнения `/phonebook/search` через их API требуется академический или платный API-ключ (по состоянию на 01.09.2024 служба Phonebook была ограничена для академических или платных пользователей из-за постоянных злоупотреблений со стороны спам-аккаунтов). Вы можете получить бесплатный API-ключ для академического использования, если зарегистрируетесь с действующим адресом электронной почты учебного заведения.
- `SOURCE_IP` — Необязательно. Привязать исходящие HTTP/HTTPS-запросы к определённому исходному IP-адресу на многодоменных хостах. Также можно установить через флаг CLI `--source-ip/--bind-ip` (CLI имеет приоритет).
**ПРИМЕЧАНИЕ: MIME-типы нельзя отфильтровать для Alien Vault OTX, Virus Total и Intelligence X, потому что они не имеют возможности фильтрации по MIME-типу. Иногда URLScan не имеет определённого MIME-типа для URL. В этих случаях URL-адреса будут включены независимо от фильтра или совпадения. Имейте это в виду и рассмотрите возможность исключения некоторых поставщиков, если это важно.**
## Вывод
В каталоге вывода по умолчанию, указанном в файле `config.yml` с помощью `DEFAULT_OUTPUT_DIR` (если он пуст, будет использоваться расположение самого файла `config.yml`, обычно `~/.config/waymore/`), будет создан каталог `results`. Внутри него будет создан каталог с целевым доменом (или доменом с путём), переданным с помощью `-i` (или для каждой строки файла, переданного с помощью `-i`). Вы также можете использовать аргумент `-oU`, чтобы указать, куда будет выводиться файл ссылок URL (и имя файла). Вы также можете использовать аргумент `-oR`, чтобы указать каталог (или путь), куда будут выводиться архивные ответы.
При запуске в целевом каталоге создаются следующие файлы:
- `waymore.txt` — Если `-mode` равен `U` или `B`, этот файл будет содержать ссылки из выбранных источников. Ссылки будут получены из archive.org Wayback Machine (если не передан `-xwm`), commoncrawl.org (если не передан `-xcc`), otx.alienvault.com (если не передан `-xav`) и urlscan.io (если не передан `-xus`). Если также передан параметр `-ow`, любой существующий файл `waymore.txt` в целевом каталоге результатов будет перезаписан, в противном случае новые ссылки будут добавлены, а дубликаты удалены.
- `index.txt` — Если `-mode` равен `R` или `B` и не был передан `-url-filename`, то архивные ответы будут загружены, а для имён сохраняемых файлов будут использоваться хеш-значения. Этот файл содержит разделённый запятыми список `<хеш>,<архивный URL>,<временная метка>` на случай, если вам понадобится узнать, какие URL-адреса дали какой ответ.
- `ВСЕ ОСТАЛЬНЫЕ ФАЙЛЫ` — Эти файлы архивных ответов будут созданы, если `-mode` был `R` или `B`. Если был передан `-url-filename`, то имена файлов будут соответствовать архивному URL, который сгенерировал ответ, например `https--example.com-robots.txt`, в противном случае имя файла будет хеш-значением, например `7960113391501.{EXT}`, где `{EXT}` будет расширением, полученным из пути, в противном случае оно будет получено из `content-type` ответа. Иногда будет указано общее расширение, например `.js` для любого типа содержимого, содержащего слово `javascript`, в противном случае оно может быть установлено на последнюю часть типа (например, если это `application/java-archive`, файл будет `7960113391501.java-archive`). Использование хеш-значений означает, что будет записано меньше файлов, так как будет только один файл на каждый уникальный ответ. Эти архивные ответы редактируются перед сохранением, чтобы удалить любые ссылки на `web.archive.org`.
## Информация и предложения
Количество найденных ссылок, а затем потенциально количество файлов архивных ответов, которые вы загрузите, может быть **ОГРОМНЫМ** для многих доменов. Этот инструмент не о скорости, а о том, чтобы найти больше, так что наберитесь терпения.
Существует опция `-p` для увеличения количества процессов (используется при получении ссылок из всех источников и загрузке архивных ответов с archive.org). Однако, хотя это может быть не так быстро, как хотелось бы, я бы предложил оставить `-p` по умолчанию равным 3, потому что лично я сталкивался с проблемами при получении ответов с более высокими значениями. Мы не хотим создавать проблемы этим сервисам, так что будьте разумны!
Я часто использую опцию `-f`, потому что хочу, чтобы `waymore.txt` содержал ВСЕ возможные ссылки. Даже если мне не нужны изображения, шрифты и т.д., это всё равно может быть полезно для просмотра всех возможных путей и, возможно, параметров. Однако любые фильтры всегда будут применяться при загрузке архивных ответов. Вы же не хотите тратить время на загрузку тысяч изображений!
Использование опции `-v` может помочь увидеть, что происходит за кулисами, и может помочь, если вы не получаете ожидаемый результат.
Все MIME-типы содержимого найденных URL-адресов (всеми источниками, кроме Alien Vault) будут отображаться при использовании `-v`. Это может помочь добавить дополнительные исключения, если вы обнаружите, что всё ещё получаете то, что не хотите видеть. Если вы заметите MIME-тип, который включается, но вы не хотите его в будущем, добавьте его в `FILTER_MIME` в `config.yml`.
Следует отметить, что иногда MIME-тип на archive.org хранится как `unk` и `unknown` вместо реального MIME, поэтому фильтр не обязательно удалит его из результатов. Настройки `FILTER_URL` можно использовать для удаления их впоследствии. Например, если GIF имеет MIME-тип `unk` вместо `image/gif` (и это в `FILTER_MIME`), то он не будет отфильтрован, но если URL — `https://target.com/assets/logo.gif` и `.gif` находится в `FILTER_URL`, он не будет запрошен.
Если `config.yml` не существует или записи для фильтров отсутствуют в файле, то используются фильтры по умолчанию. Лучше иметь файл и просмотреть их, чтобы убедиться, что вы получаете то, что вам нужно.
Потенциально могут быть миллионы ответов, поэтому обязательно установите фильтры, а также Лимит (`-l`), Дату от (`-from`), Дату до (`-to`) и/или Интервал захвата (`-ci`), если это необходимо. Лимит по умолчанию равен 5000, но, скажем, вы хотите получить последние 20 000 ответов с 2015 года по январь 2018 года... вы бы передали `-l -20000 -from 2015 -to 201801`. Интервал захвата определяет, сколько ответов будет загружено для определённого URL в течение указанного периода, например, если установить `m`, вы получите только один ответ в месяц для URL. Значение по умолчанию `d` скорее всего значительно сократит количество ответов и вряд ли пропустит много уникальных ответов, если только цель не изменила что-то более одного раза в день.
Ещё один полезный аргумент — `-mc`, который будет получать только те результаты, где код состояния HTTP соответствует переданному списку, разделённому запятыми, например `-mc 200` или `-mc 200,403`.
Вы также можете значительно сократить количество (и, следовательно, время выполнения) ссылок и ответов, возвращая только те, которые содержат интересующие вас ключевые слова. Вы можете перечислить эти ключевые слова в `config.yml` с ключом `FILTER_KEYWORDS`, а затем передать аргумент `-ko`/`--keywords-only` для их использования, или вы можете передать `-ko`/`--keywords-only` с конкретным регулярным выражением, например `-ko "\.js(\?.*|$)"`, чтобы получить только JS-файлы. **ПРИМЕЧАНИЕ: CDX-регулярное выражение требует, чтобы все пути соответствовали полной строке, поэтому если `$` используется как часть группы ИЛИ, то `.*` требуется в части регулярного выражения `(\?.*|$)`.**
Как упоминалось выше, зарегистрируйтесь на [urlscan.io](https://urlscan.io/user/signup), чтобы получить **БЕСПЛАТНЫЙ** API-ключ (также доступны платные подписки). Рекомендуется получить ключ и поместить его в файл `config.yml`, чтобы получать больше данных (и быстрее) от их API. ПРИМЕЧАНИЕ: Вы будете ограничены по скорости, если у вас нет полной платной подписки.
API Wayback Machine CDX от archive.org иногда может требовать огромного количества запросов, чтобы получить все ссылки. Например, если вы запустите **waymore** для `-i twitter.com`, он сообщает, что необходимо сделать **28 903 799** запросов к archive.org (для некоторых это может занять почти 1000 дней!!!). Аргумент `-lr` можно использовать для ограничения количества запросов на источник (хотя обычно проблема в archive.org). Значение по умолчанию для аргумента — 0 (ноль), что не применяет никакого ограничения.
Также существует проблема с API Wayback Machine CDX, когда количество возвращаемых страниц неверно при применении фильтров, что может вызвать проблемы (см. https://github.com/internetarchive/wayback/issues/243). Пока эта проблема не решена, установка аргумента `-lr` на разумное значение может помочь с этой проблемой в краткосрочной перспективе.
API Common Crawl долгое время имел много проблем. Включение этого источника может заставить waymore работать намного дольше и может не дать дополнительных результатов. Вы можете проверить, есть ли проблема, посетив http://index.commoncrawl.org/collinfo.json и посмотрев, успешен ли он. Рассмотрите возможность полного исключения Common Crawl с помощью аргумента `--providers` без включения `commoncrawl` или с помощью аргумента `-xcc`.
**Серверы API провайдеров не рассчитаны на большие объёмы, поэтому будьте разумны и внимательны к тому, что вы им отправляете!**
При загрузке архивных ответов это может занять много времени и иногда может быть прервано машиной по какой-то причине или вручную остановлено пользователем.
В каталоге `results` цели в начале процесса создаётся файл с именем `responses.tmp`, который содержит все URL-адреса ответов, которые будут получены. Также будет файл с именем `continueResp.tmp`, который хранит индекс последнего полученного ответа. Если `waymore` запущен для получения ответов (`-mode R` или `-mode B`), и эти файлы существуют, это означает, что был предыдущий неполный запуск, и вам будет предложено продолжить его. Затем он продолжит с того места, где остановился.
## Некоторые базовые примеры
### Пример 1
Просто получить URL-адреса из всех источников для `redbull.com` (`-mode U` только для URL-адресов, поэтому ответы не загружаются):
<center><img src="https://raw.githubusercontent.com/xnl-h4ck3r/waymore/main/waymore/images/example1.png"></center>
URL-адреса сохраняются в том же пути, что и `config.yml` (обычно `~/.config/waymore`) в `results/redbull.com/waymore.txt`
### Пример 2
Получить ВСЕ URL-адреса из Wayback для `redbull.com` (фильтры не применяются в `mode U` с `-f`, и никакие URL-адреса не извлекаются из Common Crawl, Alien Vault, URLScan и Virus Total, поскольку переданы `-xcc`, `-xav`, `-xus`, `-xvt` соответственно. Этого также можно достичь, передав `--providers wayback` вместо аргументов исключения).
Сохранить ПЕРВЫЕ 200 ответов, найденных начиная с 2022 года (`-l 200 -from 2022`):
<center><img src="https://raw.githubusercontent.com/xnl-h4ck3r/waymore/main/waymore/images/example2.png"></center>
`-mode` не был явно установлен, поэтому по умолчанию равен `B` (Оба — получить URL-адреса И загрузить ответы).
Для каждого уникального ответа будет создан файл, также сохранённый в `results/redbull.com/`:
<center><img src="https://raw.githubusercontent.com/xnl-h4ck3r/waymore/main/waymore/images/example3.png"></center>
Также будет файл `results/redbull.com/index.txt`, который будет содержать ссылку на то, какие URL-адреса дали ответ для какого файла, например.```
4847147712618,https://web.archive.org/web/20220426044405/https://www.redbull.com/additional-services/geo ,2022-06-24 20:07:50.603486
где 4847147712618 — это хеш-значение ответа в 4847147712618.xnl, второе значение — это URL-адрес Wayback Machine, по которому можно просмотреть фактическую страницу, которая была архивирована, а третье — метка времени, когда ответ был загружен.
Вы можете передавать вывод waymore другим инструментам. Любые ошибки отправляются в stderr, а все найденные ссылки отправляются в stdout. Выходной файл по-прежнему создаётся в дополнение к передаваемым ссылкам в следующую программу. Однако архивированные ответы не передаются в следующую программу, но они по-прежнему записываются в файлы. Например:```
waymore -i redbull.com -mode U | unfurl keys | sort -u
Вы также можете передать ввод через `stdin` вместо `-i`.```
cat redbull_subs.txt | waymore
Иногда вы можете просто проверить, сколько запросов и сколько времени, вероятно, займет waymore, если запустить его для конкретного домена. Вы можете быстро проверить это с помощью аргумента -co/--check-only. Например:```
waymore -i redbull.com --check-only
<center><img src="https://raw.githubusercontent.com/xnl-h4ck3r/waymore/main/waymore/images/example4.png"></center>
## Поиск ещё большего количества URL-адресов!
Итак, у вас есть много архивных ответов, и вы хотите найти дополнительные ссылки? Легко! Почему бы не воспользоваться [xnLinkFinder](https://github.com/xnl-h4ck3r/xnLinkFinder)?
Например:```
xnLinkFinder -i ~/Tools/waymore/results/redbull.com -sp https://www.redbull.com -sf redbull.com -o redbull.txt
Или запустите другие инструменты, такие как trufflehog или gf, в каталоге ответов, чтобы найти ещё больше из архивированных ответов!
Ниже представлена подробная лекция, которую я провёл для дискорд-канала Джейсона Хэддикса в марте 2024 года, чтобы охватить ВСЁ, что нужно знать о waymore.
ПРИМЕЧАНИЕ: Это видео от марта 2024 года, поэтому функции, добавленные после этой даты, не будут показаны, и некоторые функции могли измениться. Пожалуйста, перепроверьте текущие инструкции.
Если вы столкнётесь с какими-либо проблемами или у вас есть идеи по улучшению, пожалуйста, не стесняйтесь создавать issue на GitHub. При возникновении проблемы будет полезно, если вы предоставите точную команду, которую запускали, и подробное описание проблемы. Если возможно, запустите с флагом -v, чтобы воспроизвести проблему, и сообщите мне о любых сообщениях об ошибках.
-oos, который принимает файл с поддоменами/URL-адресами вне зоны ответственности (Out Of Scope), которые не будут возвращены в выводе или для которых не будут загружены ответы.waymore_index.txt не дедуплицируется при многократном запуске для одного и того же ввода с -mode R или -mode B.Удачи и успешной охоты! Если вам действительно нравится этот инструмент (или любые другие), или они помогли вам найти отличный баунти, подумайте о том, чтобы КУПИТЬ МНЕ КОФЕ! ☕ (Кофеин мне не помешает!)
🤘 /XNL-h4ck3r
-modeR-oRDEFAULT_OUTPUT_DIRconfig.yml~/.config/waymore//results-i-i-oU ~/Recon/Redbull/waymoreUrls.txtDEFAULT_OUTPUT_DIRconfig.yml~/.config/waymore//results-i-i-oR ~/Recon/Redbull/waymoreResponsesFILTER_CODEconfig.ymlconfig.ymlFILTER_MIMEconfig.ymlconfig.ymlFILTER_CODE-fcFILTER_MIME-ft-mode R-mode B20162018052021202112hdmdnone-ra '\.js(\?\|$)'-lcc 10100-xccSOURCE_IPconfig.ymlconfig.yml~/.config/waymore/FILTER_KEYWORDS-ko "admin"admin-ko "\.js(\?.*\|$)"waymore.txt-oUwaymore.new-oU.newmode Umode R-mode U-v-oUconfig.yml~/.config/waymore429429WEBHOOK_DISCORDconfig.ymlTELEGRAM_BOT_TOKENTELEGRAM_CHAT_IDconfig.yml-mode R-mode BcombinedInline{}.js{}combinedInlineSrc.txtsrc