Mattmorris-dev/netwatch-sec

GitHub: Mattmorris-dev/netwatch-sec

NetWatch 是一个将 Linux 主机转化为全功能网络安全传感器的综合监控平台,集蜜罐部署、流量捕获、威胁情报与自动防御于一体。

Stars: 22 | Forks: 2

NetWatch — all-in-one network security dashboard

# NetWatch [![PyPI 版本](https://img.shields.io/pypi/v/netwatch-sec.svg)](https://pypi.org/project/netwatch-sec/) [![下载量](https://static.pepy.tech/badge/netwatch-sec)](https://pepy.tech/project/netwatch-sec) [![月下载量](https://static.pepy.tech/badge/netwatch-sec/month)](https://pepy.tech/project/netwatch-sec) [![许可证: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](LICENSE) [![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/) [![Flask](https://img.shields.io/badge/Flask-2.3+-000000?logo=flask&logoColor=white)](https://flask.palletsprojects.com/) [![Raspberry Pi](https://img.shields.io/badge/Raspberry%20Pi-A22846?logo=raspberrypi&logoColor=white)](https://www.raspberrypi.org/) [![Linux](https://img.shields.io/badge/Linux-FCC624?logo=linux&logoColor=black)](https://www.linux.org/) [![Parrot OS](https://img.shields.io/badge/Parrot%20OS-15CDCA?logo=parrotsecurity&logoColor=white)](https://www.parrotsec.org/) [![Kali](https://img.shields.io/badge/Kali-557C94?logo=kalilinux&logoColor=white)](https://www.kali.org/) [![平台: Debian](https://img.shields.io/badge/platform-debian-A81D33?logo=debian&logoColor=white)](https://www.debian.org/) [![测试](https://img.shields.io/badge/tests-2148-brightgreen.svg)](tests/) [![版本](https://img.shields.io/badge/version-1.2.2-blue.svg)](CHANGELOG.md) [![状态: 活跃](https://img.shields.io/badge/status-active-brightgreen.svg)]() [![请我喝杯咖啡](https://img.shields.io/badge/Buy%20Me%20A%20Coffee-FFDD00?logo=buy-me-a-coffee&logoColor=black)](https://buymeacoffee.com/pr0xy_22) **一体化网络安全仪表盘** — 部署 honeypot,捕获流量,运行 OSINT,扫描目标,拦截威胁,并通过 mesh radio 转发警报。一条命令,一个文件,实时运行。 ``` sudo netwatch ``` NetWatch 能将任何 Linux 主机变成全功能的网络安全传感器。它会部署 4 个 honeypot 服务来诱导并记录攻击者,使用 raw socket 和 tshark 嗅探接口上的所有流量,自动通过地理位置和威胁评分来丰富每个 IP 的信息,并为您提供 100 多条命令来调查、跟踪和拦截威胁 — 所有这些都可以在单个终端或浏览器中完成。 专为 Raspberry Pi、Kali、Parrot OS 以及任何基于 Debian 的 Linux 打造。它作为单个 Python 文件运行,无需 microservice、Docker 或云依赖。 ## 工作原理 1. **启动** — `sudo netwatch` 会启动一切:4 个 honeypot 绑定其端口,raw socket 嗅探器附加到您的接口,tshark 开始协议分析,ARP 监控器发现设备,Web 仪表盘在 :9090 打开 2. **捕获** — 解析每个数据包的源/目的 IP、端口、协议和 DNS 查询。Honeypot 会记录凭据、命令、文件上传和恶意软件下载尝试 3. **丰富** — 根据端口行为、已知的恶意端口和扫描模式,自动对每个新 IP 的威胁级别进行评分。运行 OSINT 命令以添加地理位置、WHOIS、滥用报告和 ASN 数据 4. **响应** — 使用 iptables 拦截攻击者,标记并监视 IP,运行深度的 nmap 扫描,捕获 payload,导出报告。通过 LoRa mesh radio 转发关键警报以进行离网监控 5. **查看** — 带有 11 个选项卡的全屏 TUI,或者带有实时图表、可点击 IP、5 种颜色主题和 CRT 扫描线效果的浏览器仪表盘 ## 架构 ``` ┌──────────────────────────────────────────────────────────────┐ │ NETWATCH v1.1.0 │ ├──────────────────────────────────────────────────────────────┤ │ TERMINAL UI (TUI) │ WEB DASHBOARD (:9090) │ │ Full-screen ANSI │ Flask + SSE live updates │ │ 11 tabs, console mode │ 5 themes, CRT scanlines │ │ Tab/number key nav │ Charts, clickable IPs, API │ ├──────────────────────────────────────────────────────────────┤ │ HONEYPOTS │ TRAFFIC MONITORING │ │ HTTP :8080 (NVR panel) │ Raw socket sniffer │ │ Telnet :2323 (DVR) │ tshark protocol analysis │ │ FTP :2121 (bait files) │ tcpdump PCAP recording │ │ RTSP :8554 (camera) │ ARP device discovery │ ├──────────────────────────────────────────────────────────────┤ │ SCANNING & RECON │ OSINT (16 tools) │ │ nmap integration │ GeoIP, WHOIS, DNS enum │ │ Port scanning │ SSL/TLS, HTTP headers │ │ Service detection │ Abuse/ASN, cert transparency │ │ Stealth (Tor) mode │ Tech fingerprinting, speedtest │ ├──────────────────────────────────────────────────────────────┤ │ DEFENSE │ MESH RADIO │ │ iptables blocking │ Meshtastic LoRa support │ │ Threat scoring │ Alert forwarding │ │ Watchlists & tagging │ Two-way messaging │ └──────────────────────────────────────────────────────────────┘ ``` ## 安装 **快速安装(来自 PyPI):** ``` sudo apt install -y nmap tshark tcpdump traceroute iproute2 iptables \ openssl curl dnsutils whois psmisc arp-scan tor proxychains4 pipx install netwatch-sec sudo netwatch ``` **从源码安装:** ``` # 系统工具(一次性运行 — 涵盖 NetWatch 调用的所有命令) sudo apt install -y nmap tshark tcpdump traceroute iproute2 iptables \ openssl curl dnsutils whois psmisc arp-scan \ tor proxychains4 # Python deps pip3 install -r requirements.txt # 可选功能 pip3 install graphene flask-graphql # GraphQL API at :9090/graphql pip3 install meshtastic # LoRa mesh radio alerts sudo apt install -y speedtest-cli # `speed` command # 在系统范围内安装 launcher chmod +x netwatch-start.sh sudo ln -s $(pwd)/netwatch-start.sh /usr/local/bin/netwatch ``` **Docker(单行命令):** ``` docker run -d --name netwatch --restart unless-stopped \ --network host --cap-add NET_ADMIN --cap-add NET_RAW \ -e NETWATCH_TELNET_PORT=23 -e NETWATCH_FTP_PORT=21 \ -e NETWATCH_HTTP_PORT=80 -e NETWATCH_RTSP_PORT=554 \ -v netwatch-logs:/app/logs \ ghcr.io/mattmorris-dev/netwatch-sec:latest eth0 ``` 这将运行 headless 模式:honeypot 位于标准端口 (23/21/80/554) + Web 仪表盘位于 `:9090`。系统工具(nmap, tshark, tcpdump, …)已内置在镜像中。支持多架构 — 可在 x86-64 和 ARM64(Raspberry Pi)上运行。将 `eth0` 替换为您的捕获接口。 或者使用 Compose: ``` docker compose up -d # uses docker-compose.yml docker compose logs -f # watch attacks ``` 查看攻击流(纯净的 JSON,每次命中一行): ``` docker exec netwatch tail -f /app/logs/all_events.json ``` **验证您的安装:** 启动 NetWatch 并在提示符下运行 `doctor`(别名 `deps`/`check`)— 它会列出每个所需的 Python 包和系统工具,并显示存在/缺失的状态,标记 passive(非 root)模式,并告诉您如何安装任何缺失的内容。 ## 快速入门 ``` # 每次启动使用随机 token(默认 — 更安全) sudo netwatch # 重启后保持持久的 token(需要 NETWATCH_FIXED_TOKEN env var) export NETWATCH_FIXED_TOKEN=$(openssl rand -hex 24) sudo -E netwatch --fixed-token # 指定 interface sudo netwatch eth0 ``` 启动时会打印脱敏的 token 预览(`ABCDEF…WXYZ`),完整的 token 会写入 `~/.config/netwatch/token`(权限 0600)。使用它登录位于 `http://:9090` 的 Web 仪表盘。 TUI 和 Web UI 会同时启动 — 一条命令即可运行一切。 ### 密钥与 token 轮换 从 TUI 提示符中: | 命令 | 效果 | |---------|--------| | `rotate-key` | 生成新的 Fernet 密钥 — 使所有活动的 Web 会话失效。持久化到 `~/.config/netwatch/web.key`。 | | `rotate-token` | 生成新的身份验证 token — 使所有会话失效。重新写入 `~/.config/netwatch/token` (0600)。 | ### Honeypot 端口 默认绑定到高端口,因此不需要 root 权限:HTTP `:8080`,Telnet `:2323`,FTP `:2121`,RTSP `:8554`。通过环境变量覆盖以移动到标准端口(需要 `CAP_NET_BIND_SERVICE` 或 root 权限): ``` NETWATCH_HTTP_PORT=80 \ NETWATCH_TELNET_PORT=23 \ NETWATCH_FTP_PORT=21 \ NETWATCH_RTSP_PORT=554 \ sudo -E netwatch ``` 通过添加到 `/etc/netwatch.env` 并在 systemd unit 的 `EnvironmentFile=` 中引用来持久化。面向互联网的扫描器会命中标准端口 — 非标准端口对大多数路过式流量保持不可见。 ### Replay 可调参数 相同 IP 的 telnet 尝试会汇总为一个聚合会话(`all_`),因此整天敲击您 honeypot 的扫描器将显示为一个条目,而不是五十个。在时间线内,`── ATTEMPT N (timestamp UTC) ──` 标记分隔了突发请求。使用以下命令调整突发阈值: ``` NETWATCH_TELNET_GAP_SEC=86400 sudo -E netwatch # one marker per day (default: 300 = 5 min) ``` 每个独立的尝试会话仍然可以通过其原始的 `_HHMMSS` ID 加载,以便进行深入分析。 ### CrowdSec 自动封禁(可选) 如果主机上安装了 [`cscli`](https://docs.crowdsec.net/),每次 honeypot 捕获(`credential`、`telnet`、`ftp`、`rtsp`、`malware_attempt`、`ftp_upload`、`telnet_cmd`)都会自动调用 `cscli decisions add` 进行 4 小时的封禁。CrowdSec 防火墙 bouncer 通过 ipset 执行丢弃(drop)操作,因此规则数量永远不会激增。60 秒内的相同 IP 事件会被去重。设置 `NETWATCH_AUTODEFEND=0` 以禁用。如果没有安装 CrowdSec,该钩子将静默无效化(no-op)。 在 Debian 上安装: ``` curl -s https://install.crowdsec.net | sudo sh sudo apt install -y crowdsec crowdsec-firewall-bouncer-iptables sudo systemctl enable --now crowdsec crowdsec-firewall-bouncer ``` 将您的操作员 IP 加入白名单,以免封禁自己 — 添加 `/etc/crowdsec/parsers/s02-enrich/whitelists.yaml`: ``` name: netwatch/operator-whitelist whitelist: reason: "operator home" ip: [""] ``` ## 会话重放 ``` sudo netwatch # capture starts immediately python tools/synth_ftp_session.py 198.51.100.42 # optional — fake an attacker # 打开 http://localhost:9090 并点击 REPLAY 标签页 ``` 每个捕获的会话(FTP、Telnet、HTTP 探测)都被记录为可拖动的时间线。Web 播放器会自动列出会话;选择一个并逐帧单步执行击键。在 TUI 中,`replay list` 显示最近的会话,`replay ` 进入播放器。 播放器按键:`space` 播放/暂停 · `←/→` 单步执行 · `` 跳转会话 · `+/-` 速度 · `Home/End` 结尾。 ## 远程访问 当 `cloudflared` 可用时,NetWatch 会在启动时自动启动一个快速隧道。公共的 `*.trycloudflare.com` URL 会在启动时打印,并固定在仪表盘的 **all** 选项卡顶部,以便您无需滚动浏览警报即可复制它。 控制台命令(在提示符下输入): | 命令 | 用途 | |---------|---------| | `tunnel` | 重新打印当前的 trycloudflare URL + 完整的 Web token | | `restart-tunnel` | 终止 cloudflared,生成一个新的隧道(新 URL) | | `token` | 重新打印完整的 Web token + 磁盘路径 | ``` # 如果 cloudflared 不在 $PATH 中,请使用手动 fallback cloudflared tunnel --url http://localhost:9090 # 或者将 NetWatch 指向非默认的 cloudflared 二进制文件 NETWATCH_CLOUDFLARED_BIN=/opt/cf/cloudflared sudo -E netwatch ``` ### 公共 IP 访问(无隧道) Web 仪表盘的 IP 白名单默认为 **loopback + RFC1918 + Tailscale (100.64/10)**,因此全新的安装不会意外地从开放的互联网被访问。要允许您的家庭/办公室 IP,请将 `NETWATCH_WEB_ALLOW` 设置为一个或多个 CIDR: ``` # 单个主机 NETWATCH_WEB_ALLOW=203.0.113.42/32 sudo -E netwatch # 多个范围(以逗号分隔) NETWATCH_WEB_ALLOW="203.0.113.42/32,198.51.100.0/24" sudo -E netwatch ``` 无效的 CIDR 将在启动时被跳过并发出警告。Token 身份验证仍然适用 — 添加 IP 仅允许登录页面呈现。与 `ufw`/`iptables` 结合使用以实现深度防御。 ## Termux / 非 root(passive 模式) NetWatch 可以在 Termux(Android)和任何非 root 环境下以 **passive 模式** 运行 — honeypot、OSINT、Web 仪表盘和 nmap connect-scan 仍然有效。需要 raw socket 或 kernel 访问权限的功能会被自动禁用: | 功能 | Root | Termux / 非 root | |---------|------|-------------------| | Honeypot (HTTP/Telnet/FTP/RTSP) | ✓ | ✓ | | Web 仪表盘 + OSINT | ✓ | ✓ | | nmap (connect / `-sV`) | ✓ | ✓ | | Raw-socket 嗅探器 / `traffic` | ✓ | — | | `tshark` / `tcpdump` 捕获 | ✓ | — | | ARP 监控器 | ✓ | — | | `block` / `unblock` (iptables) | ✓ | — | | nmap SYN 扫描 (`-sS`) | ✓ | — | ``` # Termux 快速开始 pkg install python nmap whois tor pip install netwatch-sec netwatch # passive mode — no sudo needed ``` ## 终端 UI 三个屏幕,通过快捷键切换。切换屏幕会保留您的选项卡和滚动位置。 | 屏幕 | 快捷键 | 用途 | |--------|--------|---------| | **仪表盘** | `F1` | 11 个选项卡,实时的主机/协议/honeypot 视图 | | **命令行** | `F2` | 全屏提示符 + 命令输出 | | **控制台** | `F3` | 工具输出的全屏日志 | ``` F1 / F2 / F3 Switch screens 1-9, 0 Jump to tab Type anything Open command prompt Up/Down History recall PgUp / PgDn Scrollback Home / End Top / bottom ESC Close help overlay clear Wipe console buffer ``` ### 选项卡 `all` · `hosts` · `proto` · `dns` · `honeypot` · `nmap` · `arp` · `alerts` · `osint` · `proxy` · `mesh` ## Web 仪表盘 位于 `:9090` 的浏览器 UI,具有实时 SSE 更新、5 种主题和 CRT 扫描线效果。 - **主题**:Terminal Classic、Matrix Green、Midnight Blue、Cyberpunk、Light Mode - **CRT 扫描线**:Off、Soft、Heavy — 复古终端美学 - **图表**:实时流量时间线、协议分布、威胁分类 - **点击任意 IP** 呼出上下文菜单 — 扫描、地理定位、whois、traceroute、全面侦测 - **可调整大小的输出面板**,带有拖动手柄 - **主机详情模态框**,显示端口、标签、OSINT 结果、honeypot 活动 - **键盘快捷键**:1-0 切换选项卡,`/` 聚焦命令栏,ESC 关闭 ### 安全性 - 需要 Token 身份验证(自动生成或通过 `--token ` 或环境变量 `NETWATCH_TOKEN`) - Fernet 加密的会话 cookie,密钥持久化存储于 `~/.config/netwatch/web.key` - 默认允许私有网络访问 (127/10/192.168/100.64);通过 `NETWATCH_WEB_ALLOW=cidr,cidr,...` 添加公共 CIDR - 对所有 POST endpoint 进行 CSRF 源验证 - 通过 Web 禁用破坏性命令 - 对出站 OSINT 进行 SSRF 保护(安全关闭,拒绝私有 IP) - 速率限制:每个 IP 每分钟 20 条命令,每分钟 3 次高消耗命令 - Web 扫描命令的 CIDR 最大为 /20 - 在函数入口处进行 Nmap 目标验证(正则表达式 + flag 白名单) ## 命令 ### OSINT(16 种工具) | 命令 | 描述 | |---------|-------------| | `geo ` | IP 地理定位 | | `whois ` | WHOIS 查询 | | `dnsinfo ` | DNS枚举 (A/AAAA/MX/NS/TXT/SOA/CNAME/SRV) | | `rdns ` | 反向 DNS | | `ssl [port]` | TLS 证书检查 | | `secheaders ` | 安全头部审计 + 评级 | | `techstack ` | Web 技术指纹识别 | | `ping [count]` | 抖动分析 + TTL 操作系统猜测 | | `health ` | 完整配置文件(ping + SSL + 头部 + 技术 + 地理位置 + DNS) | | `etrace ` | 带有逐跳 GeoIP 的增强型 traceroute | | `portscan ` | 基于 Socket 的 Top 1000 端口扫描 | | `subnet [cidr]` | 多线程 ping 扫描 | | `crt ` | 证书透明度搜索 | | `headers ` | HTTP 响应头 | | `asn ` | ASN/BGP 信息 | | `abuse ` | IP 信誉检查 | | `speed` | 网络速度测试(下载/上传/ping) | | `ifinfo` | 本地接口信息 + 路由表 | ### 扫描 | 命令 | 描述 | |---------|-------------| | `scan [preset]` | Nmap 扫描(快速/SYN/UDP/ping/完整) | | `deep ` | 所有端口 + 漏洞脚本 | | `stealth ` | 通过 Tor 进行 SYN 扫描 | | `recon ` | 完整的 OSINT 配置文件 | | `fullrecon ` | 7 阶段侦测链 | | `sweep [cidr]` | ARP + ping + 端口扫描 | | `banner ` | 服务 banner 抓取 | | `trace ` | Traceroute | ### 跟踪与捕获 需要 root 权限。在 passive 模式下自动禁用。 | 命令 | 描述 | |---------|-------------| | `track [secs]` | 实时数据包跟踪(tshark) | | `conns ` | TCP 会话捕获 | | `sniff [secs]` | Raw payload 捕获 | | `trackdns ` | DNS 查询捕获 | | `pcap start/stop` | PCAP 录制 | ### 防御 | 命令 | 描述 | |---------|-------------| | `block ` | iptables DROP(仅限 root) | | `unblock ` | 移除拦截(仅限 root) | | `blockall attackers` | 拦截所有 honeypot IP(仅限 root) | | `diffarp` | ARP 表更改检测 | ### 系统 | 命令 | 描述 | |---------|-------------| | `status` | 服务信息 + 运行时间 | | `dashboard` / `d` | 返回仪表盘屏幕 | | `clear` | 清除控制台缓冲区 | | `help` | 显示完整的参考覆盖层 | | `rotate-key` | 新的 Fernet 密钥(使 Web 会话失效) | | `rotate-token` | 新的 Web 身份验证 token(使会话失效) | ### 智能过滤器 | 命令 | 描述 | |---------|-------------| | `top [n]` | Top N 通讯者 | | `sus` | 可疑主机(威胁 > 0) | | `new [mins]` | 最近出现的主机 | | `loud` | 触及最多端口的主机 | | `find ` | 搜索所有数据 | | `ports ` | 使用特定端口的主机 | | `country ` | 按国家/地区过滤 | ### 批量操作 ``` scanall [list] reconall [list] geoall [list] whoisall [list] ``` 列表:`hosts` · `attackers` · `arp` · `nmap` · `watchlist` · `tracked` · `blocked` 使用 `@N` 按索引引用 IP:`scan @3` 扫描当前列表中的第 3 个 IP。 ### 代理 / Tor ``` proxy add socks5 127.0.0.1:9050 proxy list proxy test proxy rotate proxy start proxy stop ``` ### Mesh Radio ``` mesh send mesh status mesh nodes mesh alert on/off ``` ## Honeypot | 服务 | 端口 | 捕获内容 | |---------|------|----------| | **HTTP NVR 面板** | 8080 | 凭据、会话 token、API 探测 | | **Telnet DVR** | 2323 | 登录尝试、shell 命令、恶意软件下载 | | **FTP 诱饵服务器** | 2121 | 凭据、击键记录、文件上传(最大 10MB) | | **RTSP 摄像头** | 8554 | 身份验证探测、流请求 | 所有事件均以 JSON 记录,数据经过 ANSI 剥离和净化。每个服务的连接数限制(最多 50 个)。FTP 具有路径遍历保护和文件名净化功能。 ### 会话重放 → GIF 将任何 FTP 会话日志转换为可观看的 asciinema 回放和 GIF: ``` python3 tools/replay_to_gif.py logs/ftp_session__.log demo.gif ``` 保留真实的攻击者节奏,压缩空闲停滞。GIF 步骤需要 [`agg`](https://github.com/asciinema/agg)。 ## GraphQL API 安装 `graphene` 后可在 `:9090/graphql` 使用。 ``` { hosts(minThreat: 10, limit: 20) { ip hostname threatScore tags } } { honeypotEvents(service: "telnet") { time ip summary } } mutation { runCommand(cmd: "geo 8.8.8.8") { output } } ``` ## 测试 ``` python3 -m pytest tests/ -q # 1900 项测试,在 Pi 5 上约需 30 秒 ``` Lint(CI 阈值 `--fail-under=9.0`): ``` pylint $(git ls-files '*.py') --fail-under=9.0 ``` ## 安全模型 - 所有子进程调用均使用参数列表,从不使用 `shell=True` - 在函数入口进行 Nmap 目标正则表达式验证 + flag 白名单 - 对所有记录的数据进行 ANSI 转义剥离(防止日志注入) - 通过 `os.path.realpath` 检查阻止 FTP 上传路径遍历 - 使用 `threading.Event` 同步 FTP 数据连接 - 会话存储受 TTL 驱逐限制 - 日志轮转大小为 50MB - SSRF 保护:在出站 OSINT 上拒绝私有 IP,在 DNS 错误时安全关闭 - 安全决策从不信任 PTR 记录 - Flask 密钥在每次启动时随机生成 - Fernet 加密的 Web cookie — 无明文回退 - 通过 RLock 同步实现线程安全渲染 - GraphQL 查询复杂性受限(深度 7,别名 10,长度 4000) - Web API 速率限制:每个 IP 每分钟 20 条命令,每分钟 3 次高消耗命令 - Web 扫描命令的 CIDR 最大为 /20 ## 需求 | 组件 | 详情 | |-----------|---------| | **操作系统** | Linux(Debian、Ubuntu、Raspbian、Parrot、Kali)— 也可在 Termux(Android)上以 passive 模式运行 | | **Python** | 3.9+ | | **Root** | 推荐(raw socket、iptables、绑定小于 1024 的端口)。非 root 和 Termux 以 passive 模式运行(honeypot、OSINT、Web、nmap connect-scan)。 | | **系统** | nmap, tshark, tcpdump, traceroute | | **Python** | flask, requests, python-whois, dnspython, markupsafe, cryptography | | **可选** | graphene, flask-graphql, meshtastic, speedtest-cli | 已在 Raspberry Pi 5、Parrot OS 和 Termux(Android,passive 模式)上测试。 ## 部署 ``` git clone https://github.com/Mattmorris-dev/netwatch-sec.git && cd netwatch-sec sudo apt install nmap tshark tcpdump traceroute pip3 install -r requirements.txt # 系统范围安装 sudo ln -s $(pwd)/netwatch-start.sh /usr/local/bin/netwatch # 开机启动(可选) sudo cp netwatch.service /etc/systemd/system/ sudo systemctl enable --now netwatch ``` DigitalOcean Referral Badge ## Headless 模式 未检测到 TTY(SSH 管道、systemd、Docker)= headless 模式。仅在 `:9090` 提供 Web 仪表盘。所有 honeypot 和流量监控仍保持活动状态。 ## 支持 NetWatch 由个人独立开发和维护。如果它为您节省了时间或保护了您的网络,请考虑打赏 — 这将维持项目的正常运转,并为下一个版本的开发工具提供资金。 [![请我喝杯咖啡](https://img.shields.io/badge/Buy%20Me%20A%20Coffee-FFDD00?logo=buy-me-a-coffee&logoColor=black&style=for-the-badge)](https://buymeacoffee.com/pr0xy_22) ## 许可证 Apache 2.0 — 详见 [LICENSE](LICENSE)
标签:Flask, Python, 密码管理, 底层分析, 插件系统, 无后门, 网络安全, 蜜罐技术, 请求拦截, 逆向工具, 隐私保护