freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

PaGoDo:一款功能强大的被动式Google Dork
2020-09-24 23:39:39

工具介绍

这个项目的主要目的是开发一个被动式的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+开发,广大研究人员可以使用下列命令将项目源码克隆至本地,并完成工具安装:

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的安装命令如下:

apt install proxychains4 -y

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

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参数来设定查询间隔:

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:

python3 ghdb_scraper.py -j -s

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

python3 ghdb_scraper.py -i

所有的Dork类目如下:

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站点,比如说:

intitle:"ListMail Login" admin -demo

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

site:example.com

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

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

# 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,))

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

pause_time = self.delay + random.choice(self.jitter)

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

使用样例

python3 pagodo.py -d example.com -g dorks.txt -l 50 -s -e 35.0 -j 1.1
# google hacking # Google Dorks
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者