N1ckw1ck/Dark_OSINT

GitHub: N1ckw1ck/Dark_OSINT

一套暗网 OSINT 工具集,通过 Tor 聚合多个 .onion 搜索引擎结果,并自动化完成 URL 提取、安全预检和情报索引构建。

Stars: 1 | Forks: 0

# 暗网 OSINT ![Hello](https://static.pigsec.cn/wp-content/uploads/repos/cas/10/10ea4b21466e73afaddff28afbde68e1e0d861c47952f838b3c55d6580210ab6.png) ## 目录 - [仓库结构](#repository-structure) - [安装说明](#setup) - [Erebus](#erebus-dark-web-search) - [Hemera](#hemera-url-extractor) - [Mnemosyne](#mnemosyne-onion-link-recon) - [Khaeos](#khaeos-control-center) - [其他工具](#other-possibly-helpful-tools) #### 免责声明 ###### 这些工具仅供授权(如适用)且符合道德(始终)的使用。 ###### 您有责任确保您的使用符合所有适用的法律、法规等。 ###### 代码只是文字。 ###### 运行通过互联网发起请求的可执行代码就不只是文字了。 ###### 除非您采取了严格的 OPSEC 措施(这不太可能),否则请假设发出的所有请求都可以追溯到您。 ###### 请注意,作者本人**不**对任何滥用行为承担责任。 ## 仓库结构 ``` DARK_OSINT/ ├── d_erebus.py — dark web search aggregator, standalone or pipeline ├── d_hemera.py — extract a clean .onion URL list from Erebus JSON output ├── d_mnemosyne.py — pre-visit .onion safety scanner, standalone or pipeline ├── pgp_verify.py — verify PGP signatures/canaries, fully standalone │ ├── Khaeos/ # the persistent index + web UI, runs on your own machine │ ├── d_khaeos.py — ingest Mnemosyne output, serve the searchable index UI │ ├── khaeos_ui.html — the web UI itself, served by d_khaeos.py │ └── khaeos-mass-batch-ingest.sh — example bulk-ingest helper; edit the paths/date │ range in it before using, not a polished CLI tool │ ├── Pipeline/ # chain Erebus → Hemera → Mnemosyne (→ Khaeos) automatically │ ├── VPS_Files/ # meant to be deployed to and run unattended on a VPS │ │ ├── pipeline.py — chain all three tools for one or more queries │ │ ├── run-pipeline.sh — cron-friendly wrapper (day-specific queries, outbox move) │ │ ├── validate_batch.py — validate a Mnemosyne batch before it reaches the outbox │ │ ├── validate-batch-helper.sh — one-off manual re-validate helper, edit before use, not polished │ │ ├── vps-setup.sh — harden a fresh Debian VPS, create the SFTP/working users and directories │ │ ├── config/ │ │ │ ├── queries.txt — fallback query list │ │ │ └── queries_.txt — optional day-specific override, e.g. queries_monday.txt │ │ └── output/ # created at runtime, not committed │ │ ├── discovery_queue.txt — created with --aggressive flag: links found, queued for the *next* run │ │ ├── erebus/ # Erebus outputs: Erebus__.json │ │ ├── hemera/ # Hemera outputs: erebus_urls__.txt │ │ └── mnemosyne/ # Mnemosyne outputs: Mnemosyne_batch_.json │ │ └── quarantine/ # batches that failed validate_batch.py │ └── Local_Machine_Files/ # run on your own machine, talk to the VPS over SSH/SFTP │ ├── push_queries.py — manage the VPS's query files over SSH, no manual login needed │ ├── pull_batches.py — pull validated batches from the VPS outbox over SFTP, verify + ingest │ └── pull-khaeos-batches.sh — thin cron/alias wrapper around pull_batches.py │ ├── requirements.txt └── README.md ``` Erebus、Hemera 和 Mnemosyne 都是各自独立的工具——直接运行它们会将输出写入您运行所在的目录中。`output/erebus/`、`output/hemera/`、`output/mnemosyne/` 的分离只有在通过 `pipeline.py` 驱动它们时才会发生,因为 `pipeline.py` 显式设置了每个阶段的工作目录,这样就不会有文件松散地留在脚本旁边。 **为什么自动化脚本特别放在 `Pipeline/VPS_Files/` 中**:Erebus 和 Mnemosyne 会持续、重复地发送 Tor 请求,这正是一种长时间运行且无人值守的工作负载,您肯定不希望它占用您自己的机器,或者随着时间的推移反复将您的家庭网络连接暴露给 Tor 入口节点。偶尔在您自己的机器上手动运行 pipeline 是可以的;而按计划定期运行正是廉价 VPS 的用途所在。`pipeline.py` 和 `run-pipeline.sh` 正是考虑到这种部署场景而编写的。 ## 安装说明 #### 前提假设 - 您的系统上已安装最新版本的 Python - 您的系统上已安装 Tor 二进制文件 - 您的系统上已安装 GnuPG (gpg)(用于 pgp 签名验证,非绝对必要) - 对于 Erebus/Mnemosyne:请在虚拟机(为了最佳安全性,请使用 Whonix)或 VPS 中运行,并在搜索/扫描前连接到 VPN #### Pipeline(如果需要) ##### Erebus → Hemera → Mnemosyne → Khaeos ##### 示例流程: ###### 手动,逐步执行: ``` python d_erebus.py --pages 5 --save-j python d_hemera.py Erebus__.json python d_mnemosyne.py --batch erebus_urls__.txt --save python Khaeos/d_khaeos.py --ingest Mnemosyne_batch_.json --serve ``` 1. Erebus 抓取暗网。它当然可以作为独立工具使用。 2. Hemera 接收 Erebus 的 JSON 输出,并输出一个干净的 .txt 格式的 URL 列表。 3. Mnemosyne 对传入的 .onion 地址进行访问前的安全分析。它是一个独立的工具。 4. Mnemosyne 也可以使用 Hemera 的 .txt 输出以批处理模式运行,从而生成群组摘要。 5. Khaeos 接收单次扫描和批处理的 Mnemosyne JSON 文件,构建自定义的情报索引。 ###### 自动化,每次查询只需一条命令(`Pipeline/VPS_Files/pipeline.py`): ``` cd Pipeline/VPS_Files python pipeline.py "ransomware" python pipeline.py "forums" "leaked credentials" --pages 5 python pipeline.py "malware" --aggressive # optionally queue discovered links for a future run python pipeline.py "markets" --no-khaeos --dry-run ``` 自动将这三个工具串联起来,将每个阶段的输出写入 `output/` 下各自的子文件夹中(参见[仓库结构](#repository-structure)),而不是让文件散落在外。`--aggressive` 参数会使 Mnemosyne 从其扫描的每个页面中提取出站 `.onion` 链接,并将新发现的链接追加到 `output/discovery_queue.txt` 中。在同一次运行中不会扫描额外内容,它们只是被排队留待以后处理,因此单个包含大量链接的页面不会导致运行时间急剧膨胀。`pipeline.py` 会自动在仓库根目录下找到 `d_erebus.py`/`d_hemera.py`/`d_mnemosyne.py`,并在 `Khaeos/` 下找到 `d_khaeos.py`,它不需要在扁平化的目录中运行,直接在克隆的仓库中即可使用。 ###### 在 VPS 上无人值守运行(`run-pipeline.sh` + cron): `run-pipeline.sh` 是一个对 cron 友好的包装脚本:如果存在特定日期的查询文件(如 `config/queries_monday.txt`,并回退到 `config/queries.txt`),它会优先选择该文件,运行 `pipeline.py`,首先消耗*上一次*运行留在发现队列中的内容,然后通过 `validate_batch.py` 验证并将本次运行实际生成的所有批处理结果移动到 SFTP 发件箱中。单个查询失败(如不稳定的 Tor 线路、索引超时)不会中断其余查询,所有成功执行的结果仍然会被验证和移动。 ![Erebus](https://static.pigsec.cn/wp-content/uploads/repos/cas/20/20ec44b8ea1f0d83c9ba40d320398238991cc7dc00f681381b955e1bbedbb4cd.png) ## Erebus 暗网搜索 #### 聚合多个 .onion 搜索引擎中针对特定搜索词的结果。 #### 所有请求均通过 Tor 路由。在任何阶段都不会发起 clearnet 请求。 ### 环境要求 ``` pip install 'requests[socks]' stem beautifulsoup4 rich ``` #### 系统依赖: - **Tor binary** — `brew install tor` (macOS) 或 `sudo apt install tor` (Debian/Ubuntu) ### 用法 ``` python d_erebus.py python d_erebus.py --pages # pages to fetch per index (1-10, default 1, more = slower) python d_erebus.py --save-j # save all results to JSON python d_erebus.py --save-h # save all results to HTML (rich table) python d_erebus.py --no-save # skip all save prompts python d_erebus.py --debug # verbose error output and raw HTML previews ``` ### 搜索引擎 | 搜索引擎 | 类型 | 可靠性 (1(最差)-10(最好)) | |-------|------|-----------| | Ahmia | 结构化的大型索引 | 10 | | Torch | 经典的 Tor 搜索引擎 | 1.5 | | Tor66 | 广泛的暗网索引 | 8 | | notevil | 补充索引 | 4 | | Amnesia | 补充索引 | 9 | 每个索引在无法访问时都会优雅地失败并给出明确的错误信息,而不会影响其他索引。 如果它们失效了,请更新 `d_erebus.py` 中的 .onion 链接。 ### 工作原理 1. **Tor 管理** — 检测 `127.0.0.1:9050` 上现有的守护进程,或启动一个托管的进程。在任何请求发出之前,会等待完全引导完成。 2. **线路轮换** — 在每次索引查询之间请求一个新的 `NEWNYM` 线路,以确保每个搜索引擎都能看到不同的 Tor 身份。 3. **可达性检查** — 在尝试抓取之前先探测每个索引。不可达的索引会被立即跳过,并显示清晰的错误信息,而不是在抓取过程中卡住等待超时。 4. **所有流量均通过 Tor** — 全程使用 `socks5h://` 代理,DNS 解析在 Tor 内部进行。在任何阶段都不发起 clearnet 请求。 5. **去重** — 结果按规范的 `.onion` 主机进行分组。在多个索引的多个路径中出现的同一个主机会被折叠为一个条目,并将分支路径以易读的列表形式展示。已知的链接农场地址(在 `LINK_FARM_BLOCKLIST` 中可配置的黑名单)会被标记为 `⚑`,但不会被丢弃。 6. **输出** — 格式丰富的 CLI 表格展示前 50 个结果,按跨索引的印证程度排序。完整的结果集可以保存为带时间戳的 JSON 文件。 ### 输出结果 - **CLI** — 在格式丰富的表格中展示前 50 个结果,包含标题、规范主机、分支路径、来源索引和摘要 - **JSON** — 完整的结果集将保存为当前目录下的 `Erebus_{query}_{timestamp}.json` 文件 - **HTML** — 完整的结果集将保存为当前目录下的 `Erebus_{query}_{timestamp}.html` 文件,包含带颜色的、显示完整行的富格式表格(需要 `rich`) ### 截图 ![d_erebus1](https://static.pigsec.cn/wp-content/uploads/repos/cas/2b/2b581b3c51dd364e7694fbc03978f540667c6d8e58151f97346586d3f4263eda.png) ![d_erebus2](https://static.pigsec.cn/wp-content/uploads/repos/cas/56/56b4bc400b77fde9cb5ff3dabef231e82a1a386048065e4f8f2d131a01ddab50.png) ![d_erebus3](https://static.pigsec.cn/wp-content/uploads/repos/cas/f6/f6fd1f7c67eb093e90aa12a41b82dacc2569696cd858e290cd1299a6bbfb5071.png) ### 重要提示 - **系统必须安装 Tor。如果找不到二进制文件,该工具将退出并给出清晰的错误信息和安装说明。** - .onion 搜索引擎经常下线并更改地址。如果某个索引持续失败,请验证其当前地址并更新文件中的 `INDEXES`。 - 分页可能会显著增加运行时间。 - 当您发现已知的链接农场 `.onion` 主机名时,请将它们添加到文件顶部的 `LINK_FARM_BLOCKLIST` 中。 - 请勿输入敏感信息作为搜索词。搜索引擎可能会(极有可能)记录搜索内容。请参阅上面的免责声明。 - Torch 运行在 CGI 架构上。对于 CGI 最贴切的描述可以在现存最接近官方 CGI 文档的地方找到 (https://www.w3.org/CGI/):“留作历史参考”。但他们就是在用这个,而且它经常崩溃。 ![Hemera](https://static.pigsec.cn/wp-content/uploads/repos/cas/85/851173a8e2d60b17bfc5744126ec9bd3325d2afee732827133c100d1df89fa9e.png) ## Hemera (URL 提取器) #### 解析 d_erebus.py 的 JSON 输出文件,并提取所有 .onion URL,以便使用 d_mnemosyne.py 进行批量扫描。 #### 默认情况下会排除被标记为链接农场的主机。输出一个干净的文本文件,每行一个 URL。 ##### 只有在使用 pipeline 时才真正有用 ### 环境要求 除 Python 标准库外,没有其他依赖项。 ### 用法 ``` python d_hemera.py python d_hemera.py --output # custom output filename python d_hemera.py --full-paths # emit every unique path per host, not just canonical roots python d_hemera.py --include-farms # include link-farm flagged hosts (not recommended, see notes) python d_hemera.py --no-save # print URLs to stdout only, skip file write ``` ### 工作原理 1. **JSON 解析** — 加载并验证由 `d_erebus.py` 生成的 `Erebus_*.json` 文件。如果文件缺失、格式错误或不是 Erebus 输出文件,程序将退出并显示明确的错误信息。 2. **去重** — 在规范根模式(默认)下,无论看到多少路径,每个 `.onion` 主机只输出一个 URL。在 `--full-paths` 模式下,将包含在所有路径中找到的每个唯一的 URL,并根据确切的 URL 进行去重。 3. **链接农场过滤** — 默认情况下,被 Erebus 标记为链接农场的主机会被静默排除。`--include-farms` 参数可以通过打印警告来覆盖此设置,因为这些主机会产生低信噪比的结果,并浪费大量扫描时间。 4. **输出** — 将提取的列表及其索引编号打印到终端,然后写入一个带时间戳的 `.txt` 文件,该文件可以直接传递给 `d_mnemosyne.py --batch` 使用。 ### 输出结果 - **CLI** — 带编号的提取 URL 列表,并显示包含总结果数、跳过的农场和提取的 URL 数量的摘要 - **TXT** — URL 列表保存为当前目录下的 `erebus_urls_{query}_{timestamp}.txt` 文件,每行一个 URL ### 截图 ![d_hemera1](https://static.pigsec.cn/wp-content/uploads/repos/cas/e3/e315f8d13678dad8d9973b007ffe66de4e50f8a351fbfe885f663d4d68cd291d.png) ![d_hemera2](https://static.pigsec.cn/wp-content/uploads/repos/cas/23/23453874766ae5dd23fdc3a41ce8b8ee9c6440926be3a36057165f78fb459897.png) ### 重要提示 - **输入必须是 `d_erebus.py` 保存的 JSON 文件。** 其他不同结构的 JSON 文件将被拒绝。 - 建议在批处理扫描时使用规范根模式(`http://host/`)——这样可以避免对同一服务的不同路径进行重复扫描。 - 可以使用 `--include-farms` 参数,但它可能会显著增加扫描时间,并且目标价值较低。如果您有特殊原因,请谨慎使用。 - 在传递给 `d_mnemosyne.py` 之前,可以手动编辑输出的 `.txt` 文件——删除任何您想跳过的 URL,或者使用 `#` 添加注释。 ![Mnemosyne](https://static.pigsec.cn/wp-content/uploads/repos/cas/7b/7b8d3c451d567288233864dfc64503cd425786332ae7578f8bde3dfbbe83cfa8.png) ## Mnemosyne (.onion 链接侦察) #### 在访问 .onion 网站或服务之前使用。它会在没有任何直接浏览器交互的情况下分析该地址。 #### 仅通过 Tor 线路获取原始的 HTTP/HTML,不执行 JavaScript,不加载图片,不存储 cookies。 #### 批量检查通过 Erebus 找到的 URL(但务必先使用 Hemera!)或来自自定义列表的 URL。 ### 环境要求 ``` pip install 'requests[socks]' stem beautifulsoup4 python-gnupg ``` #### 系统依赖: - **Tor binary** — `brew install tor` (macOS) 或 `sudo apt install tor` (Debian/Ubuntu) - **gpg binary** — 仅用于 PGP canary 验证(如果您正在使用 Tor,无论如何您都应该有这个) ### 用法 ``` python d_mnemosyne.py python d_mnemosyne.py --save # If not passed you will be prompted to save after scan python d_mnemosyne.py --debug # Prints more verbose error output python d_mnemosyne.py --batch # Multiple link batch scan python d_mnemosyne.py --batch --aggressive # also queue discovered links for a future run python d_mnemosyne.py --batch --aggressive --discovery-out # custom queue path (default: discovery_queue.txt) ``` **退出代码**(可脚本化)(目前可能无法正常工作): - `0` — LOW 风险 - `1` — MEDIUM 风险 - `2` — HIGH 风险 - `3` — CRITICAL 风险 ### 工作原理 1. **Tor 管理** — 使用 `stem` 检测 `127.0.0.1:9050` 上现有的 Tor 守护进程。如果未找到,则使用系统二进制文件和临时数据目录启动一个托管的 Tor 进程。在进行下一步之前,会等待完全引导完成。每次扫描前会通过 `NEWNYM` 请求一个新的线路。托管的进程在退出时干净地终止(或者会另行通知)。 2. **所有流量均通过 Tor 路由** — `requests` 会话使用 `socks5h://` 代理,这意味着主机名解析发生在 Tor 内部。这意味着 .onion 地址永远不会直接接触您的网络。 3. **信誉检查** — 在启动时通过 Tor 获取 Ahmia 滥用黑名单。目标主机会被哈希处理并与列表进行比对,如果发现是已知的因滥用或非法内容而被标记的地址,将会发出通知。 4. **仅进行静态 HTML 分析** — 根页面只会被获取一次,并使用 BeautifulSoup 进行解析。不执行任何 JavaScript。在静态 HTML 上执行的检查包括:script 标签枚举、外部资源泄露检测、内联事件处理器计数、表单分析以及指纹向量模式匹配(WebRTC、canvas、AudioContext 等)。 5. **已知文件探测** — 通过 Tor 获取 `/canary.txt`、`/pgp.txt`、`/.well-known/pgp-key.txt`、`/security.txt`、`/robots.txt` 和 `/sitemap.xml`。 6. **PGP canary 验证** — 如果同时找到了明文签名的 canary 和 PGP 公钥,则会在隔离的临时密钥环中使用 `gpg` 验证签名。如果发现指纹不匹配,则会将其标记为潜在的密钥替换攻击。 7. **风险评分** — 基于以下因素计算加权被动评分 (0–100):clearnet 重定向、外部资源泄露、clearnet 表单动作、clearnet 脚本源、canary 验证失败、缺失的安全标头、指纹向量以及黑名单状态。 8. **批量扫描** - 从文本文件中读取 .onion URL(每行一个),并在一个 Tor 会话中顺序扫描所有目标。输出为分组摘要报告。JSON (--save) 会生成一个合并的单一文件,而不是针对每个目标的文件。使用以下命令生成输入文件:python d_erebus.py --save-j 9. **发现 (--aggressive)** - 提取每个扫描页面上找到的出站 `.onion` 链接,并将新发现的(已去重)链接追加到发现队列文件中——纯文本格式,每行一个 URL,与任何 `--batch` 文件使用的格式相同。在此次运行中不会扫描额外内容;该队列旨在作为 `--batch` 文件在未来的运行中重新输入,这使得单次运行的持续时间变得可预测,而不是让一个充满链接的页面使其无限膨胀。 ### 截图 ##### 单个 URL 扫描 ![d_mnemosyne1](https://static.pigsec.cn/wp-content/uploads/repos/cas/00/009a2e1bbaed0cbec2b8d4b9013512adf93c8a9125177d897a3c2d9b0a665ef2.png) ![d_mnemosyne2](https://static.pigsec.cn/wp-content/uploads/repos/cas/3e/3e0dc46fe44d4cc07c41bc6b90de0e9ccd5d503090257a34cd358d923c5a0f6e.png) ![d_mnemosyne2](https://static.pigsec.cn/wp-content/uploads/repos/cas/12/121b65fe33604e022edd003038d76b5ec981099a8a23f01fe983f61a89bc6ee0.png) ##### 如果以批处理模式运行(遵循 pipeline 或使用自定义的 .txt URL 列表) ![d_mnemosyne_batch](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad0ecdebcadab42d3d1a4f543b82cbc70fbbd321f27ce285c8ef76dfb6e0a9d5.png) ![d_mnemosyne_batch2](https://static.pigsec.cn/wp-content/uploads/repos/cas/2a/2a5e45ed91901b07299ca33ca24808a52ac2057a003653e754a9a53074394720.png) ###### 根据黑名单状态、可达性、去匿名化风险对输出进行分组 ### 重要提示 - **系统必须安装 Tor。如果找不到二进制文件,该工具将退出并给出明确的错误信息和安装说明。** - 自签名证书在 .onion 服务中很常见,并不会被视为风险信号——由于 v3 地址本身即是加密身份,因此针对 .onion 目标禁用了 TLS 验证。 - .onion 服务的响应速度可能明显慢于 clearnet。默认请求超时为 40 秒。在缓慢的隐藏服务上进行扫描可能需要几分钟的时间。 - 在任何阶段都不会打开浏览器,也绝不会执行 JavaScript,因此该工具无法评估动态行为,只能评估静态 HTML 响应中存在的内容(这通常仍然能提供大量信息)。 - 有意将 `Accept-Encoding` 从请求标头中排除,以防止收到压缩的二进制响应。 - well-known/ OMG 指导文件的扫描探测通常只有在扫描根域路径(如 / 而不是 /news)时才有参考价值 ![Khaeos](https://static.pigsec.cn/wp-content/uploads/repos/cas/74/74bd69d7bc2f39da308db76d846e16efa70b02f7eafe4ba9fc7225fc688ec185.png) ## Khaeos 控制中心 #### 针对 .onion 网站的持久化情报索引和时间序列情报追踪器。 #### 接收 Mnemosyne 的 JSON 输出,并构建一个包含每个站点完整扫描历史的可查询本地数据库。 ### 环境要求 ``` pip install fastapi uvicorn ``` ### 用法 ``` python d_khaeos.py # start the web UI (localhost:7777) python d_khaeos.py --ingest # ingest a file, then exit python d_khaeos.py --ingest --serve # ingest then start the UI python d_khaeos.py --db # use a custom database path ``` 支持单次扫描(`Mnemosyne_.json`)和批处理(`Mnemosyne_batch_.json`)输出文件。在重新导入时,重复的扫描(相同主机 + 相同扫描时间)将被静默跳过。 ### 工作原理 1. **数据摄取** — 解析 Mnemosyne JSON(单次或批处理),将所有可达性、风险、标头、canary、脚本和资源数据提取到本地 SQLite 数据库中。每次扫描都会完整存储,关键字段也会作为可查询的列提取出来。批处理文件会作为命名的批次进行追踪,并包含聚合统计数据。 2. **站点画像** — 每个规范的 `.onion` 主机对应一行记录,并在每次导入时更新。跟踪所有扫描中的正常运行时间百分比、延迟滚动平均值、风险评分历史、黑名单状态、canary 有效性记录、clearnet 泄露标志以及安全标头计数。 3. **时间序列追踪** — 每次扫描都会单独存储,允许生成每个站点随时间变化的可达性、延迟、风险评分、安全标头和脚本数量图表;这使得观察不同扫描之间的风险评分偏移成为可能。 4. **类别推断** — 站点标题和摘要会与关键词列表进行匹配,从而自动分配类别(论坛、市场、聊天、电子邮件、新闻、wiki、泄露、加密货币、黑客攻击、托管、社交、搜索、隐私、服务)。类别也可以通过 UI 手动覆盖。 5. **以安全为核心的搜索** — 可以同时根据风险等级、可达性、黑名单状态、是否存在 clearnet 泄露、canary 有效性以及类别对结果进行筛选。排名优先展示信任信号,而不是相关性。 6. **持久化存储** — 所有数据都存储在一个单一的 SQLite 文件中(默认为 `khaeos.db`)。通过 `--db` 指定包含外部驱动器在内的任何路径,即可将数据库存储在您想要的任何位置。数据库会无限增长——扫描结果会永久累积,不会覆盖任何内容。 ### Web UI 服务器启动时,UI 会自动在您的浏览器中打开,地址为 `http://127.0.0.1:7777`。它由四个标签页组成: | 标签页 | 描述 | |-----|-------------| | **Index** | 可搜索、可筛选的站点列表,包含每个站点的安全徽章、正常运行时间和延迟。点击任何条目可查看包含时间序列图表的完整详细视图。 | | **Overview** | 仪表板,展示风险分布、按类别划分的站点、批处理比较图表以及跨数据摄取的批处理趋势线。 | | **Terminal** | 用于数据库查询和管理的命令行界面。 | | **Journal** | 用于自由笔记、标签框和方向连接线的持久化画布。每 60 秒自动保存一次。 | ### 数据库 该数据库使用 SQLite 并启用了 WAL 模式。包含三个表: | 表名 | 描述 | |-------|-------------| | `sites` | 每个规范主机对应一行。在每次导入时更新聚合统计数据。 | | `scans` | 每次扫描运行对应一行。包含完整的 JSON 数据以及用于快速过滤的提取列。 | | `batches` | 每次批处理导入对应一行。包含用于趋势分析的每个批次的聚合统计数据。 | 数据库文件是可移植的——可以将其复制以进行备份,在机器之间移动,或者使用任何 SQLite 浏览器直接打开。要使用外部驱动器: ``` python d_khaeos.py --db /Path/To/Drive/khaeos_folder/khaeos.db ``` 可以添加一个 shell 别名,这样就永远不会忘记路径了: ``` alias khaeos='python /path/to/d_khaeos.py --db /Path/To/Drive/khaeos_folder/khaeos.db' ``` ### 重要提示 - **Khaeos 不会进行任何扫描。** 它纯粹是一个存储和可视化层。所有扫描均由 Mnemosyne 执行。它是一个不暴露于互联网的本地 Web 应用。 - 数据库会无限累积扫描历史。没有自动修剪机制。磁盘使用量会随着站点数量和扫描频率的增加而成比例增长。 - 批处理聚合统计数据(平均风险评分、可达性等)是在数据摄取时计算的,如果以后通过 `db --delete-row`(Terminal 命令)删除了单个扫描记录,这些数据将不会重新计算。 - `khaeos_journal.json` 会与 `khaeos.db` 保存在同一位置,用于在不同会话之间保留 Journal 画布。在对数据库目录进行任何备份时,应同时包含这两个文件。 ## 其他(可能有用的)工具 1. `pgp_verify.py` - 验证 PGP 签名(阅读文件中的注释)(或者直接尝试一下,它是非常直观的) [返回顶部](#dark-web-osint)
标签:ESC4, OSINT, Python, TCP SYN 扫描, Web UI, 多模态安全, 数据泄露, 无后门, 暗网情报, 逆向工具