_______ _____ _____ __ | __| __| __|.-----..-----..-----.| |.-----..-----..----..---.-..-----. | | | | | | || _ || _ || _ || || -__||__ --|| __|| _ || | |_______|_____|_____||_____||_____||___ ||__||_____||_____||____||___._||__|__| G-G-Googlescan vo.4 (o4/2o11) |_____| by urbanadventurer
Google scraper for automated searching. Returns URLs and hostnames.
Latest Version o.4, 18th April 2011
First published 1st December 2009
Author urbanadventurer aka Andrew Horton
GGGooglescan is a Google scraper which performs automated searches and returns results of search queries in the form of URLs or hostnames. Datamining Google’s search index is useful for many applications. Despite this, Google makes it difficult for researchers to perform automatic search queries.
The aim of GGGooglescan is to make automated searches possible by avoiding the search activity that is detected as bot behaviour. Please note that using this software may be in violation of Google’s terms of service.
This tool was first released at Kiwicon III in 2009. GGGooglescan has been included in security distros including BlackArch Linux and ArchStrike.
⚠️ gggooglescan version 0.4 is no longer working with Google due to changes in Google search behaviour and developments in anti-bot technology since 2011. There are currently no plans to update or fix this project.
Antibot Avoidance Features
Avoid Omitted Similar Entries
To appear more like a human, it does not search beyond a page with the text: “In order to show you the most relevant results, we have omitted some entries very similar”.
Respond to CAPTCHA by waiting 60 minutes
When Google detects bot-type activity, it redirects to this page which contains a captcha: http://sorry.google.com/sorry/?continue=. gggooglescan will detect this and wait for 60 minutes before re-attempting the search query.
Horizontal searching is a technique I developed in 2009 to harvest a large number of search results without appearing like a bot.
Deep query searching is requesting high numbers of search result pages, eg. requesting result pages 1 through 50 which is detected as bot activity by Google. Horizontal searching allows you to query a large search result space without deep query searching. It works by combining your search query with each word in a word list to create a large quantity of shallow depth search queries.
Horizontal searching allows you to query a large search result space without deep query searching. It works by combining your search query with each word in a word list to create a large quantity of shallow depth search queries.
For example, if you wanted to gather a list of forums powered by the myBB software you could use the following search query, “MyBB Group. Copyright”.
Google reports there are 79,500 results however it is not easy to obtain those results.
Let’s try the following command which searches 200 pages of 10 results which will hopefully net 2000 results.
./gggooglescan -l mybb-forum.log -d 200 '"powered by mybb"'
After just 46 pages and 464 results Google does not display a link to the next page and reports “In order to show you the most relevant results, we have omitted some entries very similar to the 457 already displayed.” This query returned 374 unique hostnames. After this search completed, the IP address used was restricted from further searching due to bot detection.
Using the horizontal search technique we can gain a larger list of mybb forums.
./gggooglescan -l mybb-forum-horizontal.log -d 1 -e ./wordlist '"powered by mybb"'
This search was detected as bot activity after 47 combined dictionary words (a,aachen,aachen’s,aaliyah,…) and obtained 8236 results and 1231 unique hostnames.
./gggooglescan -l mybb-forum-horizontal2.log -d 4 -e ./wordlist '"powered by mybb"'
This search got as far as ‘abbreviates’, the 62nd word in the list and yielded 2389 results, 721 unique hostnames
Here are some results I got, your mileage may vary:
|Command||Detected as bot||Results|
|./gggooglescan -l mybb-forum-horizontal.log -d 1 -e ./wordlist ‘”powered by mybb”‘||Yes||8236|
|./gggooglescan -l mybb-forum-horizontal2.log -d 4 -e ./wordlist ‘”powered by mybb”‘||Yes||2389|
|./gggooglescan -s 2 -l mybb-forum-horizontal3.log -d 1 -e ./wordlist ” “||No||Over 10,000|
|./gggooglescan -s 2 -l mybb-forum-horizontal4.log -d 1 -e ./wordlist ” “||No||Over 100,000|
|./gggooglescan -s 2 -l mybb-forum-horizontal5.log -d 1 -e ./wordlist ‘”powered by mybb”‘||Yes||4612|
|./gggooglescan -s 2 -l phpbb-forums2.log -d 1 -e ./wordlist “memberlist goto page”||Yes||Over 6279|
Search within a country
Are you only interested in results in Australia? You can restrict your searches to a country with the -c parameter
./gggooglescan -c au hello
Perhaps you want a large set of Australian hostnames. Try the following:
./gggooglescan -c au -d 5 -v -l aussie.log -e ./wordlist a
Use the -x option to pass curl command line parameters.
The following curl options control proxy usage: -x/--proxy Use HTTP proxy on given port --proxy-anyauth Pick "any" proxy authentication method (H) --proxy-basic Use Basic authentication on the proxy (H) --proxy-digest Use Digest authentication on the proxy (H) --proxy-negotiate Use Negotiate authentication on the proxy (H) --proxy-ntlm Use NTLM authentication on the proxy (H) -U/--proxy-user Set proxy user and password --socks4 SOCKS4 proxy on given host + port --socks4a SOCKS4a proxy on given host + port --socks5 SOCKS5 proxy on given host + port --socks5-hostname SOCKS5 proxy, pass host name to proxy --socks5-gssapi-service SOCKS5 proxy service name for gssapi --socks5-gssapi-nec Compatibility with NEC SOCKS5 server
gggooglescan -x "--socks5 localhost:1234" hax0r gggooglescan -x "--proxy localhost:8080 --proxy-user bob:12345" hax0r
You can also specify proxy settings with environment variables which will be used by curl, for example:
export ALL_PROXY=http://localhost:8118/ ./gggooglescan foo
Q. I’m getting detected as a bot, what can I do?
A. Experiment with different (lower) values for -d depth.
Try combining searches with a wordlist.
Q. I can’t see any output
A. Try using -v for verbose output. You may be waiting for the bot captcha to timeout.
Q. I’m using a custom user-agent and it fails to get results.
A. Google responds differently depending on the user-agent provided.
-c is incompatible with a user agent for a mobile device
User agents with MSIE 6.0 do not work with gggooglescan
Making a Wordlist
You can make a wordlist on a Unix system with a command such as:
cat /usr/share/dict/words| tr '[:upper:]' '[:lower:]' | egrep "[a-z']" | sort -u > wordlist