Dorks на новый лад – ищем то, что открыто

При проведении любого пентеста корпоративной сети одним из направлений действий белых хакеров является поиск информации, находящейся, практически в открытом доступе: на файловых шарах, в репозиториях, в расшаренных папках на машинах пользователей. Короче, все то, что лежит корпоративной сети и доступно каждому доменному пользователю. В случае, если какие-то из ресурсов недоступны обычному пользователю, после получения привилегированных прав мы можем повторить попытку получения доступа к данным папкам или файлам. 

Так или иначе, на файловых помойках и репозиториях можно найти много всего интересного и полезного с точки зрения тестирования на проникновение. Например, в исходниках могут остаться учетные записи. Да, наши доблестные разработчики закомментировали соответствующие строки в коде и в артефакт эта лазейка не попала, но в исходнике комментарий все равно остался. Также интерес представляют всевозможные скрипты, плейбуки, инструкции, так как в них тоже могут оказаться учетные данные. В резервных копиях могут оказаться файлы приватных ключей и другая полезная конфиденциальная информация.

Казалось бы, все просто, необходимо проверить доступные файловые ресурсы на предмет… Вот тут возникает отдельный вопрос, а что собственно искать? Как должна выглядеть искомая пара логин/пароль. Здесь нам на помощь приходят старые добрые дорки.

Напомним, что Google Dorking — это техника конкретизированных поисковых запросов, с помощью которых облегчается процесс поиска информации в открытых источниках. Собственно, использовать дорки можно не только в поисковике Google, но известны они стали именно благодаря этой поисковой машине.

Вот примеры нескольких таких поисковых запросов:

inurl:/view.shtml

intitle:”Live View / – AXIS” | inurl:view/view.shtml^

inurl:ViewerFrame?Mode=

inurl:ViewerFrame?Mode=Refresh

inurl:axis-cgi/jpg

Лет десять назад с помощью подобных запросов можно было найти веб камеры, транслирующие видео в интернет. А сейчас данные дорки возвращают только статьи о том, как можно «подсмотреть чужую жизнь».

В гостях у репозитория

Однако, сама идея дорков вполне жизнеспособна. Только искать мы будем по репозиториям. Если речь идет о поиске в исходном коде, доступном в публичных репозиториях, то здесь мы можем воспользоваться специальными сервисами, например https://sourcegraph.com/. В бесплатной версии мы можем использовать готовые выражения, а если очень хочется усложнить запросы, например с помощью регулярных выражений, то тогда потребуется уже платная подписка.

В примере ниже в качестве запроса была задана строка db_password и среди множества найденных репозиториев на просторах Github обнаружился исходник с жестко приколоченными учетными данными.

a219377647fe2fd7c5fdf34c64fe88c4.png

Вообще, дорков, то есть поисковых запросов, по которым можно поискать довольно много.

Вот лишь несколько наиболее распространенных примеров:

"api_key"
"api_secret"
"auth"
"auth_token"
"authorizationToken"
"db_password"
"db_username"
"dbpasswd"
"dbpassword"
"ssh"
"ssh2_auth_password"

Однако пентестер в любом случае должен представлять как выглядят интересующие его учетные данные. Например, зная код на каком языке используется в бэкенде и какая СУБД можно посмотреть как выглядит строка соединения и поискать сначала по ней, а потом уже посмотреть какой код идет рядом.

Также с помощью этого поискового сервиса можно посмотреть, какие изменения в коде были выполнены с определенного момента времени. Например, можно узнать в каких репозиториях за последний час выполнялись коммиты.

01e5ae63141315ae698e49330e08c24b.png

Еще один поисковик, работающий по схожему принципу это SearchCode (https://searchcode.com/).

Он также ищет заданное значение в различных репозиториях, при необходимости можно настроить фильтрацию для поиска только в определенных репозиториях или определенных языках программирования.

04c56d051dcbc4249cde3aa7eda3d9a6.png

Для получения лучших результатов можно использовать оба поисковых сервиса, на случай, если один из них что-то не найдет.

То, что уже утекло

Здесь речь пойдет уже не столько о дорках и поисковых запросах, сколько о сервисах, которые находят утекшие в сеть конфиденциальные данные. Следующий сервис по замыслу авторов должен помочь уже специалистам по безопасности вовремя обнаружить утечки конфиденциальных данных. Проект Forager (https://forager.trufflesecurity.com/) предназначен для поиск в сети утекших конфиденциальных данных, таких как пароли, закрытые ключи т.д. Любой желающий может указать интересующий домен организации и поисковик покажет, есть ли у него какая-то информация. Но посмотреть, что конкретно удалось найти любой пользователь естественно не сможет. 

f37b48f20cdc81a0022c2d3d142f086c.png

Посмотреть детали утечки может только тот, чей аккаунт на данном сервисе привязан к домену скомпрометированной организации.

5386791073640a3d9ad757882876bfaa.png

Собственно, Forager это не единственный сервис, разработанный Truffle. Также у них имеется TruffleHog, позволяющий находить различные утекшие в сеть секреты. Для того, чтобы его протестировать нужно просто запустить контейнер, указав в качестве параметров тестовый репозиторий.

docker run --rm -it -v "$PWD:/pwd" trufflesecurity/trufflehog:latest github --repo https://github.com/trufflesecurity/test_keys

 Еще один похожий инструмент — Gitleaks. Это инструмент SAST для обнаружения и предотвращения жестко прописанных в коде секретов, таких как пароли, api-ключи и токены в репозиториях git.

Запустить этот инструмент можно также с помощью Docker, указав папку со сканируемым исходным кодом:

docker run -v ${path_to_host_folder_to_scan}:/path zricethezav/gitleaks:latest [COMMAND] [OPTIONS] [SOURCE_PATH]

Заключение

В этой статье мы немного поговорили о том, как можно обнаруживать конфиденциальные данные, лежащие в репозиториях с помощью различных сервисов, позволяющих автоматизировать данный поиск. Стоит отметить, что описанные инструменты могут помочь не только пентестерам, но и специалистам, обеспечивающим защиту информации.

Больше об инструментах и лучших практиках для обеспечения информационной безопасности можно узнать на онлайн-курсах от экспертов отрасли.

© Habrahabr.ru