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扫描, 后渗透, 实时处理, 并发处理, 开源项目, 批量测试, 指纹识别, 插件系统, 数据统计, 文档结构分析, 无后门, 无线安全, 漏洞硬化, 端口扫描, 系统信息收集, 网络扫描器, 跨平台工具, 逆向工具