0x01 Knockpy介绍
Knockpy是一个基于Python3的工具,专为通过字典攻击枚举目标域上的子域而设计。
0x02 Knockpy安装
安装前确保已安装python3、pip3、git。
<code>$ git clone https://github.com/guelfoweb/knock.git</code>
选择以下任一方式安装:
全局site-packages目录:
<code># python3 setup.py install</code>
用户site-packages目录:
<code>$ python3 setup.py install --user</code>
使用virtualenv + pip:
<code>$ virtualenv --python=python3 venv3 $ source venv3/bin/activate $ pip3 install -r requirements.txt</code>
0x03 Knockpy帮助
usage: knockpy [-h] [-v] [--no-local] [--no-remote] [--no-http] [--no-http-code CODE [CODE ...]] [-w WORDLIST] [-o FOLDER] [-t SEC] domain
--------------------------------------------------------------------------------
* SCAN
full scan: knockpy domain.com
fast scan: knockpy domain.com --no-http
quick scan: knockpy domain.com --no-http --no-local
ignore code: knockpy domain.com --no-http-code 404 500 530
timeout: knockpy domain.com -t 2
* REPORT
show report: knockpy --report knockpy_report/domain.com_yyyy_mm_dd_hh_mm_ss.json
plot report: knockpy --plot knockpy_report/domain.com_yyyy_mm_dd_hh_mm_ss.json
csv report: knockpy --csv knockpy_report/domain.com_yyyy_mm_dd_hh_mm_ss.json
* SETTINGS
set apikey: knockpy --set apikey-virustotal=APIKEY
set timeout: knockpy --set timeout=sec
--------------------------------------------------------------------------------
positional arguments:
domain target to scan
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
--no-local local wordlist ignore
--no-remote remote wordlist ignore
--no-http http requests ignore
--no-http-code CODE [CODE ...]
http code list to ignore
-w WORDLIST wordlist file to import
-o FOLDER report folder to store json results
-t SEC timeout in seconds
0x04 Knockpy用法
全扫描
<code>$ knockpy domain.com</code>
攻击类型:dns + http(s)请求
Knockpy 使用内部文件wordlist.txt。如果要使用外部词典,可以使用-w选项并指定词典文本文件的路径。
Knockpy也尝试从子域google,duckduckgo和virustotal。结果将被添加到通用词典中。
强烈建议使用您可以免费获得的virustotal API_KEY。最好的结果总是来自virustotal。
但是,如果您只想使用本地单词列表,而不需要搜索引擎查询,您可以添加–no-remote绕过远程侦察。
如果要忽略具有特定代码的 http(s) 响应,可以使用–no-http-code后跟代码列表的选项404 500 530
快速扫描
<code>$ knockpy domain.com --no-http</code>
攻击类型:dns
仅DNS请求,不会发出http(s)请求。这样响应会更快,您将获得IP地址和子域。
如果是,子域的颜色将为青色,alias在这种情况下,还将提供真实的主机名。
设置超时
<code>$ knockpy domain.com -t 5</code>
默认超时 =3秒。
病毒总APIKEY
<code>$ knockpy --set apikey-virustotal=APIKEY</code>
免费获得virustotal APIKEY
显示报告
<code>$ knockpy --report knockpy_report/domain.com_yyyy_mm_dd_hh_mm_ss.json</code>
在终端中显示报告。
CSV 报告
<code>$ knockpy --csv knockpy_report/domain.com_yyyy_mm_dd_hh_mm_ss.json</code>
将报告另存为csv文件。
绘图报告
<code>$ knockpy --plot knockpy_report/domain.com_yyyy_mm_dd_hh_mm_ss.json</code>
情节关系。
导出目录
<code>$ knockpy domain.com -o /path/to/new/folder</code>
所有扫描都保存在knockpy_report您可以在config.json文件中编辑的默认文件夹中。
或者,您可以使用该-o选项来定义新文件夹路径。
报告 在每次扫描时,报告将自动json以名称保存在文件中domain.com_yyyy_mm_dd_hh_mm_ss.json。
如果您不喜欢自动保存,您可以config.json通过将值更改为”save”: false.
要以人工格式阅读报告,您可以按照显示报告中的说明进行操作。
报告示例domain.com_yyyy_mm_dd_hh_mm_ss.json:
<code>{ "sub-1.domain.com": { "domain": "host.domain.ext", "alias": ["sub-1.domain.com"], "ipaddr": [ "123.123.123.123" ], "code": 200, "server": "Microsoft-IIS/8.5" }, ................................... -- cut -- ................................... "sub-n.domain.com"{ "domain": "", "alias": [], "ipaddr": [ "123.123.123.124" ], "code": 500, "server": "nginx/1.15.6 " }, "_meta": { "name": "knockpy", "version": "5.1.0", "time_start": 1616353591.2510355, "time_end": 1616353930.6632543, "domain": "domain.com", "wordlist": 2120 } }</code>
_meta 是保留键,包含扫描的基本信息。
0x05 Knockpy获取
暂无评论内容