Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
knockpy — Knock子域名扫描 | Kitploit
工具/GitHubGitHub/guelfoweb/knockpy
OSINT (开源情报)侦察DNS和子域名枚举信息收集渗透测试子域名枚举DNS 分析DNS和子域名枚举 分类第 11 名子域名枚举 分类第 11 名
4.2k87396个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHub
guelfoweb/knockpy

knockpy

Knock子域名扫描

查看仓库

🔍 Knockpy Subdomain Scan v9.0

✅ 高速 & 异步 • 🔐 侦察 + 暴力枚举 • 🔧 易于扩展

KnockPy 是一个模块化的 Python 3 工具,用于通过被动侦察和暴力枚举来枚举子域名,现已支持 async/await,具有增强的性能和现代化的 HTTP/TLS 处理。


🚀 功能特性 (v9)

  • ✅ 异步扫描,支持 httpx 和 DNS 解析
  • ✅ 模块化:可轻松添加新的被动数据源
  • 🔍 支持 被动侦察、暴力枚举 或两者结合
  • 🎨 使用 Rich 实现格式化的终端输出(表格、进度条、面板)
  • 📜 验证 HTTP/HTTPS 状态、TLS 证书 和 IP 地址
  • ⚠️ 检测过时的 TLS 支持(TLS 1.0/1.1),并在 CLI/详细输出/HTML 报告中作为警告显示
  • 🧾 在域名模式扫描期间,对根域名执行 AXFR(区域传输) 检查
  • 🔎 --verbose 单域名诊断(DNS/TCP/TLS/重定向链/请求错误 + 安全检查)
  • 💡 支持 通配符 DNS 检测
  • 🧪 SQLite 报告,支持交互式目录(show/delete/export/search)
  • 🔐 支持 VirusTotal 和 Shodan API
  • 🚀 通过 TLS 探测端点缓存优化暴力枚举运行时间(无需更改超时设置)

📦 安装

从 GitHub 源安装(推荐)

root@kitploit:~
git clone https://github.com/guelfoweb/knockpy.git
cd knockpy
# 推荐:在虚拟环境中安装
python3 -m venv .venv
. .venv/bin/activate
python3 -m pip install -U pip
pip install .

# 备选:为当前用户安装(不使用虚拟环境)
# python3 -m pip install --user .

⚠️ 推荐 Python 版本:3.9+

🧱 项目结构

代码库按职责划分,并提供稳定的外观以保持向后兼容性:

root@kitploit:~
knockpy/
  cli.py                   # CLI 入口(外观/编排)
  cli_parts/
    status.py              # 运行时/状态面板渲染
    setup.py               # 交互式设置和持久化运行时默认值
    report.py              # 交互式报告模式
    scan_flow.py           # 排除规则、侦察测试、通配符辅助函数
  core.py                  # 公共核心外观(兼容性)
  engine/
    runtime.py             # 扫描引擎实现
  storage.py               # 公共存储外观(兼容性)
  storage_parts/
    db.py                  # SQLite 持久化/设置
    export.py              # 报告导出编排
    html_report.py         # HTML 报告渲染
  output.py                # 终端输出渲染
  server_versions.py       # Web 服务器版本目录
  knockpy.py               # 兼容模块导出

兼容性说明:

  • 推荐的对外导入方式:import knockpy 或 from knockpy import KNOCKPY。
  • 内部模块已拆分为 engine/、cli_parts/ 和 storage_parts/。

使用 pip 安装

仅在稳定版本发布到 GitHub 后

root@kitploit:~
pip install knock-subdomains

🧪 使用方法

root@kitploit:~
knockpy -d domain.com [选项]

选项

性能调优:--threads 和 --timeout

这两个选项对大规模扫描的运行时间影响最大。

  • --threads 控制并发度(并行处理的目标数)
  • --timeout 控制每个网络步骤在放弃前等待的时间

权衡:

  • 更高的 threads = 扫描更快,但会增加 CPU/网络/DNS 负载,并增加远程频率限制的风险
  • 更低的 timeout = 扫描更快,但可能遗漏有效但响应慢的目标(假阴性)

推荐配置:

  • 小型/精确扫描(少量域名):--threads 50 --timeout 5
  • 平衡扫描:--threads 150 --timeout 4
  • 大型扫描(10000+ 域名):从 --threads 250 --timeout 3 开始

如果您在非常大的列表中既需要速度又需要完整性,请使用两遍策略:

  1. 快速扫描:--threads 250 --timeout 3
  2. 仅对缺失/不确定的目标进行重试:--threads 80 --timeout 5(或更高)

注意:

  • CLI 值始终覆盖通过设置保存的值
  • 保存的设置值(--setup)覆盖内置默认值
  • 当前内置默认值为 threads=250,timeout=3

📌 示例

🔎 侦察 + 暴力枚举

root@kitploit:~
knockpy -d example.com --recon --bruteforce

🧪 侦察服务测试

root@kitploit:~
knockpy -d example.com --recon --test

🔄 更新 Web 服务器最新版本目录

root@kitploit:~
knockpy --update-versions

🆕 检查 Knockpy 更新

root@kitploit:~
knockpy --check-update

⚙️ 侦察源配置(可编辑)

首次运行时,KnockPy 会创建:

root@kitploit:~
~/.knockpy/recon_services.json

您可以通过编辑 services 数组来添加/禁用数据源。 您也可以指向自定义文件路径,无需修改代码:

root@kitploit:~
export KNOCK_RECON_SERVICES=/path/to/recon_services.json

每个服务支持:

  • name
  • enabled(true/false)
  • parser
  • url_template(支持 {domain}、{virustotal_key}、{shodan_key})
  • requires_api(virustotal 或 shodan,可选)

支持的解析器:

  • csv_first_column
  • rapiddns_html_td
  • json_list
  • virustotal_subdomains
  • shodan_subdomains

📥 从 stdin 获取域名

root@kitploit:~
echo "example.com" | knockpy -d

🧠 API 密钥(可选)

root@kitploit:~
export API_KEY_VIRUSTOTAL=your-virustotal-api-key
export API_KEY_SHODAN=your-shodan-api-key

您可以使用 .env 文件:

root@kitploit:~
API_KEY_VIRUSTOTAL=your-virustotal-api-key
API_KEY_SHODAN=your-shodan-api-key

💾 报告(SQLite + 交互式 HTML 导出)

root@kitploit:~
knockpy -d example.com --recon --bruteforce
knockpy --report list
knockpy --report latest
knockpy --report

交互式报告菜单:

  • 1 show
  • 2 delete
  • 3 export
  • 4 search
  • 0 reset db(需要明确确认)

退出报告模式:

  • 在空白操作提示下按 Enter
  • 或按 CTRL+C

🔍 单域名诊断

root@kitploit:~
knockpy -d forum.example.com --verbose

🧪 仅测试通配符

root@kitploit:~
knockpy -d example.com --wildcard

🧬 Python API 用法

KnockPy 可作为 Python 模块使用:

root@kitploit:~
import knockpy

result = knockpy.KNOCKPY("example.com", timeout=5.0, threads=20)
print(result["domain"], result["ip"])

或者:

root@kitploit:~
from knockpy import KNOCKPY

domain = 'example.com'

results = KNOCKPY(
    domain,
    dns="8.8.8.8",
    useragent="Mozilla/5.0",
    timeout=5,
    threads=10,
    recon=True,
    bruteforce=True,
    wordlist=None,
    silent=False
)

for entry in results:
    print(entry['domain'], entry['ip'], entry['http'], entry['cert'])

📂 字典文件

默认字典包含在 knockpy/wordlist/wordlist.txt 中。 您可以使用 --wordlist 提供自己的字典文件。

测试

root@kitploit:~
python3 -m pytest

# (可选)快速运行示例脚本
python3 examples/poc.py

📖 许可证

根据 GPLv3 许可证授权。

Gianni Amato (@guelfoweb)

下载工具
标志描述
-d, --domain目标域名(若不带值使用,则从 stdin 读取)
-f, --file包含域名列表的文件
--recon启用被动侦察
--bruteforce, --brute使用字典进行暴力枚举
--exclude TYPE VALUE排除匹配项(status、length/lenght、body)
--verbose仅对单域名扫描进行深度诊断
--wildcard测试通配符 DNS 并退出
--test与 --recon 一起使用,测试每个侦察源(失败/空/数据)
--setup交互式设置(运行时默认值 + 数据库中的 API 密钥)
--update-versions更新本地最新的 Web 服务器版本目录
--report [ID|latest|list]报告模式(交互式显示/删除/导出/搜索/重置数据库,导出 HTML)
--check-update检查 PyPI 上是否有更新的 Knockpy 版本
--wordlist运行时覆盖字典文件
--dns运行时覆盖 DNS 解析器
--useragent运行时覆盖 HTTP User-Agent
--timeout运行时覆盖超时时间(秒)
--threads运行时覆盖并发工作线程数
--silent隐藏进度条
--json仅输出 JSON(强制启用 --silent)
--status打印运行时状态并继续
-h, --help显示帮助信息