当前位置: 首页 > news >正文

JustOne--一款类OneForAll的子域名收集工具

JustOne

子域名收集工具 | Subdomain Collection Tool

基于 Python 3.14 的现代化子域名收集工具,支持多源收集、爆破、置换扩展、存活验证、DNS 安全检测及接管风险检测。
Github地址:https://github.com/Yumi10086/JustOne

功能

  • 多源收集 — 12 个搜索引擎 + 3 个证书透明度日志 + 15 个开放数据集 + 5 个威胁情报
  • DNS 爆破 — 高并发词表爆破,递归深度扩展
  • 子域置换 — 基于已有子域名生成变异候选(前缀/后缀/数字/连字符插入)
  • 存活验证 — HTTP 异步批量检查 / DNS 快速解析
  • DNS 安全检测 — DNSSEC 状态、多解析器一致性对比(投毒/劫持检测)
  • 接管检测 — DNS CNAME + HTTP 指纹双确认,预装 15 种服务指纹
  • 代理支持 — 代理优先 → 直连回退,国内外双栈
  • 输出格式 — CSV / JSON / TXT

快速开始

环境要求

  • Python 3.14+
  • 虚拟环境(推荐)

安装

git clone https://github.com/your/JustOne.git
cd JustOnepython -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activatepip install typer rich requests dnspython loguru aiohttp pydantic tqdm

配置

复制环境变量模板并根据需要填写 API Key:

cp config/.env.example config/.env

部分模块需要 API Key 才能工作(FOFA、Hunter、Shodan、ZoomEye、VirusTotal 等),不配置则自动跳过。

使用

完整收集

# 默认流程:搜索引擎 + 证书 + 数据集 + 爆破 + 置换
python justone.py main example.com# 跳过特定模块
python justone.py main example.com --no-brute
python justone.py main example.com --no-altdns
python justone.py main example.com --no-search

子域爆破

python justone.py brute example.com
python justone.py brute example.com -w wordlist.txt -c 1000

子域置换扩展

# 自动收集+爆破后置换
python justone.py altdns example.com# 从已知子域名文件直接置换
python justone.py altdns example.com -i subdomains.txt# 禁用特定置换规则
python justone.py altdns example.com -i subs.txt --no-number --no-insert

存活检查 & DNS 安全检测

# HTTP 存活检查
python justone.py check example.com# 仅 DNS 检查
python justone.py check example.com --dns# DNS 安全检测(DNSSEC + 投毒/劫持检测)
python justone.py check example.com --dns-security
python justone.py check example.com --dnssec# 从文件批量检查
python justone.py check -i subdomains.txt

子域接管检测

python justone.py takeover example.com
python justone.py takeover -i subdomains.txt
python justone.py takeover example.com --concurrent 50

输出选项

python justone.py main example.com -o results.csv          # 指定输出路径
python justone.py main example.com -f json                 # 输出格式: csv/json/txt

未指定输出路径时,结果自动保存到 results/ 目录:

命令 默认文件名
main results/collect_域名.csv
brute results/brute_域名.csv
altdns results/altdns_域名.csv
check results/check_域名.csv
takeover results/takeover_域名.csv

模块架构

justone.py          ← Typer CLI 入口
config/settings.py       ← Pydantic BaseSettings 配置logging.py        ← loguru 日志
common/module.py         ← 同步模块基类 (requests)async_module.py   ← 异步模块 Mixin (aiohttp)domain.py         ← 域名解析utils.py          ← 工具函数 (匹配/代理/重试)resolve.py        ← DNS 批量解析database.py       ← SQLite 持久化
modules/collect.py        ← 收集调度器brute.py          ← DNS 爆破altdns.py         ← 子域置换export.py         ← CSV/JSON/TXT 导出search/           ← 12 个搜索引擎certificates/     ← crt.sh / CertSpotter / Censysdatasets/         ← 15 个开放数据集dnsquery/         ← MX / NS / SOA / SPF / TXT 查询intelligence/     ← Threat Intelligence (AlienVault / VirusTotal 等)check/            ← HTTP / DNS / CDN / AXFR / 安全检测等takeover/         ← 子域接管检测
data/               ← 词表、CDN 指纹、公共后缀列表

代理配置

config/.env:

PROXY_ENABLE=true
PROXY_POOL=http://127.0.0.1:10808

行为:配置了代理则代理优先 → 失败回退直连;未配置则全程直连。

测试

pytest                          # 全量测试
pytest tests/test_altdns.py    # 单模块测试
pytest -k "test_dnssec"         # 按关键字过滤

全量测试约 340+ 用例,7 个跳过为 API Key 缺失模块,属正常预期。

数据源

每个模块可通过命令行 --no-xxx 选择性关闭,或在 config/.env 中配置对应的 API Key。

类别 模块
搜索引擎 Baidu, Bing, Google, Yahoo, Yandex, So, Sogou, Fofa, Hunter, Shodan, ZoomEye, Gitee
证书 crt.sh, CertSpotter, Censys
数据集 Anubis, Chinaz, Circl, Cloudflare, DNSDumpster, DNSdb, FullHunt, HackerTarget, IP138, LeakIX, NetCraft, PassiveDNS, RapidDNS, Robtex, SecurityTrails, SiteDossier
威胁情报 AlienVault OTX, URLScan.io, ThreatBook, VirusTotal, ThreatMiner
DNS 查询 MX, NS, SOA, SPF, TXT
安全检测 DNSSEC / 多解析器一致性 / 劫持检测
接管检测 15 种服务指纹 (GitHub Pages, AWS S3, Heroku, Vercel 等)

致谢

本项目的模块架构和收集思路参考了 OneForAll — 一个优秀的子域名收集工具。

http://www.zskr.cn/news/1429447.html

相关文章:

  • 3分钟解锁游戏性能潜力:DLSS Swapper智能管理方案
  • 知乎内容终极备份方案:如何完整保存你的知识资产
  • 安全库存怎么设定?供应链库存管理的核心参数? - 众智商学院职业教育
  • 终极指南:三步搞定小说离线阅读,novel-downloader让你的数字图书馆永不消失
  • 掌握Windows系统管理艺术:Chris Titus Tech WinUtil深度实战指南
  • 别再瞎调了!Unity UI自适应保姆级教程:Canvas Scaler三种模式实战对比(附避坑清单)
  • 音乐解锁终极指南:3分钟掌握12种加密格式免费转换
  • 5分钟快速上手:用AutoMdxBuilder轻松制作专业MDX词典
  • 【基础知识】Python入门:序列
  • 从零打造仿生机械手:Arduino控制与3D打印实战指南
  • 低调的黑客
  • 2026四川成都+都江堰+青城山+九寨沟7天6晚导游排行榜|实测与避坑 - 随峰国旅
  • 软考中级题库哪个好?真题、模拟题和刷题软件推荐 - 众智商学院官方
  • 从零开始在 Linux 上编译运行 lvgljs 图形界面项目
  • 2026金属花箱多少钱?影响价格的关键因素解析
  • 【RT-DETR实战】098、Web端部署实战:当RT-DETR遇上TensorFlow.js的坑与解法
  • 2026四川成都+峨眉山+乐山大佛6天5晚导游推荐|口碑路线分析 - 随峰国旅
  • AI驱动ERP自动单据识别、预测补货、动态定价——手把手部署Llama-3+Odoo 17全流程
  • 2026这6款硬核降AI率平台大曝光,一键把AI检测率精准控到安全区! - 降AI小能手
  • 基于ESP32的智能纸浆机DIY:从电路设计到3D打印全流程
  • 研发团队用的轻量工时+原型+效果图一体化协同系统(SpringBoot+Vue)
  • 2026四川成都+乐山大佛+峨眉山5天4晚导游排名|无购物口碑分析 - 随峰国旅
  • Opus 4.8发布,Anthropic估值正式超越 OpenAI
  • Markn:重新定义Markdown编辑体验的轻量级实时预览工具
  • 郑州门联柜工厂,郑州致远门业工厂直发
  • 2026四川九寨沟+黄龙+四姑娘山7天6晚导游TOP榜|纯玩实测与避坑解析 - 随峰国旅
  • HS2-HF Patch:高效解锁Honey Select 2完整汉化与功能增强的实用指南
  • 2026 年长沙门窗怎么选? - 涂伟
  • 2026四川稻城亚丁情侣游导游排名|纯玩口碑分析+避坑攻略 - 随峰国旅
  • 租赁中介用什么中介房源管理系统合适