Knock是一款功能强大的模块化子域名扫描工具,该工具基于Python开发,旨在通过被动侦察和字典扫描快速枚举目标域上的子域。

Knock支持扫描DNS区域传输,并尝试在启用通配符 DNS 记录的情况下自动绕过它。除此之外,该工具还支持对VirusTotal子域的查询,但是需要在config.json文件中配置API_KEY。
requests
dnspython
pyOpenSSL
beautifulsoup4
tqdm
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
然后切换到项目目录中,使用pip命令和项目提供的requirements.txt安装该工具所需的其他依赖组件:
cdknock
pipinstall -r requirements.txt
然后执行工具安装即可:
可以通过修改knockpy/config.json添加你的VirusTotal API_KEY:
“api”:{
“virustotal”:“您的 VIRUSTOTAL API_KEY 在此”
},
usage: KNOCKPY [-h] [-d DOMAIN] [-f FILE] [-v] [--dns DNS] [--useragent USERAGENT]
[
[
knockpy v.7.0.1 - Subdomain Scan
https://github.com/guelfoweb/knock
options:
-h,
-d DOMAIN,
要分析的目标域
-f FILE,
-v,
自定义用户代理
完整扫描:
快速扫描:
knockpy domain.com –no-http
设置超时:
使用--recon和--bruteforce选项开始扫描目标域:
knockpy-ddomain.com--recon--bruteforce
设置VirusTotal 和 Shodan的API密钥:
export API_KEY_VIRUSTOTAL=your-virustotal-api-key
export API_KEY_SHODAN=your-shodan-api-key
将报告保存在文件夹中:
knockpy-ddomain.com--recon--bruteforce--savereport
显示已保存的报告:
knockpy--reportdomain.com_yyyy_aa_dd_hh_mm_ss.json
作为模块导入:
from knock import KNOCKPY
domain = 'domain.com'
results = KNOCKPY(domain, dns=None, useragent=None, timeout=None, threads=None, recon=True, bruteforce=True, wordlist=None)
print (results)

本项目的开发与发布遵循GPL-3.0开源许可协议。
Knock:
https://github.com/guelfoweb/knock