dorks

Thank you for reading this post, don't forget to subscribe!

https://habrahabr.ru/post/283210/

Основ­ные клю­че­вые сло­ва google

Клю­че­вое слово Смысл При­мер
site Поиск толь­ко на ука­зан­ном сай­те. Учи­ты­ва­ет толь­ко url site:somesite.ru – най­дет все стра­ни­цы по дан­но­му доме­ну и поддоменам
inurl Поиск по сло­вам, при­сут­ству­ю­щим в uri. В отли­чие от кл. сло­ва “site”, ищет сов­па­де­ния после име­ни сайта inurl:news – най­дет все стра­ни­цы, где в uri встре­тит­ся дан­ное слово
intext Поиск в теле страницы intext:”пробки” – пол­но­стью ана­ло­гич­но обыч­но­му запро­су “проб­ки”
intitle Поиск в заго­лов­ке стра­ни­цы. Текст, заклю­чен­ный меж­ду тэга­ми <title> intitle:”index of”  — най­дет все стра­ни­цы с листин­гом директории
ext Поиск стра­ниц с ука­зан­ным расширением ext:pdf – най­дет все pdf-файлы
filetype В насто­я­щее вре­мя пол­но­стью ана­ло­гич­но кл. сло­ву “ext” filetype:pdf – аналогично
related Поиск сай­тов со схо­жей тематикой related:google.ru – пока­жет свои аналоги
link Поиск сай­тов, ссы­ла­ю­щих­ся на данный link:somesite.ru  — най­дет все сай­ты, на кото­рых есть ссыл­ка на данный
define Пока­зать опре­де­ле­ние слова define:0day  — опре­де­ле­ние термина
cache Пока­зать содер­жи­мое стра­ни­цы в кэше (если имеется) cache:google.com – откро­ет стра­ни­цу из кэша

Спе­ци­аль­ные сим­во­лы запро­сов google

Сим­вол Смысл При­мер
Точ­ная фраза intitle:«RouterOS router configuration page»   — поиск роутеров
* Любой текст inurl:«bitrix*mcart»   — поиск сай­тов на bitrix с уяз­ви­мым моду­лем mcart
. Любой сим­вол Index.of  — ана­ло­гич­но запро­су index of
- Исклю­чить слово error –warning    — пока­зать все стра­ни­цы, где есть error, но нет warning
.. Диа­па­зон cve 2006..2016  — пока­зать уяз­ви­мо­сти по годам начи­ная с 2006
| Логи­че­ское «или» linux | windows  — пока­зать стра­ни­цы, где встре­ча­ет­ся либо пер­вое либо вто­рое слово

Все дор­ки Google Hack Database раз­де­ле­ны логи­че­ски на 14 категорий.
Кате­го­рии Google Hack Database

Кате­го­рия Что поз­во­ля­ет найти При­мер
Footholds Веб-шел­лы, пуб­лич­ные фай­ло­вые менеджеры Най­ти все взло­ман­ные сай­ты, где зали­ты пере­чис­лен­ные вебшеллы:
(intitle:«phpshell» OR intitle:«c99shell» OR intitle:«r57shell» OR intitle:«PHP Shell » OR intitle:«phpRemoteView») `rwx` «uname»
Files containing usernames Фай­лы реест­ра, кон­фи­гу­ра­ци­он­ные фай­лы, логи, фай­лы, содер­жа­щие исто­рию вве­ден­ных команд Най­ти все фай­лы реест­ра, содер­жа­щие инфор­ма­цию об аккаунтах:
filetype:reg reg +intext:«internet account manager»
Sensitive Directories Ката­ло­ги с раз­лич­ной инфор­ма­ци­ей (лич­ные доку­мен­ты, кон­фи­ги vpn, скры­тые репо­зи­то­рии и т.д.) Най­ти все листин­ги дирек­то­рий содер­жа­щих фай­лы, отно­ся­щи­е­ся к vpn:
«Config» intitle:«Index of» intext:vpn
Сай­ты, содер­жа­щие git-репозитории:
(intext:«index of /.git») («parent directory»)
Web Server Detection Вер­сию и иную инфор­ма­цию о веб-сервере Най­ти адми­ни­стра­тив­ные кон­со­ли сер­ве­ра JBoss:
inurl:"/web-console/" intitle:«Administration Console»
Vulnerable Files Скрип­ты, содер­жа­щие извест­ные уязвимости Най­ти сай­ты, исполь­зу­ю­щие скрипт, поз­во­ля­ю­щий выгру­зить про­из­воль­ный файл с сервера:
allinurl:forcedownload.php?file=
Vulnerable Servers Инстал­ля­ци­он­ные скрип­ты, веб-шел­лы, откры­тые адми­ни­стра­тив­ные кон­со­ли и т.д Най­ти откры­тые PHPMyAdmin кон­со­ли, запу­щен­ные от root:
intitle:phpMyAdmin «Welcome to phpMyAdmin ***» «running on * as root@*»
Error Messages Раз­лич­ные ошиб­ки и пре­ду­пре­жде­ния часто рас­кры­ва­ю­щие важ­ную инфор­ма­цию – начи­ная от вер­сии CMS до паролей Сай­ты, име­ю­щие ошиб­ки в выпол­не­нии sql-запро­сов к базе:
«Warning: mysql_query()» «invalid query»
Files containing juicy info Сер­ти­фи­ка­ты, бэка­пы, элек­трон­ные пись­мы, логи, sql-скрип­ты и т.д Най­ти ини­ци­а­ли­за­ци­он­ные sql-скрипты:
filetype:sql and «insert into» -site:github.com
Files containing passwords Всё что может содер­жать паро­ли – логи, sql-скрип­ты и т.д Логи, упо­ми­на­ю­щие пароли:
filetype:log intext:password | pass | pw
sql-скрип­ты содер­жа­щие пароли:
ext:sql intext:username intext:password
Sensitive Online Shopping Info Инфор­ма­цию свя­зан­ную с онлайн покупками Най­ти пинкоды:
dcid= bn= pin code=
Network or vulnerability data Инфор­ма­цию, не отно­ся­щу­ю­ся непо­сред­ствен­но к веб-ресур­су, но затра­ги­ва­ю­щую сеть либо про­чие не веб-сервисы Най­ти скрип­ты авто­ма­ти­че­ской настрой­ки прок­си, содер­жа­щие инфор­ма­цию о внут­рен­ней сети:
inurl:proxy | inurl:wpad ext:pac | ext:dat findproxyforurl
Pages containing login portals Стра­ни­цы, содер­жа­щие фор­мы входа Веб-стра­ни­цы saplogon:
intext:«2016 SAP AG. All rights reserved.» intitle:«Logon»
Various Online Devices Прин­те­ры, роу­те­ры, систе­мы мони­то­рин­га и т.д Най­ти кон­фи­гу­ра­ци­он­ную панель принтера:
intitle:"hp laserjet" inurl:SSI/Auth/set_config_deviceinfo.htm
Advisories and Vulnerabilities Сай­ты на уяз­ви­мых вер­си­ях CMS Най­ти уяз­ви­мые пла­ги­ны, через кото­рые мож­но загру­зить про­из­воль­ный файл на сервер:
inurl:fckeditor -intext:«ConfigIsEnabled = False» intext:ConfigIsEnabled

Дор­ки чаще ори­ен­ти­ро­ва­ны на поиск по всем сай­там сети интер­нет. Но ни что не меша­ет огра­ни­чить область

поис­ка на каком-либо сай­те или сай­тах. Каж­дый запрос к google мож­но сосре­до­то­чить на опре­де­лён­ном сайте,

доба­вив к запро­су клю­че­вое сло­во «site:somesite.com». Дан­ное клю­че­вое сло­во может быть допи­са­но к любо­му дорку.

 

Ути­ли­та пред­став­ля­ет из себя скрипт, напи­сан­ный на nodejs с исполь­зо­ва­ни­ем phantomjs. Если быть точ­ным, то скрипт интер­пре­ти­ру­ет­ся самим phantomjs.
Phantomjs — это пол­но­цен­ный веб-бра­у­зер без гра­фи­че­ско­го интер­фей­са, управ­ля­е­мый с помо­щью js-кода и обла­да­ю­щий удоб­ным API.
Ути­ли­та полу­чи­ла вполне понят­ное назва­ние – dorks.

 

Спи­сок основ­ных опций dorks

Общий син­так­сис ути­ли­ты: dork «коман­да» «спи­сок опций».
Подроб­ное опи­са­ние всех опций ниже.

Син­так­сис dorks

Коман­да Опция Опи­са­ние
ghdb -l Выве­сти нуме­ро­ван­ный спи­сок кате­го­рий дор­ков Google Hack Database
-c «номер или назва­ние категории» Загру­зить дор­ки ука­зан­ной кате­го­рии по номе­ру или названию
-q «фра­за» Загру­зить дор­ки, най­ден­ные по запросу
-o «файл» Сохра­нить резуль­тат в файл (толь­ко вме­сте с опци­я­ми  -c|-q)
google -d «дорк» Задать про­из­воль­ный дорк (опция может исполь­зо­вать­ся мно­го раз, допус­ка­ет­ся соче­та­ние с опци­ей –D)
-D «файл» Исполь­зо­вать дор­ки из файла
-s «сайт» Задать сайт (опция может исполь­зо­вать­ся мно­го раз, допус­ка­ет­ся соче­та­ние с опци­ей –S)
-S «файл» Исполь­зо­вать сай­ты из фай­ла (пере­бор дор­ков будет выпол­нен по каж­до­му сай­ту независимо)
-f «фильтр» Задать допол­ни­тель­ные клю­че­вые сло­ва (будет добав­ле­но к каж­до­му дорку)
-t «коли­че­ство мс» Интер­вал меж­ду запро­са­ми к google
-T «коли­че­ство мс» Тай­маут, если встре­ти­лась каптча
-o «файл» Сохра­нить резуль­тат в файл (будут сохра­не­ны толь­ко те дор­ки, по кото­рым что-то нашлось)

С помо­щью коман­ды ghdb мож­но полу­чить все дор­ки с exploit-db по про­из­воль­но­му запро­су, либо ука­зать цели­ком всю категорию.

Если ука­зать кате­го­рию 0 — то будет выгру­же­на вся база (око­ло 4.5 тысяч дорков).

 

Спи­сок доступ­ных кате­го­рий дор­ков GHDB

Коман­дой google будет про­из­ве­де­на под­ста­нов­ка каж­до­го дор­ка в поис­ко­вик google и про­ана­ли­зи­ро­ван резуль­тат на пред­мет совпадений.

Дор­ки по кото­рым что-то нашлось будут сохра­не­ны в файл.
Ути­ли­та под­дер­жи­ва­ет раз­ные режи­мы поиска:
• 1 дорк и 1 сайт;
• 1 дорк и мно­го сайтов;
• 1 сайт и мно­го дорков;
• мно­го сай­тов и мно­го дорков;
Спи­сок дор­ков и сай­тов мож­но задать как через аргу­мент, так и через файл.

Установка 

git clone https://github.com/USSCltd/dorks

install PhantomJS on CentOS/RHEL

yum install fontconfig freetype freetype-devel fontconfig-devel libstdc++ libffi-devel openssl-devel freetype fontconfig

смот­рим на сай­те https: // bitbucket.org/ariya/phantomjs/downloads/  для сво­ей архитектуры

в моём случае:
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-i686.tar.bz2

tar xvf phantomjs-2.1.1-linux-i686.tar.bz2

cp phantomjs-2.1.1-linux-i686/bin/phantomjs /usr/local/bin/

про­ве­ря­ем:
cd phantomjs-2.1.1-linux-i686/examples

[root@centos6 examples]# phantomjs hello.js
Hello, world!

всё ок PhantomJS  установлен.

 

Примеры:

Син­так­сис:

phantomjs dorks.js [command] [options]

commands: ghdb, google

options (ghdb):

options (google):

options common:

EXAMPLES:

 

Ска­чи­ва­ем дор­ки для wordpress
./dorks.sh ghdb -q wordpress -o wordpress_dorks.txt

Ска­ча­ем дор­ки кате­го­рии “Error Messages”:
./dorks.sh ghdb -c 7 -o errors.dorks.txt

Ска­ча­ем дор­ки для php

./dorks.sh ghdb -c all | grep -i php > php_dorks.txt

 

Теперь про­ве­рим любой сайт дан­ной утилитой:
./dorks.sh google -D wordpress_dorks.txt -s https://site.ru/ -o result.txt