前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PaGoDo:一款功能强大的被动式Google Dork

PaGoDo:一款功能强大的被动式Google Dork

作者头像
FB客服
发布2020-10-27 16:04:05
1.4K0
发布2020-10-27 16:04:05
举报
文章被收录于专栏:FreeBuf

工具介绍

这个项目的主要目的是开发一个被动式的Google Dork脚本来收集互联网中存在潜在安全漏洞的Web页面以及应用程序。这个项目由两个部分组成,第一个就是ghdb_scraper.py脚本,该脚本可以检索Google Dork。而第二个就是pagodo.py,该脚本可以直接利用ghdb_scraper.py收集到的信息。

Google Dork是什么?

Google Hacking Database (GHDB) 目前由Offensive Securiy负责维护。其中包含的是Google搜索合集,名叫Dorks,广大研究人员可以利用它来搜索存在安全问题得应用程序,而这些信息都是由Google的搜索Bot收集来的。

工具安装

该工具的所有脚本均基于Python 3.6+开发,广大研究人员可以使用下列命令将项目源码克隆至本地,并完成工具安装:

代码语言:javascript
复制
git clone https://github.com/opsdisk/pagodo.git

cd pagodo

virtualenv -p python3 .venv  # If using a virtual environment.

source .venv/bin/activate  # If using a virtual environment.

pip install -r requirements.txt

如果被Google屏蔽了怎么办?

如果你在工具的使用过程中,收到了HTTP 503错误,那说明Google已经将你检测为了Bot,并且会屏蔽你的IP地址一段时间。解决方案就是使用proxychains,proxychains4的安装命令如下:

代码语言:javascript
复制
apt install proxychains4 -y

通过编辑/etc/proxychains4.conf配置文件,可以将不同的代理服务器串联起来并进行循环查找。在下面的示例中,我们将使用使用不同的本地侦听端口(9050和9051),并设置2个不同的动态socks代理。

代码语言:javascript
复制
vim /etc/proxychains4.conf

round_robin

chain_len = 1

proxy_dns

remote_dns_subnet 224

tcp_read_time_out 15000

tcp_connect_time_out 8000

[ProxyList]

socks4 127.0.0.1 9050

socks4 127.0.0.1 9051

在Python脚本中引入proxychains4之后,脚本将通过不同的IP地址来进行信息查询,在这里还可以使用-e参数来设定查询间隔:

代码语言:javascript
复制
proxychains4 python3 pagodo.py -g ALL_dorks.txt -s -e 17.0 -l 700 -j 1.1

ghdb_scraper.py

首先,ghdb_scraper.py需要一个包含当前所有Google Dorks的列表,Google Dorks的时间戳文件以及其他分类Dorks都已经在代码库中了。幸运的是,整个数据库都可以使用ghdb_scraper.py中的GET请求来拉去到本地,我们还可以将所有的Dork导出至一个文件中。

获取所有的Dork:

代码语言:javascript
复制
python3 ghdb_scraper.py -j -s

获取所有的Dork并将它们写入至单独类目中:

代码语言:javascript
复制
python3 ghdb_scraper.py -i

所有的Dork类目如下:

代码语言:javascript
复制
categories = {

    1: "Footholds",

    2: "File Containing Usernames",

    3: "Sensitives Directories",

    4: "Web Server Detection",

    5: "Vulnerable Files",

    6: "Vulnerable Servers",

    7: "Error Messages",

    8: "File Containing Juicy Info",

    9: "File Containing Passwords",

    10: "Sensitive Online Shopping Info",

    11: "Network or Vulnerability Data",

    12: "Pages Containing Login Portals",

    13: "Various Online devices",

    14: "Advisories and Vulnerabilities",

}

pagodo.py

如果包含Google Dork的文件已存在的话,我们就可以使用-g参数将文件传递给pagodo.py并开始收集存在漏洞的应用程序。pagodo.py脚本利用了google Python库来搜索Google站点,比如说:

代码语言:javascript
复制
intitle:"ListMail Login" admin -demo

-d参数可以用来指定一个目标域名:

代码语言:javascript
复制
site:example.com

如果在短时间内向Google发送太多请求的话,Google会将我们判定为机器人,并且会在一段时间内屏蔽我们的IP地址。为了让搜索查询看起来更加人性化,我们还做出了一些改进,以便在Google搜索查询中允许用户代理随机化。这个功能在该工具的v1.9.3版本中可用,允许我们随机选择用于每次搜索的不同用户代理,这将模拟大型企业环境中所使用的不同浏览器。

第二个改进就是每一次搜索查询的随机化间隔时间,我们可以使用-e选项来设定最小的时间间隔,并使用一个随机因子作为间隔时间的增加数量:

代码语言:javascript
复制
# Create an array of jitter values to add to delay, favoring longer search times.

self.jitter = numpy.random.uniform(low=self.delay, high=jitter * self.delay, size=(50,))

在后面的脚本中,代码将从抖动数组中选择一个随机时间并添加到延迟中:

代码语言:javascript
复制
pause_time = self.delay + random.choice(self.jitter)

这样一来,Google就不会屏蔽我们的IP地址了。

使用样例

代码语言:javascript
复制
python3 pagodo.py -d example.com -g dorks.txt -l 50 -s -e 35.0 -j 1.1
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 工具介绍
  • Google Dork是什么?
  • 工具安装
    • 如果被Google屏蔽了怎么办?
    • ghdb_scraper.py
    • pagodo.py
    • 使用样例
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档