命令行工具扫描搜索结果中的漏洞
dorkbot的Python项目详细描述
多克博特
扫描谷歌(或其他)搜索结果以查找漏洞。
dorkbot是一个模块化的命令行工具,用于对google搜索查询或其他支持源返回的网页集执行漏洞扫描。它分为两组模块:
- 索引器-返回目标列表的模块
- 扫描仪-对每个目标执行漏洞扫描的模块
目标被存储在本地数据库文件中,直到它们被扫描,这时会生成一个标准的json报告,其中包含发现的任何漏洞。索引和扫描过程可以单独运行,也可以组合在一个命令中(最多一个)。
用法
usage: dorkbot.py [-h] [-c CONFIG] [-r DIRECTORY] [-d DATABASE] [-f] [-i INDEXER] [-l] [-o INDEXER_OPTIONS] [-p SCANNER_OPTIONS] [-s SCANNER] optional arguments: -h, --help show this help message and exit -c CONFIG, --config CONFIG Configuration file -r DIRECTORY, --directory DIRECTORY Dorkbot directory (default location of config, db, tools, reports) -d DATABASE, --database DATABASE Database file/uri -f, --flush Flush table of fingerprints of previously-scanned items -i INDEXER, --indexer INDEXER Indexer module to use -l, --list List targets in database -o INDEXER_OPTIONS, --indexer-options INDEXER_OPTIONS Indexer-specific options (opt1=val1,opt2=val2,..) -p SCANNER_OPTIONS, --scanner-options SCANNER_OPTIONS Scanner-specific options (opt1=val1,opt2=val2,..) -s SCANNER, --scanner SCANNER Scanner module to use
要求
python 2.7.x/3.x(跨平台) psycopg2(如果使用postgresql)
工具
根据需要,Dorkbot将按以下顺序搜索工具:
- 通过相关模块选项指定的目录
- 位于dorkbot的tool s目录中,子目录以该工具命名
- 在用户路径中提供(例如,已安装的系统范围内)
快速启动
创建一个自定义搜索引擎并注意搜索引擎id,例如012345678901234567891:abc12defg3h。 下载arachni或wapiti,将其解压到tools目录(例如~/.config/dorkbot/tools/),并根据需要将子目录重命名为arachni或wapiti。
$ sudo apt install phantomjs
$ ./dorkbot.py -i google -o engine=012345678901234567891:abc12defg3h,query="filetype:php inurl:id"αααα4或ααα5
文件
dorkbot目录用于管理所有配置文件、sqlite3数据库、工具和报告。默认情况下,它位于~/.config/dorkbot/(Linux/MacOS)或应用程序数据文件夹(Windows)中。它将接受$xdg_config_home/%appdata%,或者您可以使用--directory标志强制指定目录。此目录中的默认文件路径如下:
- dorkbot配置文件:dorkbot.ini
- 扫描仪URL黑名单文件:blacklist.txt
- sqlite3数据库文件:dorkbot.db
- 外部工具目录:tools/
- 扫描报告输出目录:报告/
配置文件
配置文件(dorkbot.ini)可用于预填充某些命令行标志。
dorkbot.ini示例:
[dorkbot] database=/opt/dorkbot/dorkbot.db
黑名单文件
黑名单文件(blacklist.txt)是一个url模式的正则表达式列表,应该而不是被扫描。如果目标URL与此文件中的任何行匹配,则将跳过该URL并将其从数据库中删除。注意:不要在文件中留下任何空行。
黑名单示例.txt:
^[^\?]+$ .*login.* ^https?://[^.]*.example.com/.*
第一行将删除不包含问号的任何目标,换句话说,删除不包含任何要测试的get参数的任何url。第二次尝试避免登录功能,第三次黑名单列出example.com上的所有目标URL。
索引器模块
谷歌
通过自定义搜索元素在谷歌自定义搜索引擎(CSE)中搜索目标。
要求:phantomjs
选项:
- 发动机-cse id
- 查询-搜索查询
- phantomjs_dir-包含bin/phantomjs(defau)的phantomjs基目录lt:tools/phantomjs/)
- 域-将搜索限制为指定的域
谷歌API
通过json api在google自定义搜索引擎(cse)中搜索目标。
要求:无
选项:
- 键-api键
- 发动机-cse id
- 查询-搜索查询
- 域-将搜索限制为指定的域
普通爬网
在commoncrawl.org结果中搜索目标。
要求:无
选项:
- 域-拉取给定域或子域的所有结果
- 索引-搜索特定索引,例如cc-main-2019-22(默认:最新)
- 筛选器-应用于搜索的查询筛选器
后退
在archive.org结果中搜索目标。
要求:无
选项:
- 域-拉取给定域或子域的所有结果
- 筛选器-应用于搜索的查询筛选器
- 起始时间戳
- 结束时间戳
必应API
通过Bing网络搜索API搜索目标。
要求:无
选项:
- 键-api键
- 查询-搜索查询
标准物质
从标准输入中读取目标,每行一个。
要求:无
选项:无
扫描仪模块
(常规选项)
无论所选模块如何,这些选项都适用
- 黑名单-包含从扫描到黑名单的(regex)模式的文件(默认:blacklist.txt)
- report_dir-保存漏洞报告的目录(默认:reports/)
- log-附加扫描活动的日志文件(默认:打印到标准输出)
- 标签-要包含在漏洞报告中的友好名称字段
- count-要扫描的URL数,或-1扫描所有URL(默认值:-1)
- 随机-按随机顺序扫描URL
蛛形纲动物
用arachni命令行扫描仪扫描目标。
要求:arachni
选项:
- arachni-dir-包含bin/arachni和bin/arachni-reporter的arachni基目录(默认:tools/arachni/)
- checks-要执行的漏洞检查的空格分隔列表(默认值:"active/*")
- 超时-以小时为单位的最大扫描时间:分:秒(默认:禁用)
- 单线程-将浏览器池和最大并发性分别设置为一个
- Throttle-每秒最大请求数(默认:禁用)
马鹿
用wapiti命令行扫描仪扫描目标。
要求:wapiti
选项:
- wapiti_dir-包含bin/wapiti的wapiti基目录(默认:tools/wapiti/)
- modules-要执行的以空格分隔的模块列表(默认值:"blindsql exec file permanentxss sql xss")