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

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

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

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

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

Категории

Все категории
Loading categories
urx — Извлекает URL-адреса из архивов OSINT для аналитики безопасности | Kitploit
Инструменты/GitHubGitHub/hahwul/urx
OSINT (Разведка открытых источников)РазведкаСбор информацииВеб-безопасностьКраулер
GitHubhahwul/urx

urx

Извлекает URL-адреса из архивов OSINT для аналитики безопасности

Репозиторий
190206 дней назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Сайт
Логотип Urx

Извлекает URL из OSINT-архивов для анализа безопасности.

Urx — это инструмент командной строки, предназначенный для сбора URL из OSINT-архивов, таких как Wayback Machine и Common Crawl. Создан на Rust для эффективности, он использует асинхронную обработку для быстрого выполнения запросов к нескольким источникам данных. Этот инструмент упрощает процесс получения информации об URL для заданного домена, предоставляя полный набор данных, который может использоваться для различных целей, включая тестирование безопасности и анализ.

Возможности

  • Извлечение URL из нескольких источников параллельно (Wayback Machine, Common Crawl, OTX, Arquivo.pt)
  • По умолчанию работает без ключей: Wayback, Common Crawl, OTX, Arquivo.pt и URLScan (анонимно) — все работают без API-ключа
  • Поддержка ротации API-ключей для провайдеров VirusTotal и URLScan для снижения ограничений скорости
  • Фильтрация результатов по расширениям файлов, шаблонам или предустановленным наборам (например, "no-image" для исключения изображений)
  • Нормализация и дедупликация URL: сортировка параметров запроса, удаление завершающих слешей и объединение семантически идентичных URL
  • Поддержка нескольких форматов вывода: обычный текст, JSON, CSV
  • Поддержка прямого ввода из файлов: чтение URL непосредственно из WARC-файлов, сжатых файлов URLTeam и текстовых файлов
  • Вывод результатов в консоль или файл, а также потоковая передача через stdin для интеграции в конвейеры
  • Тестирование URL:
    • Фильтрация и проверка URL на основе HTTP-статусов и шаблонов.
    • Извлечение дополнительных ссылок из собранных URL
  • Кэширование и инкрементальное сканирование:
    • Локальное кэширование SQLite или удалённое Redis для избежания повторного сканирования доменов
    • Инкрементальный режим для обнаружения только новых URL после последнего сканирования
    • Настраиваемое время жизни кэша и автоматическая очистка устаревших записей

Preview

Установка

Из Cargo

root@kitploit:~
# https://crates.io/crates/urx
cargo install urx

Из Homebrew

root@kitploit:~
# https://formulae.brew.sh/formula/urx
brew install urx

Из исходников

root@kitploit:~
git clone https://github.com/hahwul/urx.git
cd urx
cargo build --release

Скомпилированный бинарник будет доступен в target/release/urx.

Из Docker

ghcr.io/hahwul/urx

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

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

root@kitploit:~
# Сканирование одного домена
urx example.com

# Сканирование нескольких доменов
urx example.com example.org

# Сканирование доменов из файла
cat domains.txt | urx

Параметры

root@kitploit:~
Usage: urx [OPTIONS] [DOMAINS]...

Arguments:
  [DOMAINS]...  Домены для извлечения URL

Options:
  -c, --config <CONFIG>           Файл конфигурации для загрузки
      --provider-config <PATH>    Отдельный файл конфигурации провайдера, содержащий только API-ключи (по умолчанию: $XDG_CONFIG_HOME/urx/provider-config.toml). CLI/env > provider-config > main config.
  -h, --help             Показать справку
  -V, --version          Показать версию

Параметры ввода:
      --files <FILES>...        Чтение URL напрямую из файлов (поддерживаются WARC, сжатые файлы URLTeam и текстовые файлы)
      --domain-list <PATH>      Файл с доменами, разделёнными переводами строк (повторяемый; объединяется с позиционными DOMAINS и stdin; допускаются комментарии с `#`)

Параметры вывода:
  -o, --output <OUTPUT>          Файл для записи результатов
      --output-dir <PATH>        Запись одного файла на домен в указанную директорию (расширение соответствует --format). Совместим с --output / stdout.
  -f, --format <FORMAT>          Формат вывода (например, "plain", "json", "csv") [по умолчанию: plain]
      --merge-endpoint   Объединение конечных точек с одинаковым путём и слияние параметров URL
      --normalize-url    Нормализация URL для лучшей дедупликации (сортировка параметров запроса, удаление завершающих слешей)

Параметры провайдеров:
      --providers <PROVIDERS>
          Используемые провайдеры (через запятую, например, "wayback,cc,otx,arquivo,vt,urlscan") [по умолчанию: wayback,cc,otx]
      --exclude-providers <EXCLUDE_PROVIDERS>
          Исключаемые провайдеры (через запятую). Переопределяет --providers / --all-providers при конфликте.
      --all-providers
          Включить всех поддерживаемых провайдеров. Провайдеры, требующие API-ключ, активируются только при наличии ключа.
      --list-providers
          Вывести список всех поддерживаемых провайдеров и завершить работу.
      --subs
          Включить поддомены при поиске
      --cc-index <CC_INDEX>
          Индекс Common Crawl для использования; принимает список через запятую для параллельного запроса нескольких индексов (например, `CC-MAIN-2026-17,CC-MAIN-2025-51`). `latest` (по умолчанию) определяет новейший через collinfo.json. [по умолчанию: latest]
      --wayback-from <DATE>
          Ограничить результаты Wayback Machine снимками, сделанными не ранее DATE (YYYY/YYYYMM/YYYYMMDD/YYYYMMDDhhmmss)
      --wayback-to <DATE>
          Ограничить результаты Wayback Machine снимками, сделанными не позднее DATE (тот же формат, что и --wayback-from)
      --vt-api-key <VT_API_KEY>
          API-ключ для VirusTotal (можно использовать несколько раз для ротации, также можно задать через переменную окружения URX_VT_API_KEY с ключами через запятую)
      --urlscan-api-key <URLSCAN_API_KEY>
          Опциональный API-ключ для Urlscan; провайдер также работает анонимно (ограничение ~30 запросов/мин на IP). Можно использовать несколько раз для ротации, или через URX_URLSCAN_API_KEY (ключи через запятую)
      --github-api-key <GITHUB_API_KEY>
          Персональный токен доступа для провайдера GitHub Code Search (также читается из URX_GITHUB_API_KEY, через запятую для ротации)

Параметры обнаружения:
      --exclude-robots   Исключить обнаружение robots.txt
      --exclude-sitemap  Исключить обнаружение sitemap.xml

Параметры отображения:
  -v, --verbose       Подробный вывод
      --silent        Тихий режим (без вывода)
      --no-progress   Без индикатора прогресса
      --show-sources  Пометить выходные URL именами провайдеров, которые их вернули
      --stats         Вывести сводку по каждому провайдеру в stderr по окончании работы

Параметры фильтрации:
  -p, --preset <PRESET>
          Предустановки фильтрации (например, "no-resources,no-images,no-audio,only-js,only-style")
  -e, --extensions <EXTENSIONS>
          Фильтр URL: оставить только с указанными расширениями (через запятую, например, "js,php,aspx")
      --exclude-extensions <EXCLUDE_EXTENSIONS>
          Фильтр URL: исключить с указанными расширениями (через запятую, например, "html,txt")
      --patterns <PATTERNS>
          Фильтр URL: оставить только содержащие указанные шаблоны (через запятую)
      --exclude-patterns <EXCLUDE_PATTERNS>
          Фильтр URL: исключить содержащие указанные шаблоны (через запятую)
      --show-only-host
          Показывать только хост из URL
      --show-only-path
          Показывать только путь из URL
      --show-only-param
          Показывать только параметры из URL
      --min-length <MIN_LENGTH>
          Минимальная длина URL для включения
      --max-length <MAX_LENGTH>
          Максимальная длина URL для включения
      --strict
          Принудительная точная проверка хоста (по умолчанию)

Сетевые параметры:
      --network-scope <NETWORK_SCOPE>  Управление, к каким компонентам применяются сетевые настройки (all, providers, testers или providers,testers) [по умолчанию: all]
      --proxy <PROXY>                  Использовать прокси для HTTP-запросов (формат: <http://proxy.example.com:8080>)
      --proxy-auth <PROXY_AUTH>        Учётные данные для аутентификации прокси (формат: username:password)
      --insecure                       Пропустить проверку SSL-сертификата (принимать самоподписанные сертификаты)
      --random-agent                   Использовать случайный User-Agent для HTTP-запросов
      --timeout <TIMEOUT>              Тайм-аут запроса в секундах [по умолчанию: 120]
      --retries <RETRIES>              Количество повторных попыток для неудавшихся запросов [по умолчанию: 2]
      --parallel <PARALLEL>            Максимальное количество доменов, обрабатываемых параллельно на один провайдер (и параллельные тесты URL); настройка --rate-limit провайдера делится между ними [по умолчанию: 5]
      --rate-limit <RATE_LIMIT>        Ограничение скорости (запросов в секунду)
      --rate-limit-by <PAIRS>          Переопределение ограничения скорости для отдельных провайдеров (например, `vt=1,wayback=10`); для неперечисленных провайдеров используется --rate-limit
      --max-time <MAX_TIME>            Глобальное ограничение времени перечисления провайдеров в секундах (0 = без ограничений) [по умолчанию: 0]

Параметры тестирования:
      --check-status
          Проверить HTTP-статус собранных URL [алиасы: ----cs]
      --include-status <INCLUDE_STATUS>
          Включить URL с определёнными HTTP-статусами или шаблонами (например, --is=200,30x) [алиасы: ----is]
      --exclude-status <EXCLUDE_STATUS>
          Исключить URL с определёнными HTTP-статусами или шаблонами (например, --es=404,50x,5xx) [алиасы: ----es]
      --extract-links
          Извлечь дополнительные ссылки из собранных URL (требует HTTP-запросов)

Примеры

root@kitploit:~
# Сохранение результатов в файл
urx example.com -o results.txt

# Вывод в формате JSON
urx example.com -f json -o results.json

# Фильтрация только JavaScript-файлов
urx example.com -e js

# Исключение HTML и текстовых файлов
urx example.com --exclude-extensions html,txt

# Фильтрация по конечным точкам API
urx example.com --patterns api,v1,graphql

# Исключение определённых шаблонов
urx example.com --exclude-patterns static,images

# Использование предустановки фильтра (аналогично --exclude-extensions=png,jpg,.....)
urx example.com -p no-images

# Использование определённых провайдеров
urx example.com --providers wayback,otx

# Добавление провайдера Arquivo.pt без ключа (португальский веб-архив)
urx example.com --providers wayback,cc,otx,arquivo

# URLScan работает без ключа (анонимно, с ограничением скорости); ключ только увеличивает лимит
urx example.com --providers urlscan

# Использование провайдеров VirusTotal и URLScan
# 1. Явное добавление провайдеров (с API-ключами через командную строку)
urx example.com --providers=vt,urlscan --vt-api-key=*** --urlscan-api-key=***

# 2. Использование переменных окружения для API-ключей
URX_VT_API_KEY=*** URX_URLSCAN_API_KEY=*** urx example.com --providers=vt,urlscan

# 3. Автоматическое включение: провайдеры добавляются автоматически при указании API-ключей
urx example.com --vt-api-key=*** --urlscan-api-key=*** # Не нужно указывать в --providers

# 4. Ротация нескольких API-ключей (для снижения ограничений скорости)
# Использование повторяющихся флагов для нескольких ключей
urx example.com --vt-api-key=key1 --vt-api-key=key2 --vt-api-key=key3

# Использование переменных окружения с ключами через запятую
URX_VT_API_KEY=key1,key2,key3 URX_URLSCAN_API_KEY=ukey1,ukey2 urx example.com

# Комбинирование флагов CLI и переменных окружения (ключи CLI используются в первую очередь)
URX_VT_API_KEY=env_key1,env_key2 urx example.com --vt-api-key=cli_key1 --vt-api-key=cli_key2

# URL из robots.txt и sitemap.xml включены по умолчанию

# Исключение URL из файлов robots.txt
urx example.com --exclude-robots

# Исключение URL из sitemap
urx example.com --exclude-sitemap

# Включение поддоменов
urx example.com --subs

# Проверка статуса собранных URL
urx example.com --check-status

# Чтение URL напрямую из текстового файла
urx --files urls.txt

# Комбинирование ввода из файла с фильтрацией
urx --files urls.txt --patterns api,admin -f json

# Извлечение дополнительных ссылок из собранных URL
urx example.com --extract-links

# Сетевые настройки
urx example.com --proxy http://localhost:8080 --timeout 60 --parallel 10 --insecure

# Расширенная фильтрация
urx example.com -e js,php --patterns admin,login --exclude-patterns logout,static --min-length 20

# Фильтрация на основе HTTP-статусов
urx example.com --include-status 200,30x,405 --exclude-status 20x

# Отключение проверки хоста
urx example.com --strict false

# Нормализация и дедупликация URL
# Нормализация URL: сортировка параметров запроса и удаление завершающих слешей
urx example.com --normalize-url

# Комбинирование нормализации с объединением конечных точек для полной дедупликации
urx example.com --normalize-url --merge-endpoint

# Нормализация URL с вводом из файла
urx --files urls.txt --normalize-url

Кэширование и инкрементальное сканирование

Urx поддерживает кэширование для повышения производительности при повторных сканированиях и инкрементальное сканирование для обнаружения только новых URL.

root@kitploit:~
# Включение кэширования с SQLite (по умолчанию)
urx example.com --cache-type sqlite --cache-path ~/.urx/cache.db

# Использование Redis для распределённого кэширования
urx example.com --cache-type redis --redis-url redis://localhost:6379

# Инкрементальное сканирование — показать только новые URL с момента последнего сканирования
urx example.com --incremental

# Установка времени жизни кэша (TTL) 12 часов
urx example.com --cache-ttl 43200

# Полное отключение кэширования
urx example.com --no-cache

# Комбинирование инкрементального сканирования с фильтрами
urx example.com --incremental -e js,php --patterns api

# Файл конфигурации с настройками кэширования
urx -c example/config.toml example.com

Варианты использования кэширования

root@kitploit:~
# Ежедневный мониторинг — оповещать только о новых URL
urx target.com --incremental --silent | notify-tool

# Эффективная обработка списков доменов
cat domains.txt | urx --incremental --cache-ttl 3600 > new_urls.txt

# Сканирование распределённой команды с Redis
urx example.com --cache-type redis --redis-url redis://shared-cache:6379

# Быстрые повторные сканирования во время разработки
urx test-domain.com --cache-ttl 300  # Кэш на 5 минут для быстрых итераций

Интеграция с другими инструментами

Urx хорошо работает в конвейерах с другими инструментами безопасности и разведки:

root@kitploit:~
# Поиск доменов, затем обнаружение URL
echo "example.com" | urx | grep "login" > potential_targets.txt

# Комбинирование с другими инструментами
cat domains.txt | urx --patterns api | other-tool

Вдохновение

Urx был вдохновлён gau (GetAllUrls) — инструментом, который получает известные URL из AlienVault's Open Threat Exchange, Wayback Machine и Common Crawl. Хотя Urx имеет схожую базовую функциональность, он был написан с нуля на Rust с акцентом на производительность, параллелизм и расширенные возможности фильтрации.

Вклад

Urx — это проект с открытым исходным кодом, сделанный с ❤️. Если вы хотите внести вклад в этот проект, пожалуйста, ознакомьтесь с CONTRIBUTING.md и отправляйте Pull-Request с вашими крутыми идеями.

Скачать инструмент