demirgitbuh/PacPortscanner
GitHub: demirgitbuh/PacPortscanner
一个基于 Textual 构建的现代 TUI 端口扫描器,通过自动后端回退与异步并发,提供快速、低门槛的端口探测与导出能力。
Stars: 1 | Forks: 0
### ⚡ 一个基于 [Textual](https://textual.textualize.io) 构建的现代极速 **TUI 端口扫描器**。
*自动选择最佳后端 —— **Nmap → Scapy → 原始套接字** —— 无论是否有 root 权限,均可在任何环境运行。*
## 📸 预览
```
┌── ⊙ pacPortScanner ──────────────────────────────────────────────────────┐
│ Target: 192.168.1.0/24 │ HOST PORT STATE SERVICE │
│ Ports : top1000 │ 192.168.1.1 22/tcp open ssh │
│ Profile: vulnerability │ 192.168.1.1 80/tcp open http │
│ [✓] ping sweep │ 192.168.1.5 443/tcp open https │
│ [✓] banner grab │ 192.168.1.5 3306 open mysql ⚠3 │
│ [✓] CVE lookup │ 192.168.1.7 22/tcp open ssh │
│ │ │
│ ▶ Start scan (s) │ │
├─────────────────────────────────┴───────────────────────────────────────┤
│ backend: nmap · ports/s: 842 · open: 12 · elapsed: 4.2s · ██████░░ 74% │
└─────────────────────────────────────────────────────────────────────────┘
```
## 📦 安装指南
## 🔌 后端自动回退
启动时,pacPortScanner 按优先级探测可用后端:
| # | 后端 | 依赖 | SYN | UDP | 操作系统识别 | 需要 Root |
|:-:|:-------:|:-----:|:---:|:---:|:---------:|:----:|
| 1 | **Nmap** | `python-nmap` + `nmap` 二进制 | ✅ | ✅ | ✅ | 可选 |
| 2 | **Scapy** | `scapy` | ✅ | ❌ | ❌ | ✅ 必需 |
| 3 | **Socket** | 标准库 | ❌ (connect) | ❌ | ❌ | ❌ 不需要 |
```
flowchart LR
A[Start] --> B{Nmap available?}
B -- yes --> N[🟠 Nmap backend]
B -- no --> C{Scapy + root?}
C -- yes --> S[🟠 Scapy backend]
C -- no --> K[🟠 Socket backend]
N --> R[(Streaming results)]
S --> R
K --> R
```
当前活动后端显示在 **状态栏** 中,也可通过 `--backend` 强制指定。
## 🎛️ 扫描配置文件
| 配置文件 | 端口范围 | 扫描技术 |
|:------------------|:-----------:|:-----------------------------------------------|
| 🥷 `stealth` | 前 100 端口 | SYN(若可用)· 慢速时序 |
| ⚡ `fast` | 前 100 端口 | 连接扫描 · 激进时序 |
| 🔬 `full` | 1–65535 | 连接扫描 · 服务识别 + 横幅抓取 |
| 🛡️ `vulnerability` | 前 1000 端口 | 完整扫描 + OS 识别 + **CVE 查询** |
| #### 🎯 扫描功能 - 单个 **IP**、**主机名** 或 **CIDR** 范围 - 端口预设:`top100`、`top1000`、`all` 或自定义 - **流式** 结果输出 —— 无需批量等待 - 服务识别 + **横幅抓取** - 可选 **Ping 探测** 以跳过不可达主机 - **并发** 最高支持 500 个套接字 | #### 🛡️ 智能识别 - **OS 指纹识别**(Nmap) + TTL 回退机制 - 通过 [cve.circl.lu](https://cve.circl.lu) 与 NVD 进行 **CVE 查询** - 从横幅中提取版本与 CPE 信息 - 严重等级高亮(CRITICAL → LOW) - **无需 API 密钥** - 内存缓存避免重复请求 |
| #### 🎨 界面设计 - 基于 Textual 的现代化 **TUI** - **橙黑主题** (`#FF6B00`) - 实时更新的结果 **表格** - 行级滑入 **详情抽屉** - 实时日志与状态栏显示 **pps / ETA** - 完整键盘快捷键 + **帮助覆盖层** | #### 📦 导出输出 - **JSON** — 结构化数据,包含所有字段 - **CSV** — 便于导入电子表格 - **HTML** — 带样式的自包含报告 - 自动保存至 `./data/` 并附加时间戳 - 4 种预设 **配置文件**(Stealth → Vuln) - 命令行参数预填充,便于脚本启动 |