Knock是一款功能强大的模块化子域名扫描工具,该工具基于Python开发,旨在通过被动侦察和字典扫描快速枚举目标域上的子域。
Knock支持扫描DNS区域传输,并尝试在启用通配符 DNS 记录的情况下自动绕过它。除此之外,该工具还支持对VirusTotal子域的查询,但是需要在config.json文件中配置API_KEY。
requests
dnspython
pyOpenSSL
beautifulsoup4
tqdm
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/guelfoweb/knock.git
然后切换到项目目录中,使用pip命令和项目提供的requirements.txt安装该工具所需的其他依赖组件:
cd knock
pip install -r requirements.txt
然后执行工具安装即可:
pip install .
可以通过修改knockpy/config.json添加你的VirusTotal API_KEY:
“api”:{
“virustotal”:“您的 VIRUSTOTAL API_KEY 在此”
},
usage: KNOCKPY [-h] [-d DOMAIN] [-f FILE] [-v] [--dns DNS] [--useragent USERAGENT]
[--timeout TIMEOUT] [--threads THREADS] [--recon] [--bruteforce]
[--wordlist WORDLIST] [--json-output] [--list] [--report REPORT]
knockpy v.7.0.1 - Subdomain Scan
https://github.com/guelfoweb/knock
options:
-h, --help 示此帮助消息并退出
-d DOMAIN, --domain DOMAIN
要分析的目标域
-f FILE, --file FILE 包含目标域名列表的文件路径
-v, --version 显示程序的版本号并退出
--dns DNS 自定义dns
--useragent USERAGENT
自定义用户代理
--timeout TIMEOUT 自定义超时
--threads THREADS 自定义线程
--recon 子域网络侦查
--bruteforce 子域暴力破解
--wordlist WORDLIST 要导入的字典文件
--wildcard 测试通配符
--json 以JSON格式显示输出
--save FOLDER 保存输出数据的文件夹
--report REPORT 显示保存的报告
完整扫描:
knockpy domain.com
快速扫描:
knockpy domain.com –no-http
设置超时:
knockpy domain.com -t 5
使用--recon和--bruteforce选项开始扫描目标域:
knockpy -d domain.com --recon --bruteforce
设置VirusTotal 和 Shodan的API密钥:
export API_KEY_VIRUSTOTAL=your-virustotal-api-key
export API_KEY_SHODAN=your-shodan-api-key
将报告保存在文件夹中:
knockpy -d domain.com --recon --bruteforce --save report
显示已保存的报告:
knockpy --report domain.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