jorgealonsodev/net-audit-scanner

GitHub: jorgealonsodev/net-audit-scanner

一款 Rust 编写的局域网安全审计命令行工具,集设备发现、服务指纹识别、CVE 漏洞关联和默认口令检测于一体,帮助非专业人员快速掌握内网资产安全状况。

Stars: 0 | Forks: 0

# netascan ![netascan](https://raw.githubusercontent.com/jorgealonsodev/net-audit-scanner/main/net-audit-scan.png) 网络安全审计 CLI。通过单个命令发现局域网中的设备、进行服务指纹识别、检查已知 CVE、测试默认凭据,并生成 HTML/JSON 报告。 **[文档](https://jorgealonsodev.github.io/net-audit-scanner)** ``` netascan scan --network 192.168.1.0/24 ``` ## 安装说明 ### 预编译二进制文件 (推荐) 从 [Releases 页面](https://github.com/jorgealonsodev/net-audit-scanner/releases)下载最新版本。 **Linux (tar.gz)** ``` tar -xzf netascan-v0.1.0-x86_64-unknown-linux-gnu.tar.gz sudo mv netascan /usr/local/bin/ ``` **macOS (tar.gz)** ``` tar -xzf netascan-v0.1.0-aarch64-apple-darwin.tar.gz sudo mv netascan /usr/local/bin/ ``` ### Debian / Ubuntu (.deb) ``` wget https://github.com/jorgealonsodev/net-audit-scanner/releases/latest/download/netascan-v0.1.0-amd64.deb sudo dpkg -i netascan-v0.1.0-amd64.deb ``` ### 从源码构建 需要 Rust stable (`rustup update stable`),在 Linux 上还需要 `libpcap-dev`。 ``` # Linux sudo apt-get install -y libpcap-dev # Build cargo build --release sudo mv target/release/netascan /usr/local/bin/ ``` ## 快速开始 ``` # 扫描本地网络(自动检测接口) sudo netascan scan # 扫描特定范围并打开 HTML 报告 sudo netascan scan --network 192.168.1.0/24 --report html # 将最近一次扫描查看为报告 netascan report --last # 启动 Web 仪表板(上传 + 浏览报告) netascan serve ``` ## 命令 ### `scan` 发现主机、扫描端口、丰富 CVE 和供应商信息、测试默认凭据并输出结果。 | 标志 | 默认值 | 描述 | |------|---------|-------------| | `--network` / `-n` | `auto` | CIDR 范围,或 `auto` 从活动接口自动检测 | | `--target` | — | 用于深度扫描的单个 IP | | `--port-range` | `top-1000` | 端口集:`top-1000`、`full` (1–65535),或自定义范围 | | `--full` | off | 等同于 `--port-range full` | | `--concurrency` | 512 | 最大并行连接数 | | `--timeout-ms` | 1500 | TCP 连接超时 (毫秒) | | `--banner-timeout-ms` | 500 | Banner 抓取超时 (毫秒) | | `--report` / `-r` | `html` | 输出格式:`html` 或 `json` (文件),并在标准输出打印表格 | | `--json` | off | 将 JSON 打印到标准输出,而不是表格 | | `--no-cve` | off | 跳过 CVE 丰富 | | `--no-update` | off | 使用内嵌的 OUI 数据库代替缓存 | ### `report` 从已保存的扫描中生成或查看报告。 ``` netascan report --last # most recent scan netascan report --format html # html (default) or json ``` ### `serve` 在 `http://localhost:3000` 启动本地 Web 仪表盘。上传扫描 JSON 并在浏览器中浏览 HTML 报告。 ``` netascan serve netascan serve --port 8080 ``` ### `update` 刷新用于 MAC 指纹识别的 OUI (供应商) 数据库。 ``` netascan update netascan update --source https://your-mirror.example.com/manuf ``` ## 扫描过程 ``` discover hosts (ICMP + ARP + TCP) ↓ scan ports (top-1000 by default) ↓ grab banners → infer OS hint (TTL + banner) ↓ enrich with OUI vendor data ↓ enrich with CVE data (NVD API, cached in ~/.cache/netascan/cve.db) ↓ test default credentials (HTTP Basic, FTP, Telnet) ↓ persist to ~/.cache/netascan/scans/ ↓ output (table / JSON / HTML report) ``` ## 配置 配置文件:`~/.config/netascan/config.toml` (首次运行时使用默认值创建)。 ``` [scan] default_network = "auto" port_range = "top-1000" timeout_ms = 1500 banner_timeout_ms = 500 concurrency = 512 [cve] nvd_api_key = "" # optional — raises NVD rate limit cache_ttl_hours = 24 [report] default_format = "html" open_browser = false [credentials_check] enabled = true custom_list = "" # path to a custom credentials file ``` **NVD API key** (可选但推荐):在 获取并在配置中设置,或将其作为 `NVD_API_KEY` 环境变量。 ## 扫描持久化 每次扫描都会以 JSON 格式保存在 `~/.cache/netascan/scans/` 下。使用 `report --last` 加载最近的一次扫描,而无需重新扫描。 ## 环境要求 | 要求 | 备注 | |-------------|-------| | Rust 2024 edition | `rustup update stable` | | Root / CAP_NET_RAW | 仅用于 ICMP 扫描。TCP+ARP 回退可在无此权限下工作。 | | Internet 访问 | 通过 NVD API 进行 CVE 丰富 (可选,可通过 `--no-cve` 跳过) | ## 开发 ``` cargo test # run all tests cargo clippy --all-targets # lint cargo bench # benchmarks (criterion) ``` 需要网络访问的测试被标记为 `#[ignore]` 并默认跳过。 ## 许可证 MIT
标签:CVE漏洞扫描, Facebook API, HTML/JSON报告, IoT设备安全, Linux安全工具, NVD漏洞库, Python安全, Rust编程语言, Web仪表盘, 可视化界面, 后门检测, 命令行工具(CLI), 安全基线检查, 局域网安全, 局域网设备发现, 开源安全工具, 插件系统, 数据统计, 端口扫描, 系统管理员工具, 网络安全扫描器, 网络审计, 网络资产盘点, 设备指纹识别, 逆向工程平台, 通知系统, 默认凭证测试