ente0/snype

GitHub: ente0/snype

snype 是一个用 Python 构建的终端 UI 工具,旨在简化基于 aircrack-ng/hcxtools 的 WPA2 握手包捕获、去认证攻击和字典破解工作流。

Stars: 14 | Forks: 2

Language: Python Interface: Textuaòl Dependencies Version

# snype — WPA 握手包捕获工具 **为 aircrack-ng / hcxtools 工作流打造的现代终端 UI。snype 通过键盘驱动的 TUI 和合理的默认设置,简化了无线侦察、握手包捕获、解除认证和字典破解流程。**
## 概述 snype 将标准的无线审计工具链封装在单一界面中: - 基于 `textual` 和 `rich` 构建的**现代 TUI** —— 状态栏、侧边栏导航、快捷键、模态对话框。 - **自动双终端启动器** —— 监听和解除认证根据环境在 `xterm`、`tmux` 或嵌入式 PTY 面板中并行运行。 - **环境检测** —— 透明支持桌面 Linux、无头/SSH 会话以及 Kali NetHunter / Termux。 - **结构化输出** —— 每次捕获都会写入到特定会话目录中,并附带 `meta.json` 以保证可复现性。 - **CLI 标志** —— TUI 中的每一个操作都可以通过命令行执行,方便脚本编写。 ## 功能特性 - 交互式 TUI,支持上下文快捷键和实时状态栏。 - 通过 `airodump-ng` 进行网络扫描和目标选择,并解析 CSV。 - 针对性的数据包捕获,每个会话的输出会进行去重处理。 - 解除认证模块,支持配置持续时间和目标客户端。 - 通过 `hcxpcapngtool` 自动将 `.cap` 转换为 `.hc22000`。 - 基于 `aircrack-ng` 的字典破解包装器,支持结果持久化保存。 - 从传统的扁平布局一键迁移到全新的 `snype-data/` 目录树。 - 由 `argparse` 生成的详细 `--help` 参考。 ## 系统要求 ### 系统 - 基于 Linux 的操作系统(桌面、SSH 或 NetHunter / Termux)。 - 支持监听模式和数据包注入的无线网卡。 - Python 3.10 或更高版本。 - 监听模式和注入操作需要 sudo / root 权限。 ### 外部工具 - `aircrack-ng` 套件:`airmon-ng`、`airodump-ng`、`aireplay-ng`、`aircrack-ng`。 - `hcxtools`:`hcxpcapngtool`、`hcxdumptool`。 - 至少需要以下之一:`tmux`、`xterm`、`kitty`、`gnome-terminal`、`konsole`(可选 —— 嵌入式 PTY 后端将作为后备方案使用)。 ### Python 包 | 包名 | 版本 | 用途 | |---|---|---| | [`textual`](https://github.com/Textualize/textual) | `>= 0.50` | TUI 框架(布局、组件、快捷键) | | [`rich`](https://github.com/Textualize/rich) | `>= 13.0` | 组件内的富文本和表格渲染 | ## 安装 snype 安装在项目本地的虚拟环境中。其 Python 依赖项和可执行文件与系统 Python 保持隔离。 ``` git clone https://github.com/ente0/snype.git cd snype python3 -m venv .venv source .venv/bin/activate python -m pip install --upgrade pip python -m pip install -e . ``` 在 Windows PowerShell 中,使用以下命令激活环境: ``` .venv\Scripts\Activate.ps1 ``` 拉取新更改后,请刷新当前活动环境: ``` git pull python -m pip install -e . ``` ### 可选:全局暴露 `snype` 要在不激活 `.venv` 的情况下从任何目录运行 `snype`,请将此 项目的虚拟环境可执行文件路径添加到您的 `PATH` 中。在仓库根目录下运行一次此命令: ``` printf '\nexport PATH="%s/.venv/bin:$PATH"\n' "$PWD" >> ~/.zshrc source ~/.zshrc ``` 对于 Bash,请在两条命令中将 `~/.zshrc` 替换为 `~/.bashrc`。这会存储 仓库绝对的 `.venv/bin` 路径;如果移动了仓库位置,请重新进行设置。 完成后请退出环境: ``` deactivate ``` ### 系统依赖
Debian / Ubuntu / Kali ``` sudo apt update sudo apt install -y aircrack-ng hcxtools hcxdumptool tmux xterm \ python3 python3-pip python3-venv ```
Fedora ``` sudo dnf install -y aircrack-ng hcxtools hcxdumptool tmux xterm \ python3 python3-pip ```
Arch Linux / Manjaro ``` sudo pacman -S aircrack-ng hcxtools hcxdumptool tmux xterm \ python python-pip ```
Kali NetHunter / Termux ``` pkg install aircrack-ng hcxtools tmux python ``` snype 会自动检测 NetHunter,并强制为双终端启动器使用 `tmux` 后端。
## 快速开始 ``` sudo .venv/bin/snype ``` 首次运行会执行一次性迁移:任何旧版 `handshakes/` 目录以及旧的 `selected_network.txt` / `interface_config.txt` 文件都会被移动到新的 `snype-data/` 布局中。绝对不会删除任何内容 —— 旧文件只是被重新定位,而不是被丢弃。 使用预填充状态启动: ``` sudo .venv/bin/snype -i wlan0 -I wlan1 -b AA:BB:CC:DD:EE:FF -c 6 ``` 如果不安装直接从仓库运行: ``` sudo python3 snype.py ``` ## CLI 参考 运行 `snype --help` 获取权威列表。最相关的标志: | 标志 | 参数 | 用途 | |---|---|---| | `-i`, `--interface` | `IFACE` | 主网卡,用于监听。 | | `-I`, `--inject` | `IFACE` | 用于注入的辅助网卡(默认为主网卡)。 | | `-b`, `--bssid` | `MAC` | 预选目标 BSSID。 | | `-c`, `--channel` | `N` | 预选频道。 | | `-e`, `--essid` | `NAME` | 预选 ESSID(用于会话命名)。 | | `-d`, `--data-dir` | `PATH` | 覆盖数据目录(默认:`./snype-data`)。 | | `-t`, `--term-mode` | `auto\|xterm\|tmux\|pty` | 强制指定特定的双终端后端。 | | `--duration` | `SECONDS` | 定时解除认证攻击的默认持续时间。 | | `--dry-run` | | 打印外部命令但不实际执行。 | | `-v`, `--verbose` | | 启用详细日志记录。 | | `--version` | | 打印版本并退出。 | | `-h`, `--help` | | 打印完整帮助信息并退出。 | ## TUI 指南 TUI 分为四个区域: ``` +------------------------------------------------------------+ | status bar : iface, target, channel, cap/hc22000/pwd count | +-----------+------------------------------------------------+ | sidebar | | | Scan | main pane | | Monitor | (tables, forms, progress, logs) | | Deauth | | | Crack | | | Files | | | Settings | | +-----------+------------------------------------------------+ | footer : keybinding hints and last log line | +------------------------------------------------------------+ ``` ### 全局快捷键 | 按键 | 操作 | |---|---| | `s` | 扫描网络 | | `m` | 开始针对性监听 + 解除认证 | | `d` | 独立解除认证 | | `c` | 进入字典破解视图 | | `f` | 浏览捕获的文件 | | `t` | 设置(网卡、终端后端) | | `h` | 返回欢迎屏幕 | | `?` | 显示帮助 | | `q` | 退出 | ### 特定视图快捷键 **扫描 (Scan)** | 按键 | 操作 | |---|---| | `r` | 开始扫描 | | `↑` / `↓` | 移动选择 | | `Enter` | 选择目标 | | `+` / `-` | 调整扫描持续时间 | **解除认证 (Deauth)** | 按键 | 操作 | |---|---| | `Enter` | 执行解除认证 | | `+` / `-` | 调整持续时间 | | `c` | 清除客户端 MAC(针对全部) | **破解 (Crack)** | 按键 | 操作 | |---|---| | `r` | 刷新捕获列表 | | `↑` / `↓` | 选择捕获文件 | | `w` | 从 `$SNYPE_WORDLIST` 加载字典 | | `Enter` | 执行破解 | **设置 (Settings)** | 按键 | 操作 | |---|---| | `1` | 设置监听网卡 | | `2` | 设置注入网卡 | | `3` | 切换终端后端 | | `f` | 清空监听模式服务 | ### 典型工作流 1. **设置** (`t`) —— 设置监听网卡和可选的注入网卡。 2. **扫描** (`s`) —— 从实时列表中发现并选择目标。 3. **监听 + 解除认证** (`m`) —— 启动器会打开一个双面板终端,使数据包捕获和解除认证同时运行。完成后关闭两个面板。 4. **转换** —— 会话结束时,`.cap` 文件会自动转换为 `.hc22000`。 5. **破解** (`c`) —— 设置 `$SNYPE_WORDLIST`,按 `w` 加载,然后按 `Enter` 进行破解。 6. **文件** (`f`) —— 浏览 `snype-data/hs/` 下的捕获文件、哈希值和恢复的密码。 ## 数据布局 所有产物都存储在一个单一、可移植的目录树中。默认根目录为 `./snype-data/`,可使用 `--data-dir` 或 `SNYPE_DATA_DIR` 环境变量覆盖。 ``` snype-data/ ├── config.json # interface + last target state ├── hs/ # captures organised by ESSID │ └── / │ ├── / │ │ ├── capture.cap │ │ ├── capture.hc22000 │ │ └── meta.json # BSSID, channel, start, stop, EAPOL count │ └── passwords/ │ └── _password.txt ├── logs/ │ └── snype.log └── found_passwords.jsonl # append-only cracked keys ``` ### `meta.json` 每个会话目录都包含一个自描述的元数据文件。示例: ``` { "essid": "MyNetwork", "bssid": "AA:BB:CC:DD:EE:FF", "channel": 6, "started_at": "2026-04-14T14:32:01+00:00", "stopped_at": "2026-04-14T14:34:18+00:00", "duration_s": 137, "eapol_frames": 4, "handshake_complete": true, "capture": "capture.cap", "hashcat": "capture.hc22000" } ``` ## 终端自动检测 当用户触发“监听 + 解除认证”时,snype 会并排打开两个终端,以便数据包捕获和解除认证同时运行。后端会自动选择;也可以使用 `--term-mode` 强制指定。 检测顺序(自动模式): 1. **NetHunter / Termux**(设置了 `$TERMUX_VERSION`,或检测到 Kali-NetHunter 绑定挂载)—— 强制使用 `tmux`。 2. **图形桌面**(设置了 `$DISPLAY`)—— 默认使用 `xterm`,后备为在 `PATH` 中找到的 `kitty`、`gnome-terminal`、`konsole` 中的第一个。 3. **可用 tmux 的 TTY** —— 创建一个分离的 tmux 会话,水平分割并附加。 4. **后备方案** —— TUI 本身内部的嵌入式 PTY 面板(通过 `pty.openpty` 和 asyncio 读取器进行多路复用)。 当前会话使用的后端会在状态栏和 `snype-data/logs/snype.log` 中报告。 ## 推荐配套工具:hashCrack 对于 GPU 加速破解,我们推荐 [hashCrack](https://github.com/ente0/hashCrack),这是一款专为与 snype 配合使用而设计的配套工具。 工作流: 1. 使用 snype 捕获握手包,并让其生成 `.hc22000` 产物。 2. 将该产物提供给 hashCrack: ``` hashcrack captured_handshake.hc22000 ``` 优势: - 通过 `hashcat` 实现 GPU 加速攻击模式。 - 多种预置的破解策略和掩码。 - 丰富的字典管理功能。

hashCrack Repository

## 故障排除
找不到网卡 - 确认适配器已物理连接。 - 使用 `iw list` 检查监听模式能力。 - 使用 `ip link` 报告的确切网卡名称。
权限被拒绝 - 使用 `sudo` 运行 snype。 - 在 NetHunter 上,确保 chroot 有权访问 USB 无线设备。
未找到网络 - 验证网卡是否确实处于监听模式(`iwconfig `)。 - 尝试通过 `-c` 手动锁定频道。 - 某些适配器受地区限制;请检查 `iw reg`。
解除认证无效 - 确保您在目标范围内。 - 某些客户端实现了 802.11w / PMF,会忽略解除认证帧。 - 使用 `--duration` 增加持续时间或重复攻击。
TUI 渲染问题 - 确保终端至少报告 100x30 个字符的大小。 - 如果您的终端模拟器比较特殊,请使用 `--term-mode tmux` 强制指定后端。 - 如果颜色显示异常,通过导出 `COLORTERM=` 来禁用真彩色。 - 如果 textual 在启动时抛出错误,请确保使用的是 Python 3.10+:`python3 --version`。
未找到 snype 命令 - 激活项目环境:`source .venv/bin/activate`。 - 或者从仓库根目录直接运行:`sudo .venv/bin/snype`。
## 教育资源 - [4 次握手解释](https://notes.networklessons.com/security-wpa-4-way-handshake) - [Radiotap 简介](https://www.radiotap.org/) - [Aircrack-ng 文档](https://wiki.aircrack-ng.org/) ## 许可证 本项目采用 GPL-3.0 授权。详情请参阅 LICENSE 文件。 ## 支持 - [报告问题](https://github.com/ente0/snype/issues) ## 相关项目 - [hashCrack](https://github.com/ente0/hashCrack) - [hashcat-defaults](https://github.com/ente0/hashcat-defaults) - [wpa2-wordlists](https://github.com/kennyn510/wpa2-wordlists) - [paroleitaliane](https://github.com/napolux/paroleitaliane) - [SecLists](
标签:Python, TUI, WiFi破解, 插件系统, 无后门, 网络安全, 逆向工具, 隐私保护