PaGoDo:一款功能强大的被动式Google Dork
字数 1707 2025-08-15 21:32:08
PaGoDo工具使用详解:被动式Google Dork扫描技术
一、工具概述
PaGoDo是一款功能强大的被动式Google Dork脚本工具,主要用于收集互联网中存在潜在安全漏洞的Web页面和应用程序。该工具由两部分组成:
- ghdb_scraper.py:用于检索Google Dork数据库
- pagodo.py:利用收集到的Dork信息进行实际扫描
二、Google Dork基础
2.1 什么是Google Dork
Google Hacking Database (GHDB)由Offensive Security维护,包含称为"Dorks"的Google搜索集合,可用于发现存在安全问题的应用程序。这些信息由Google搜索爬虫收集。
2.2 Dork分类
工具支持14类Dork,分类如下:
| 编号 | 分类名称 |
|---|---|
| 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 |
三、环境准备
3.1 安装要求
- Python 3.6+
- 虚拟环境(推荐)
3.2 安装步骤
git clone https://github.com/opsdisk/pagodo.git
cd pagodo
virtualenv -p python3 .venv # 使用虚拟环境
source .venv/bin/activate # 激活虚拟环境
pip install -r requirements.txt
四、工具使用详解
4.1 ghdb_scraper.py - Dork收集工具
基本功能:
- 从Google Hacking Database获取所有Dork
- 按分类获取Dork
常用命令:
- 获取所有Dork:
python3 ghdb_scraper.py -j -s
- 按分类获取Dork:
python3 ghdb_scraper.py -i
4.2 pagodo.py - Dork扫描工具
核心参数:
| 参数 | 说明 |
|---|---|
| -g | 指定包含Google Dork的文件 |
| -d | 指定目标域名(如:site:example.com) |
| -l | 限制每个Dork的搜索结果数量 |
| -s | 存储结果 |
| -e | 设置最小查询间隔(秒) |
| -j | 随机因子,增加查询间隔的随机性 |
防屏蔽机制:
- 用户代理随机化(v1.9.3+)
- 随机化查询间隔时间(通过-e和-j参数控制)
示例命令:
python3 pagodo.py -d example.com -g dorks.txt -l 50 -s -e 35.0 -j 1.1
五、IP被屏蔽解决方案
当收到HTTP 503错误时,表明IP已被Google识别为机器人并被暂时屏蔽。
解决方案:使用proxychains
- 安装proxychains:
apt install proxychains4 -y
- 配置/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
- 通过proxychains运行工具:
proxychains4 python3 pagodo.py -g ALL_dorks.txt -s -e 17.0 -l 700 -j 1.1
六、技术细节
6.1 随机间隔实现
工具使用numpy生成随机间隔时间数组:
self.jitter = numpy.random.uniform(low=self.delay, high=jitter * self.delay, size=(50,))
实际暂停时间计算:
pause_time = self.delay + random.choice(self.jitter)
6.2 搜索语法
支持标准Google搜索语法,如:
intitle:"ListMail Login" admin -demosite:example.com
七、最佳实践建议
- 始终使用合理的延迟设置(建议-e 35.0)
- 对于大规模扫描,务必使用代理轮换
- 按需选择Dork分类,避免不必要的扫描
- 结果应妥善保存并进一步验证
- 遵守当地法律法规,仅对授权目标进行扫描
通过合理配置PaGoDo工具,安全研究人员可以高效地发现网络中的潜在漏洞,同时避免被Google屏蔽。工具的模块化设计也使得它可以轻松集成到自动化安全评估流程中。