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) | |
-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):
1 2 3 4 |
-q [words] query from exploit-db GHDB -c [name or id] category from exploit-db GHDB -l list exploit-db GHDB categories |
options (google):
1 2 3 4 5 6 7 8 |
-d [dork] specify google dork -D [dork_file] specify google dorks -s [site] set site name -S [sites_file] set sites filename -f [filter] set custom filter -t [msec] set timeout between query -T [msec] set captcha retry timeout |
options common:
1 2 |
-o [result_file] save data in file |
EXAMPLES:
1 2 3 4 5 6 7 8 |
phantomjs dorks.js ghdb -q oracle -o oracle_dorks.txt phantomjs dorks.js ghdb -c "vulnerable files" -o vuln_files.txt phantomjs dorks.js ghdb -c 0 -o all_dorks.txt phantomjs dorks.js google -D all_dorks.txt -s "somesite.com" -o result.txt phantomjs dorks.js google -d "mysql running.on" -S "sites.txt" phantomjs dorks.js google -D vuln_files.txt -S "sites.txt" -o result.txt phantomjs dorks.js google -D vuln_servers.txt -f "inurl:com" -f "inurl:net" |
Скачиваем дорки для 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