命令行工具扫描搜索结果中的漏洞

dorkbot的Python项目详细描述


Dorkbot的图片

多克博特

扫描谷歌(或其他)搜索结果以查找漏洞。

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/),并根据需要将子目录重命名为arachniwapiti

$ 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")

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么stripVersion不能在带有mojo依赖项的mavendependencyplugin上工作   java存储具有不同功能的大量对象   java Spring MockMvc自定义验证器未在Spring容器中注册/调用   javascript程序编辑实体而不是添加   C++如何在java上检索图形卡信息?   java如何在没有方法参数的方法上使用@cacheable注释的键   java如何获取特定用户或学生的JSON   java可序列化AjaxRequestTarget   java Tomcat 8禁用分块编码过滤器   java这个简单的Swingbase类是线程安全的吗?   java调用Gdi32。使用JNA获取对象   如何使用来自其他类Java Android onClick的方法?   json序列化已经有了id(java.lang.String)的POJO   java使用jsp上传多个文件?   java有没有办法为Android项目在EclipseIndigo上设置JVM参数?   Eclipse中的java,为什么它告诉我添加一个已经存在的分号?   Java中的正则表达式拆分行   Java:在单行中赋值