
Rust CLI для ограниченной сетевой разведки: обнаружение TCP/UDP портов, идентификация сервисов, сбор данных DNS/TLS/HTTP и поиск имён пользователей в открытых источниках с корреляцией.
Движок разведки и сбора доказательств
Ограниченная разведка и корреляция доказательств на Rust.
RXScan объединяет сетевую разведку, поиск по публичным источникам, расследование и корреляцию доказательств в одном CLI.
Он умеет обнаруживать хосты и порты, идентифицировать наблюдаемые сервисы, собирать ограниченные доказательства по протоколам и веб-ресурсам, искать в публичных провайдерах, коррелировать находки и сохранять результаты для последующего анализа и сравнения.
RXScan намеренно консервативен в том, о чём сообщает. Номер порта не идентифицирует сервис, успешный HTTP-ответ сам по себе не подтверждает учётную запись, а неполный охват сохраняется отдельно от отрицательного результата.
Сборка и установка из репозитория:
git clone https://github.com/DarkRX1/RXScan.git
cd RXScan
cargo install --path . --locked
Проверьте установленную сборку:
rxscan --version
rxscan --help
Запустите обычное разведывательное сканирование:
rxscan example.test
Поиск в открытых источниках:
rxscan search --username exampleuser
Исследуйте и сопоставляйте публичные находки:
rxscan investigate --username exampleuser
Это три основные точки входа:
rxscan TARGET
rxscan search ...
rxscan investigate ...
По умолчанию сканирование использует рабочий процесс recon, уровень 3 и сбалансированные настройки выполнения.
rxscan example.test
Укажите порты, если требуется точный выбор портов:
rxscan example.test --ports 22,80,443
rxscan example.test --ports 1-1024
rxscan example.test --ports 22,80,443,8000-8100
Сканируйте весь диапазон TCP-портов:
rxscan example.test --all-ports
Явное обнаружение по UDP:
rxscan example.test --udp
Показать действующий план и дополнительные сведения о выполнении:
rxscan example.test --explain
RXScan поддерживает:
rxscan example.test --scan-mode auto
rxscan example.test --scan-mode connect
rxscan example.test --scan-mode syn
TCP connect-сканирование — это переносимый путь сканирования, который в настоящее время используется RXScan на поддерживаемой платформе.
Сырое SYN-сканирование доступно для IPv4 в Linux при наличии требуемой возможности. Когда запрошенный SYN-путь не может быть использован, RXScan сообщает о фактическом резервном варианте, а не представляет молча connect-сканирование как SYN.
UDP-сканирование использует ограниченные нативные пробы и остаётся опциональным.
Текущее обнаружение UDP с учётом протокола включает небольшие пробы для таких сервисов, как DNS, NTP и SSDP.
UDP-молчание не сообщается как доказательство того, что порт открыт или закрыт. RXScan сохраняет результирующую неопределённость open|filtered.
Определение ОС является явным и подтверждённым доказательствами, никогда не догадкой на основе одной подсказки:
rxscan example.test --os
--os запускает ограниченный план проверок для каждого хоста в области
охвата (не более 6 обычных TCP/ICMP-проб, повторно используя порты, которые
сканирование уже знает) и объясняет каждого кандидата: совпавшие
доказательства, противоречащие доказательства, недоступные доказательства,
покрытие и происхождение. Без возможности работы с необработанными пакетами
он честно деградирует до пассивных доказательств с пониженной уверенностью.
Unknown является полноценным результатом, когда доказательств
недостаточно. См. docs/OS_FINGERPRINTING.md для описания модели
доказательств, ограничений и текущего состояния корпуса.
RXScan идентифицирует сервисы по наблюдаемому поведению протокола, а не назначает сервис исключительно по номеру порта.
Текущая нативная идентификация охватывает распространённые протоколы, включая:
В зависимости от протокола и доступных доказательств наблюдения могут включать информацию о продукте/версии, баннеры, HTTP-эндпоинты и заголовки, сведения о TLS-сертификатах, идентификационную информацию SSH и нормализованные технологические доказательства.
Неизвестные сервисы остаются неизвестными, когда у RXScan недостаточно доказательств для их идентификации.
Для этих идентификационных проб аутентификация не требуется.
Поиск по имени пользователя доступен через:
rxscan search --username exampleuser
Обычный вывод сосредоточен на полезных положительных и неопределённых находках вместо печати каждого отрицательного результата провайдера.
Находка может различать наблюдаемый профиль, другой наблюдаемый ресурс и неподтверждённое предполагаемое местоположение.
Например:
FINDINGS
✓ provider / exampleuser
Profile https://example.test/exampleuser
high · 94% · public profile
? another-provider / exampleuser
Candidate https://example.test/u/exampleuser
low · 25% · weak evidence
Метки выбраны намеренно:
| Метка | Значение |
|---|---|
Profile | обнаруженный публичный профиль, специфичный для данной личности |
Resource | обнаруженный ресурс, специфичный для данной личности, который не обязательно является публичным профилем |
Candidate | местоположение, специфичное для данной личности, которое не было подтверждено |
Общие домашние страницы провайдеров или конечные точки API не представляются как подтверждённые URL-адреса профилей.
RXScan также сохраняет результаты провайдеров, такие как blocked, rate-limited, unknown, error и unscanned, как отдельные категории, а не преобразует их в ложноотрицательные результаты.
Показать полный набор результатов для человека с помощью:
rxscan search --username exampleuser --all
Показать дополнительные сведения о выполнении и классификации с помощью:
rxscan search --username exampleuser --explain
Публичные находки могут быть переданы через конвейер расследования и корреляции RXScan:
rxscan investigate --username exampleuser
Представление по умолчанию сосредоточено на учётных записях, полезных URL-адресах, уровне достоверности и значимых связях.
Второстепенные веб-ресурсы, такие как статические JavaScript-файлы, таблицы стилей, шрифты и изображения, сохраняются, когда они относятся к лежащим в основе доказательствам, но не преобладают в отчёте по умолчанию, предназначенном для человека.
Детализированные представления могут раскрывать больше собранных данных о связях.
Расследование по умолчанию остаётся пассивным. Обнаружение сетевой цели на основе публичных доказательств не даёт автоматического разрешения и не запускает сетевое сканирование.
RXScan хранит наблюдения как типизированные доказательства, используемые в путях формирования отчётов, расследования, графа, истории и анализа.
По всему проекту намеренно соблюдаются несколько правил: