Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
pagodo — pagodo (Google Dork Passif) - Automatiser le scraping et la recherche dans la Google Hacking Database | Kitploit
Outils/GitHubGitHub/opsdisk/pagodo
OSINT (Renseignement de Sources Ouvertes)ReconnaissanceAnalyse des VulnérabilitésCollecte d'InformationsSécurité Web
GitHubopsdisk/pagodo

pagodo

pagodo (Google Dork Passif) - Automatiser le scraping et la recherche dans la Google Hacking Database

Voir le dépôt
3.4k550il y a 11 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

pagodo - Google Dork Passif

Introduction

pagodo automatise la recherche Google de pages web et d'applications potentiellement vulnérables sur Internet. Il remplace l'exécution manuelle de recherches Google dork avec un navigateur web GUI.

Il y a 2 parties. La première est ghdb_scraper.py qui récupère les derniers Google dorks et la seconde partie est pagodo.py qui exploite les informations recueillies par ghdb_scraper.py.

La bibliothèque de recherche Google centrale utilise désormais la bibliothèque plus flexible yagooglesearch au lieu de googlesearch. Consultez le README de yagooglesearch pour une explication plus approfondie des différences et des capacités de la bibliothèque.

Cette version de pagodo prend également en charge le support natif HTTP(S) et SOCKS5, donc plus besoin de l'envelopper dans un outil comme proxychains4 si vous avez besoin d'un support proxy. Vous pouvez spécifier plusieurs proxies à utiliser en mode round-robin en fournissant une chaîne de proxies séparés par des virgules à l'aide de l'option -p.

Que sont les Google dorks ?

Offensive Security maintient la Google Hacking Database (GHDB) que vous trouverez ici : https://www.exploit-db.com/google-hacking-database. Il s'agit d'une collection de recherches Google, appelées dorks, qui peuvent être utilisées pour trouver des machines potentiellement vulnérables ou d'autres informations intéressantes collectées par les robots de recherche de Google.

Conditions d'utilisation

Les conditions d'utilisation de pagodo sont les mêmes que celles de yagooglesearch.

Ce code est fourni tel quel et vous êtes entièrement responsable de son utilisation. Le scraping des résultats de recherche Google peut violer leurs Conditions d'utilisation. Une autre bibliothèque de recherche Google en Python avait des informations/discussions intéressantes à ce sujet :

  • Problème original
  • Une réponse
  • L'auteur a créé des Conditions d'utilisation séparées
  • ...qui contenaient un lien vers ce blog

La méthode préférée de Google est d'utiliser leur API.

Installation

Les scripts sont écrits pour Python 3.6+. Clonez le dépôt git et installez les dépendances.

root@kitploit:~
git clone https://github.com/opsdisk/pagodo.git
cd pagodo
python3 -m venv .venv  # If using a virtual environment.
source .venv/bin/activate  # If using a virtual environment.
pip install --upgrade pip setuptools
pip install -r requirements.txt

ghdb_scraper.py

Pour commencer, pagodo.py a besoin d'une liste de tous les Google dorks actuels. Le dépôt contient un répertoire dorks/ avec les dorks actuels lorsque ghdb_scraper.py a été exécuté pour la dernière fois. Il est conseillé d'exécuter ghdb_scraper.py pour obtenir les données les plus fraîches avant d'exécuter pagodo.py. Le répertoire dorks/ contient :

  • le fichier all_google_dorks.txt qui contient tous les Google dorks, un par ligne
  • le fichier all_google_dorks.json qui est la réponse JSON de GHDB
  • Les dorks par catégorie individuelle

Catégories de dorks :

root@kitploit:~
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",
}

Utiliser ghdb_scraper.py comme script

Écrivez tous les dorks dans all_google_dorks.txt, all_google_dorks.json, et les catégories individuelles si vous voulez plus de données contextuelles sur chaque dork.

root@kitploit:~
python ghdb_scraper.py -s -j -i

Utiliser ghdb_scraper comme module

La fonction ghdb_scraper.retrieve_google_dorks() renvoie un dictionnaire avec la structure de données suivante :

root@kitploit:~
ghdb_dict = {
    "total_dorks": total_dorks,
    "extracted_dorks": extracted_dorks,
    "category_dict": category_dict,
}

Utilisation d'un shell Python (comme python ou ipython) pour explorer les données :

root@kitploit:~
import ghdb_scraper

dorks = ghdb_scraper.retrieve_google_dorks(save_all_dorks_to_file=True)
dorks.keys()
dorks["total_dorks"]

dorks["extracted_dorks"]

dorks["category_dict"].keys()

dorks["category_dict"][1]["category_name"]

pagodo.py

Utiliser pagodo.py comme script

root@kitploit:~
python pagodo.py -d example.com -g dorks.txt

Utiliser pagodo comme module

La fonction pagodo.Pagodo.go() renvoie un dictionnaire avec la structure de données ci-dessous (les dorks utilisés sont des exemples fictifs) :

root@kitploit:~
{
    "dorks": {
        "inurl:admin": {
            "urls_size": 3,
            "urls": [
                "https://github.com/marmelab/ng-admin",
                "https://github.com/settings/admin",
                "https://github.com/akveo/ngx-admin",
            ],
        },
        "inurl:gist": {
            "urls_size": 3,
            "urls": [
                "https://gist.github.com/",
                "https://gist.github.com/index",
                "https://github.com/defunkt/gist",
            ],
        },
    },
    "initiation_timestamp": "2021-08-27T11:35:30.638705",
    "completion_timestamp": "2021-08-27T11:36:42.349035",
}

Utilisation d'un shell Python (comme python ou ipython) pour explorer les données :

root@kitploit:~
import pagodo

pg = pagodo.Pagodo(
    google_dorks_file="dorks.txt",
    domain="github.com",
    max_search_result_urls_to_return_per_dork=3,
    save_pagodo_results_to_json_file=None,  # None = Auto-generate file name, otherwise pass a string for path and filename.
    save_urls_to_file=None,  # None = Auto-generate file name, otherwise pass a string for path and filename.
    verbosity=5,
)
pagodo_results_dict = pg.go()

pagodo_results_dict.keys()

pagodo_results_dict["initiation_timestamp"]

pagodo_results_dict["completion_timestamp"]

for key,value in pagodo_results_dict["dorks"].items():
    print(f"dork: {key}")
    for url in value["urls"]:
        print(url)

Ajustement des résultats

Limiter à un domaine spécifique

L'option -d peut être utilisée pour limiter les résultats à un domaine spécifique et fonctionne comme l'opérateur de recherche Google :

root@kitploit:~
site:github.com

Temps d'attente entre les recherches Google dork

  • -i - Spécifiez le délai minimum entre les recherches de dorks, en secondes. Ne le rendez pas trop petit, sinon votre IP sera rapidement HTTP 429.
  • -x - Spécifiez le délai maximum entre les recherches de dorks, en secondes. Ne le rendez pas trop grand, sinon les recherches prendront beaucoup de temps.

Les valeurs fournies par -i et -x sont utilisées pour générer une liste de 20 temps d'attente aléatoires, qui sont sélectionnés aléatoirement entre chaque recherche Google dork différente.

Nombre de résultats à retourner

-m - Le nombre total maximal de résultats de recherche à retourner par Google dork. Chaque requête de recherche Google peut renvoyer au maximum 100 résultats à la fois, donc si vous choisissez -m 500, 5 requêtes de recherche distinctes devront être effectuées pour chaque recherche Google dork, ce qui augmentera le temps nécessaire.

Sauvegarder la sortie

  • -o [chemin/optionnel/vers/resultats.json] - Sauvegarde la sortie dans un fichier JSON. Si vous ne spécifiez pas de nom de fichier, un fichier avec horodatage sera généré.
  • -s [chemin/optionnel/vers/resultats.txt] - Sauvegarde les URLs dans un fichier texte. Si vous ne spécifiez pas de nom de fichier, un fichier avec horodatage sera généré.

Sauvegarder les logs

  • --log [chemin/optionnel/vers/fichier.log] - Sauvegarde les logs dans le fichier spécifié. Si vous ne spécifiez pas de nom de fichier, le fichier par défaut pagodo.py.log à la racine du répertoire pagodo sera utilisé.

Google me bloque !

Effectuer plus de 7300 requêtes de recherche à Google aussi rapidement que possible ne fonctionnera tout simplement pas. Google le détectera légitimement comme un bot et bloquera votre IP pendant une période déterminée. Une solution est d'utiliser un pool de proxies HTTP(S)/SOCKS et de les passer à pagodo.

Support proxy natif

Passez une chaîne de proxies séparés par des virgules à pagodo en utilisant l'option -p.

root@kitploit:~
python pagodo.py -g dorks.txt -p http://myproxy:8080,socks5h://127.0.0.1:9050,socks5h://127.0.0.1:9051

Vous pourriez même réduire les valeurs -i et -x car vous utiliserez différentes IP de proxy. Les proxies passés à pagodo sont sélectionnés en mode round robin.

Support proxychains4

Une autre solution est d'utiliser proxychains4 pour répartir les recherches en round robin.

Installez proxychains4

root@kitploit:~
apt install proxychains4 -y

Modifiez le fichier de configuration /etc/proxychains4.conf pour répartir les recherches en round robin sur différents serveurs proxy. Dans l'exemple ci-dessous, 2 proxies socks dynamiques différents ont été configurés avec des ports d'écoute locaux différents (9050 et 9051).

root@kitploit:~
vim /etc/proxychains4.conf
root@kitploit:~
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

Placez proxychains4 devant le script pagodo.py et chaque requête de recherche passera par un proxy différent (provenant donc d'une IP différente).

root@kitploit:~
proxychains4 python pagodo.py -g dorks/all_google_dorks.txt -o [optional/path/to/results.json] -s [optional/path/to/results.txt]

Notez que cela peut ne pas sembler naturel à Google si vous :

  1. Simulez une « navigation » vers google.com depuis l'IP #1
  2. Effectuez la première requête de recherche depuis l'IP #2
  3. Simulez un clic sur « Suivant » pour effectuer la deuxième requête depuis l'IP #3
  4. Simulez un clic sur « Suivant » pour effectuer la troisième requête depuis l'IP #1

Pour cette raison, l'utilisation du support proxy intégré -p est préférée car, comme indiqué dans la documentation de yagooglesearch, le « proxy fourni est utilisé pendant tout le cycle de vie de la recherche pour la rendre plus humaine, au lieu de faire tourner différents proxies pour différentes parties de la recherche. »

Licence

Distribué sous la licence GNU General Public License v3.0. Voir LICENSE pour plus d'informations.

Contact

@opsdisk

Lien du projet : https://github.com/opsdisk/pagodo

Télécharger l’outil