All Projects → opsdisk → Pagodo

opsdisk / Pagodo

Licence: gpl-3.0
pagodo (Passive Google Dork) - Automate Google Hacking Database scraping and searching

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pagodo

Sitedorks
Search Google/Bing/Ecosia/DuckDuckGo/Yandex/Yahoo for a search term with a default set of websites, bug bounty programs or a custom collection.
Stars: ✭ 221 (-63.35%)
Mutual labels:  google, osint
D4n155
OWASP D4N155 - Intelligent and dynamic wordlist using OSINT
Stars: ✭ 105 (-82.59%)
Mutual labels:  google, osint
Ghunt
🕵️‍♂️ Investigate Google emails and documents.
Stars: ✭ 10,489 (+1639.47%)
Mutual labels:  google, osint
Goohak
Automatically Launch Google Hacking Queries Against A Target Domain
Stars: ✭ 432 (-28.36%)
Mutual labels:  google, osint
Alerter
An Android Alerting Library
Stars: ✭ 5,213 (+764.51%)
Mutual labels:  google
Sherlock
🔎 Hunt down social media accounts by username across social networks
Stars: ✭ 28,569 (+4637.81%)
Mutual labels:  osint
Eng Practices Cn
谷歌工程实践
Stars: ✭ 546 (-9.45%)
Mutual labels:  google
Socialscan
Python library and CLI for accurately querying username and email usage on online platforms
Stars: ✭ 538 (-10.78%)
Mutual labels:  osint
No Google
Completely block Google and its services
Stars: ✭ 596 (-1.16%)
Mutual labels:  google
Pyment
Format and convert Python docstrings and generates patches
Stars: ✭ 577 (-4.31%)
Mutual labels:  google
Favfreak
Making Favicon.ico based Recon Great again !
Stars: ✭ 564 (-6.47%)
Mutual labels:  osint
Fav Up
IP lookup by favicon using Shodan
Stars: ✭ 550 (-8.79%)
Mutual labels:  osint
Gitrob
Reconnaissance tool for GitHub organizations
Stars: ✭ 5,256 (+771.64%)
Mutual labels:  osint
Share Ssr V2ray
🃏 Free SS/SSR/V2ray 免费分享节点账号信息网站
Stars: ✭ 5,984 (+892.37%)
Mutual labels:  google
Ocbarrage
iOS 弹幕库 OCBarrage, 同时渲染5000条弹幕也不卡, 轻量, 可拓展, 高度自定义动画, 超高性能, 简单易上手; A barrage render-engine with high performance for iOS. At the same time, rendering 5000 barrages is also very smooth, lightweight, scalable, highly custom animation, ultra high performance, simple and easy to use!
Stars: ✭ 589 (-2.32%)
Mutual labels:  google
Bigbountyrecon
BigBountyRecon tool utilises 58 different techniques using various Google dorks and open source tools to expedite the process of initial reconnaissance on the target organisation.
Stars: ✭ 541 (-10.28%)
Mutual labels:  osint
Geocoder
Geocode addresses to coordinates
Stars: ✭ 566 (-6.14%)
Mutual labels:  google
Djangae
The best way to run Django on Google Cloud. This project is now on GitLab: https://gitlab.com/potato-oss/djangae/djangae
Stars: ✭ 576 (-4.48%)
Mutual labels:  google
Theharvester
E-mails, subdomains and names Harvester - OSINT
Stars: ✭ 6,175 (+924.05%)
Mutual labels:  osint
Google Map React
Google map library for react that allows rendering components as markers 🎉
Stars: ✭ 5,529 (+816.92%)
Mutual labels:  google

PaGoDo - Passive Google Dork

Introduction

The goal of this project was to develop a passive Google dork script to collect potentially vulnerable web pages and applications on the Internet. There are 2 parts. The first is ghdb_scraper.py that retrieves Google Dorks and the second portion is pagodo.py that leverages the information gathered by ghdb_scraper.py.

What are Google Dorks?

The awesome folks at Offensive Security maintain the Google Hacking Database (GHDB) found here: https://www.exploit-db.com/google-hacking-database. It is a collection of Google searches, called dorks, that can be used to find potentially vulnerable boxes or other juicy info that is picked up by Google's search bots.

Installation

Scripts are written for Python 3.6+. Clone the git repository and install the requirements.

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 is blocking me!

If you start getting HTTP 429 errors, Google has rightfully detected you as a bot and will block your IP for a set period of time. The solution is to use proxychains and a bank of proxies to round robin the lookups.

Install proxychains4

apt install proxychains4 -y

Edit the /etc/proxychains4.conf configuration file to round robin the look ups through different proxy servers. In the example below, 2 different dynamic socks proxies have been set up with different local listening ports (9050 and 9051). Don't know how to utilize SSH and dynamic socks proxies? Do yourself a favor and pick up a copy of Cyber Plumber's Handbook and interactive lab to learn all about Secure Shell (SSH) tunneling, port redirection, and bending traffic like a boss.

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

Throw proxychains4 in front of the Python script and each lookup will go through a different proxy (and thus source from a different IP). You could even tune down the -e delay time because you will be leveraging different proxy boxes.

proxychains4 python3 pagodo.py -g ALL_dorks.txt -s -e 17.0 -l 700 -j 1.1

ghdb_scraper.py

To start off, pagodo.py needs a list of all the current Google dorks. A datetimestamped file with the Google dorks and the indididual dork category dorks are also provided in the repo. Fortunately, the entire database can be pulled back with 1 GET request using ghdb_scraper.py. You can dump all dorks to a file, the individual dork categories to separate dork files, or the entire json blob if you want more contextual data about the dork.

To retrieve all dorks

python3 ghdb_scraper.py -j -s

To retrieve all dorks and write them to individual categories:

python3 ghdb_scraper.py -i

Dork categories:

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

Now that a file with the most recent Google dorks exists, it can be fed into pagodo.py using the -g switch to start collecting potentially vulnerable public applications. pagodo.py leverages the google python library to search Google for sites with the Google dork, such as:

intitle:"ListMail Login" admin -demo

The -d switch can be used to specify a domain and functions as the Google search operator:

site:example.com

Performing ~4600 search requests to Google as fast as possible will simply not work. Google will rightfully detect it as a bot and block your IP for a set period of time. In order to make the search queries appear more human, a couple of enhancements have been made. A pull request was made and accepted by the maintainer of the Python google module to allow for User-Agent randomization in the Google search queries. This feature is available in 1.9.3 and allows you to randomize the different user agents used for each search. This emulates the different browsers used in a large corporate environment.

The second enhancement focuses on randomizing the time between search queries. A minimum delay is specified using the -e option and a jitter factor is used to add time on to the minimum delay number. A list of 50 jitter times is created and one is randomly appended to the minimum delay time for each Google dork search.

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

Latter in the script, a random time is selected from the jitter array and added to the delay.

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

Experiment with the values, but the defaults successfully worked without Google blocking my IP. Note that it could take a few days (3 on average) to run so be sure you have the time.

To run it:

python3 pagodo.py -d example.com -g dorks.txt -l 50 -s -e 35.0 -j 1.1

Conclusion

Comments, suggestions, and improvements are always welcome. Be sure to follow @opsdisk on Twitter for the latest updates.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].