首页 渗透工具 正文

RXScan 上手教程:Rust 开发的一体化网络侦察与 OSINT 情报搜索工具

摘要

做渗透测试或者资产梳理时,手上往往要备好几样工具:一个端口扫描器、一个服务识别工具、再加几个 OSINT 用户名搜索脚本,结果格式还互不兼容。RXScan 的思路是把这条链路收进一个命令行工具里——网络侦察、公开来源搜索、调查关联、证据持久化全部通过同一个 CLI 完成,并且全程用 Rust 编写,兼顾性能与内存安全。 与常见的扫到开放端口就猜服务的...

做渗透测试或者资产梳理时,手上往往要备好几样工具:一个端口扫描器、一个服务识别工具、再加几个 OSINT 用户名搜索脚本,结果格式还互不兼容。RXScan 的思路是把这条链路收进一个命令行工具里——**网络侦察、公开来源搜索、调查关联、证据持久化**全部通过同一个 CLI 完成,并且全程用 Rust 编写,兼顾性能与内存安全。

与常见的"扫到开放端口就猜服务"的工具不同,RXScan 在报告口径上相当克制:端口号不代表服务身份,HTTP 200 不代表账户存在,扫描覆盖不完整也不会被误报成"目标已消失"。这种证据优先的设计,让它在**渗透测试前期侦察和安全运维资产盘点场景中都显得靠谱。下面把这款网络侦察工具**的核心能力、安装方式和实战命令一次讲清楚。

RXScan 项目 Logo

产品介绍:一个 CLI 打通侦察全流程

RXScan(Raw Excess Scan)是一款基于 Rust 的开源**安全扫描工具**,目前主要面向 Linux 平台。它的产品定位可以概括为三句话:

  • 发现主机和端口,识别**观测到的**服务,而不是按端口号猜服务;
  • 收集有边界的协议证据与 Web 证据,包括 HTTP、TLS、DNS 的规范化观测;
  • 内置公开来源(OSINT)搜索与调查关联管道,结果可持久化、可比对、可离线分析。

RXScan 提供三个主要入口,覆盖了侦察工作的完整闭环:

rxscan TARGET        # 网络侦察扫描
rxscan search ...    # 公开来源搜索
rxscan investigate ...  # 调查并关联公开发现

整个工具的设计哲学是"**从已收集的证据中挖掘更多情报,而不是为了扫描而制造更多流量**"。对授权评估来说,这意味着更少的网络噪音和更干净的证据链。

核心功能:端口扫描、服务识别与 OSINT 搜索

TCP/UDP 端口扫描

默认扫描使用 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

全端口扫描用 --all-ports,想提前看清扫描计划则用 --explain:

rxscan example.test --all-ports
rxscan example.test --explain

TCP 扫描支持三种模式,connect 是目前跨平台的可移植路径;在 Linux 上且具备所需能力时,可以对 IPv4 目标启用原始 syn 扫描。当 SYN 路径不可用,RXScan 会明确报告回退方案,不会悄悄把 connect 扫描伪装成 SYN 结果:

rxscan example.test --scan-mode auto
rxscan example.test --scan-mode connect
rxscan example.test --scan-mode syn

UDP 扫描需要显式开启,采用有界的原生探测,目前覆盖 DNS、NTP、SSDP 等协议的小型探测包。特别值得肯定的一点是:UDP 无响应不会被武断报成开放或关闭,工具会如实保留 open|filtered 的不确定性。

rxscan example.test --udp

基于协议行为的服务识别

RXScan 依据实际观测到的协议行为识别服务,而非简单的"22 就是 SSH"式端口映射。当前原生识别已覆盖常见协议:

  • SSH:身份信息
  • HTTP / HTTPS:端点、页面标题、响应头
  • TLS:握手与证书事实(注意:不是穷尽式密码套件扫描器)
  • FTP、SMTP:横幅与协议响应
  • Redis、MySQL、PostgreSQL、MongoDB:数据库服务指纹
  • SMB、RDP:主机与远程服务
  • MQTT:物联网消息协议

观测结果按证据强度输出产品/版本、横幅、HTTP 端点与标题、TLS 证书信息、SSH 身份等规范化技术证据。证据不足时,服务保持 unknown,不会硬猜。这些识别探测均不需要身份验证。

OSINT 公开来源搜索

search 子命令用于按用户名检索公开平台:

rxscan search --username exampleuser

常规输出只展示有用的正面与不确定发现,不会刷屏式打印每个否定结果。发现结果按证据强度分为三类标签:

标签 含义
Profile 观测到的、与身份直接对应的公开个人资料
Resource 观测到的身份相关资源,不一定是公开个人资料
Candidate 证据较弱、尚未确认的身份相关位置

输出示例:

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

通用提供商主页或 API 端点不会被包装成"已确认资料 URL";被封锁、速率受限、未知、错误、未扫描等提供商状态也各自保留,不会偷换成假阴性。想看完整结果和执行细节,追加参数即可:

rxscan search --username exampleuser --all
rxscan search --username exampleuser --explain

调查与证据关联

investigate 把公开发现结果送入关联管道,默认聚焦账户、有效 URL、置信度和有意义的关系,静态 JS、样式表、图片这类次要 Web 资源不会喧宾夺主:

rxscan investigate --username exampleuser

调查默认保持**被动模式**——通过公开证据发现的网络目标不会自动触发扫描,是否扩大接触范围由操作者决定。

证据模型:观测与解释的严格区分

RXScan 把观测结果存为类型化证据,供报告、调查、项目图、历史比对等路径复用。项目文档里明确了几条铁律,也是它区别于普通扫描器的地方:

  1. 仅凭端口号不能确立服务身份;
  2. 仅凭 HTTP 200 不能确立公开账户存在;
  3. UDP 静默是不确定性,不是结论;
  4. 弱身份证据不会自动合并实体;
  5. 共享基础设施可以建立关系,但不等于身份相同;
  6. 覆盖不完整不会被当作实体已消失的证明;
  7. 展示层的过滤不会删除底层机器证据。

对写报告的人来说,这套证据模型意味着结论都有据可查,复盘时不会被"当时为什么报这个"困扰。

HTTP、TLS、DNS 有界观测

确认 Web 服务后,RXScan 可收集有界的 HTTP 观测:状态与标头、重定向、页面标题、内容类型与响应大小、Cookie、链接、表单、脚本、robots.txt、sitemap.xml;工作流还允许有界爬取、基线检查、托管内容发现和上下文 GET 查询跟进。

DNS 观测支持 A、AAAA、CNAME、MX、NS、TXT、PTR、SRV 记录的有界收集;TLS 观测记录握手与证书证据。两者的定位都是**证据采集**而非穷尽式专项扫描。

RXScan Web Dashboard 运行界面

范围控制与有界执行

所有网络活动都受范围策略约束,显式声明允许与排除目标:

rxscan example.test --scope example.test
rxscan example.test --exclude api.example.test

越界工作会在发生任何网络接触之前被拒绝。范围强制只是减少误伤的保险,不能替代操作者取得授权的责任。

RXScan 对调度、并发、重试、执行时间、主机扩展、证据收集和后续跟进全部设有上限。当截止时间等限制中断任务时,已完成的证据会被保留,未完成的部分明确说明,绝不会把半截运行包装成"扫描完成"——这对大网段扫描尤其重要。

输出与持久化

人类可读输出适合交互使用,颜色输出可按需控制:

rxscan --color auto example.test
rxscan --color always example.test
rxscan --color never example.test

机器可读输出独立提供,不含终端 ANSI 样式,方便接进自动化流水线:

rxscan example.test --format jsonl
rxscan example.test --output scan.jsonl

扫描结果可以写入检查点,配合离线工作流做报告、分析和差异比对:

rxscan example.test --checkpoint scan.rxscan
rxscan report scan.rxscan
rxscan diff old.rxscan new.rxscan

diff 的历史比对是覆盖感知的:如果后一次扫描没覆盖相同的目标或证据面,仅凭"没扫到"不会被解释成资产已移除。

技术优势:为什么说它适合严谨的授权评估

  • 证据优先的判定逻辑:不猜服务、不猜账户、不把沉默当结论,扫描结果的每一条都有证据等级支撑。
  • Rust 带来的工程底子:内存安全 + 高并发,配合 --locked 锁定的依赖构建,构建产物可复现。
  • 有界执行与范围强制:扫描行为可控、可解释,--explain 能看到计划器与策略细节。
  • 观测与解释分层:展示层的过滤不动底层证据,机器输出与人读输出同源。
  • 持久化与差分能力:检查点、报告、覆盖感知的 diff,让周期性的资产变化追踪有据可依。

运行环境方面,RXScan 目前面向 Linux。原始 SYN 扫描是 Linux/IPv4 专属能力,其余扫描路径和协议功能各有对应要求,用一条命令即可检查当前构建/运行时支持什么:

rxscan capabilities

已知限制也写得很坦白:没有 Nmap 式的穷尽操作系统指纹库,没有 NSE 等价的脚本生态,SYN 仅限 Linux IPv4,TLS 不做穷尽式密码套件枚举,DNS 不提供专用 DNS 扫描器的全部行为,Windows 和 macOS 暂不支持。项目还很年轻,协议覆盖和指纹语料仍在积累。

使用方式与部署教程

环境要求

  • Rust 1.85 或更新版本
  • 当前支持的运行平台为 Linux

从源码安装(推荐)

git clone https://github.com/DarkRX1/RXScan.git
cd RXScan
cargo install --path . --locked

安装后验证版本与帮助:

rxscan --version
rxscan --help

三种典型用法速查

常规网络侦察扫描:

rxscan example.test

按用户名做 OSINT 搜索:

rxscan search --username exampleuser

调查并关联公开发现:

rxscan investigate --username exampleuser

从源码构建与项目自检

cargo build --release --locked
./target/release/rxscan --help

完整项目检查流程:

cargo fmt --check
cargo check --all-targets --all-features
cargo clippy --all-targets --all-features -- -D warnings
cargo test --locked
git diff --check
cargo run -- search lint

网络测试应使用确定性的本地夹具,而不是依赖公共互联网服务。

版本说明

已发布版本见 GitHub Releases 页面。历史上有两个细节值得留意:v1.0.0 与 v1.0.1 标签发布时误带了 0.1.0 的 Cargo 包元数据,这两个标签按原样保留;**v1.0.2 是第一个版本号正确的 1.x 发布**。master 分支可能包含比最新发布更新的改动。

应用场景

  • 渗透测试前期侦察:在获得书面授权后,对目标资产做主机发现、端口扫描、服务识别和 Web 证据采集,输出可直接进报告。
  • 攻击面管理:用 --checkpoint 定期扫描自有资产,rxscan diff 做覆盖感知的差异比对,及时发现新增暴露面。
  • OSINT 画像调查:通过 search 与 investigate 梳理目标用户名在公开平台的痕迹,置信度分级避免误关联。
  • 安全运维基线核查:周期性验证服务指纹、TLS 证书事实和 DNS 记录是否符合基线,变更可回溯。
  • 安全研究与学习:Rust 编写的现代网络工具源码,适合研究协议识别、并发调度与证据建模的实现方式。

总结

RXScan 的价值不在于扫得多快,而在于**每句话都有证据**:端口扫描保留不确定性、服务识别依据协议行为、OSINT 结果按置信度分级、历史比对区分"没扫到"和"已消失"。对于需要严谨证据链的授权评估工作,这种克制比花哨的功能列表更有说服力。

项目仍在快速迭代,想要协议覆盖广度可以选择它与传统扫描器互补使用;想要干净、可持久化、可解释的侦察流程,RXScan 值得装进工具箱。仓库地址:https://github.com/DarkRX1/RXScan,发布版本见 GitHub Releases。

收藏 0
评论
博主关闭了评论
友情链接