pinkythegawd/sysnet-scout

GitHub: pinkythegawd/sysnet-scout

一个轻量级跨平台的系统信息与网络扫描 CLI 工具,提供主机发现、端口扫描、指纹识别、风险评分及多格式报告导出能力。

Stars: 0 | Forks: 0

# SysNet Scout 跨平台系统信息与网络扫描工具。 由 **pinkythegawd (MikePinku)** 制作。 ## 功能特性 - 支持 Windows、Linux 和 Android (Termux) - 本地系统信息报告 - 使用 ping sweep 在 CIDR 网络上进行主机发现 - 具有可配置范围和并发性的 TCP 端口扫描 - 用于快速扫描的 Top-port 预设 - 扫描配置文件预设 (`quick`, `web`, `full`) - 用于主机和端口扫描的实时进度条 - DNS 和反向 DNS 解析命令 - 用于基准与当前扫描对比的比较模式 - 可选的服务指纹识别(基础 banner grabbing) - 信息性漏洞加固提示 - 内置风险评分(`low`, `medium`, `high`)及其原因 - 用于已保存报告的专用风险摘要命令 - 带有引导菜单的交互式 `start` 命令 - 一键 `demo` 模式,生成展示报告和仪表板 - 可选彩色终端输出及输出导出到文件 - 支持 JSON、TXT 和 HTML 报告导出 - 无需第三方运行时依赖 ## 环境要求 - Python 3.8+ ## 快速开始 ### Windows 一键安装(适合新手) 1. 打开项目文件夹。 2. 双击 `install.bat`。 3. 等待出现 `[SUCCESS] SysNet Scout is ready.`。 4. 然后使用 `scout.cmd` 运行命令。 示例: ``` scout.cmd info --json ``` 不带参数运行 `scout.cmd` 会打开快速命令菜单。 ### Linux 和 Termux 一键安装 1. 在项目文件夹中打开终端。 2. 赋予脚本执行权限。 3. 运行一次 install.sh。 4. 使用 scout.sh 执行日常命令。 ``` chmod +x install.sh scout.sh ./install.sh ./scout.sh info --json ``` 不带参数运行 `./scout.sh` 会打开快速命令菜单。 ### Termux 快速助手(推荐在 Android 上使用) 使用专用的助手脚本来安装 Termux 软件包、请求存储权限并运行安装程序: ``` chmod +x termux-setup.sh install.sh scout.sh ./termux-setup.sh ./scout.sh info --json ``` ### 直接从源码运行 ``` python -m sysnet_scout info --json ``` 如果您的软件包位于 `src/`,请使用: ``` PYTHONPATH=src python -m sysnet_scout info --json ``` 在 Windows PowerShell 中: ``` $env:PYTHONPATH="src"; python -m sysnet_scout info --json ``` ### 安装为命令 ``` pip install . sysnet-scout info ``` ### Windows 最简单的方法(PowerShell 和 cmd) 使用项目根目录下包含的启动器: ``` .\scout.cmd info --json .\scout.cmd scan-hosts --cidr 192.168.1.0/24 --json .\scout.cmd scan-ports --host 192.168.1.1 --top 20 ``` 在 cmd.exe 中: ``` scout.cmd info --json scout.cmd resolve --target github.com --json ``` ## 使用方法 ### 1) 系统信息 ``` sysnet-scout info sysnet-scout info --json ``` ### 2) 扫描子网中的存活主机 ``` sysnet-scout scan-hosts --cidr 192.168.1.0/24 sysnet-scout scan-hosts --cidr 192.168.1.0/24 --timeout 1200 --workers 128 --json ``` ### 3) 扫描开放的 TCP 端口 ``` sysnet-scout scan-ports --host 192.168.1.10 --ports 22,80,443 sysnet-scout scan-ports --host 192.168.1.10 --ports 1-1024 --timeout 0.3 --workers 300 --json sysnet-scout scan-ports --host 192.168.1.10 --top 20 sysnet-scout scan-ports --host 192.168.1.10 --profile web sysnet-scout scan-ports --host 192.168.1.10 --profile full sysnet-scout scan-ports --host 192.168.1.10 --profile web --fingerprint --hints ``` ### 4) 解析域名/IP 信息 ``` sysnet-scout resolve --target example.com --json sysnet-scout resolve --target 8.8.8.8 ``` ### 5) 将输出导出到文件 ``` sysnet-scout info --export reports/system_info.json sysnet-scout scan-hosts --cidr 192.168.1.0/24 --export reports/hosts.txt sysnet-scout scan-ports --host 192.168.1.10 --top 100 --export reports/ports.json sysnet-scout scan-ports --host 192.168.1.10 --profile web --export reports/web_scan.html ``` - `--export` 是 `--save` 的别名。 - 如果导出路径以 `.json` 结尾,则自动启用 JSON 模式。 - 如果导出路径以 `.txt` 结尾,则使用文本模式(除非您显式传递 `--json`)。 - 如果导出路径以 `.html` 结尾,则会生成带样式的 HTML 报告。 ### 6) 比较两次扫描(diff 模式) ``` sysnet-scout compare --baseline reports/hosts_day1.json --current reports/hosts_day2.json --json sysnet-scout compare --baseline reports/ports_old.json --current reports/ports_new.json --export reports/diff.html ``` ### 7) 进度条控制 - 在交互式终端中,`scan-hosts` 和 `scan-ports` 会自动启用进度条。 - 使用 `--no-progress` 禁用进度条。 ### 8) 指纹识别和加固提示 - 在 `scan-ports` 时添加 `--fingerprint` 以尝试对开放端口进行轻量级 banner 检测。 - 指纹识别包含针对常见服务的协议感知探测: - HTTP/HTTPS 类端口:状态行、server 头以及 HTML 标题(如果可用) - SSH:协议 banner - SMTP:问候语/EHLO 响应 - Redis:基本 `PING` 响应 - 在 `scan-ports` 时添加 `--hints` 以显示针对常见暴露服务的信息性加固提示。 - 这些提示是指导性的,并非漏洞证明。 - 端口扫描现在的输出中包含一个风险对象,其中包括评分、级别和原因。 示例: ``` sysnet-scout scan-ports --host 192.168.1.10 --profile web --fingerprint --hints --export reports/web_intel.html ``` ### 9) 从保存的报告中查看风险摘要 ``` sysnet-scout risk --report reports/ports.json --json sysnet-scout risk --report reports/ports.json --export reports/risk_card.html ``` ### 10) 跨多个报告的风险趋势 ``` sysnet-scout risk-trend --reports reports/ports_day1.json reports/ports_day2.json reports/ports_day3.json --json sysnet-scout risk-trend --reports reports/ports_day1.json reports/ports_day2.json --export reports/risk_trend.html ``` - 趋势分析会在可用时按 `timestamp` 自动对报告进行排序。 - 没有时间戳的文件将保持其输入顺序。 ### 11) 禁用颜色以获得纯文本终端输出 ``` sysnet-scout --no-color info ``` ### 12) 交互式开始菜单 ``` sysnet-scout start sysnet-scout start --choice info --json ``` - `start` 打开一个引导菜单以便快速使用。 - 使用 `--choice` 进行非交互式自动化操作。 ### 13) 演示模式(单命令展示) ``` sysnet-scout demo sysnet-scout demo --json ``` - 演示模式运行安全的本地扫描,并在 `reports/` 中生成示例产物。 - 包含 JSON 输出以及 `reports/demo_dashboard.html`。 ## Termux 注意事项 - 在 Termux 中安装 Python:`pkg install python` - 某些网络或 Android 限制可能会限制 ICMP ping 响应。 - 如果 ping 被阻止,端口扫描仍然可以正常工作。 - `termux-setup.sh` 脚本可以自动执行软件包检查(`curl`, `wget`)和存储设置。 ## VS Code 调试 - 启动配置文件包含在 `.vscode/launch.json` 中。 - 使用“运行和调试”并选择以下之一: - `SysNet Scout: info` - `SysNet Scout: scan-hosts` - `SysNet Scout: scan-ports` ## 运行测试 本项目使用 Python 内置的 `unittest` 框架。 在 Linux/Termux 上: ``` PYTHONPATH=src python -m unittest discover -s tests -v ``` 在 Windows PowerShell 上: ``` $env:PYTHONPATH="src"; python -m unittest discover -s tests -v ``` ## 持续集成 - GitHub Actions 工作流定义在 `.github/workflows/ci.yml` 中。 - 测试矩阵在 Linux 和 Windows 上运行,Python 版本包括 3.10、3.11 和 3.12。 - 流水线安装软件包并运行: ``` python -m unittest discover -s tests -v ``` ## 发布版本 - 发布工作流定义在 `.github/workflows/release.yml` 中。 - 它构建 sdist 和 wheel,并在发布 GitHub Release 时发布到 PyPI。 - 它通过 GitHub OIDC 使用 PyPI Trusted Publishing(工作流中无需 API token)。 PyPI 设置(一次性): 1. 在 PyPI 上创建项目 `sysnet-scout`(或如果可用则认领该名称)。 2. 在 PyPI 项目设置中,添加一个 Trusted Publisher: - Owner:您的 GitHub 账户或组织 - Repository:`CSINS by pinkythegawd` - Workflow name:`Release` - Environment:`pypi` 3. 在 GitHub 仓库设置中,确保已启用 Actions。 4. 创建一个 GitHub Release 以触发发布。 ## 免责声明 请仅对您拥有或经授权测试的系统 and 网络使用本工具。 ## 故障排除 (Windows) - 问题:PowerShell 提示 `scout.ps1` 的脚本执行被禁用。 解决方法:改用 `scout.cmd`,或者在 PowerShell 会话中绕过执行策略。 - 问题:`'uv' is not recognized`。 解决方法:使用 `powershell -ExecutionPolicy Bypass -c "irm https://astral.sh/uv/install.ps1 | iex"` 安装 uv。 - 问题:找不到 `sysnet_scout` 命令。 解决方法:从项目根目录运行,并使用 `scout.cmd ...` 或 `uv run --python 3.12 -m sysnet_scout ...`。
标签:Android Termux, Banner Grabbing, C2日志可视化, Cloudflare, DInvoke, DNS解析, Facebook API, MITRE ATT&CK, Ping Sweep, Python, TCP扫描, 后渗透, 实时处理, 并发处理, 开源项目, 批量测试, 指纹识别, 插件系统, 数据统计, 文档结构分析, 无后门, 无线安全, 漏洞硬化, 端口扫描, 系统信息收集, 网络扫描器, 跨平台工具, 逆向工具