Полное руководство по поиску уязвимостей с помощью Shodan и Censys
- Важность разведки
- Что такое поисковые системы, что такое Shodan и Censys?
- Основные операторы поиска
- Продвинутые операторы поиска
- Более интересные способы использования
- Заключение
Вы, вероятно, видели, как многие охотники за уязвимостями или исследователи безопасности находят интересные баги, используя поисковые системы в интернете, такие как Shodan или Censys. Но когда вы пытались повторить их действия, это казалось невозможным. И напрашивался единственный вывод, что им просто повезло с уникальным случаем.
В этой статье мы рассмотрим почти все фильтры поиска, чтобы помочь вам находить интересные уязвимости, используя методы разведки с помощью инструментов, таких как Shodan и Censys!
Данная статья предназначена специально для начинающих, у которых нет базовых знаний о том, как использовать интернет-поисковики для поиска уязвимостей. Обратите внимание, что, хотя в статье рассматриваются только Shodan и Censys, вы можете применять аналогичные методы к другим инструментам, таким как Fofa, Netlas, ZoomEye и др.
Если вы не знакомы с понятием разведки, это процесс сбора (полезной) информации, которая может быть использована на этапах обнаружения и эксплуатации. Разведка или сбор информации является первой (и самой важной) фазой при проведении тестирования на проникновение, а также при участии в программах поиска багов.
Охотники за уязвимостями, которые уделяют время разведке, почти всегда получают за это достойное вознаграждение, так как они часто находят открытые активы или хосты, которые ранее не подвергались тестированию. Однако новички часто не знают, что именно искать и как находить интересные активы. Мы уверены, что при правильной методологии и наличии необходимых инструментов любой исследователь уязвимостей сможет успешно проводить разведку своей цели. Именно поэтому мы решили написать эту статью. Мы уверены, что к концу прочтения вы сможете эффективно использовать такие инструменты, как Shodan и Censys, для проведения разведки своих целей.
Если хотите узнать больше о разведке в рамках программ поиска багов (и веб-безопасности в целом), рекомендуем прочитать нашу статью о Google Dorking для начинающих в блоге по ссылке:
Hacking Tools Blog
Что такое интернет-поисковые системы, такие как Shodan и Censys?
Интернет-поисковая система похожа на широко используемые поисковики, такие как Google и Bing. Основное отличие в том, что такие инструменты, как Shodan и Censys, сканируют и индексируют живые хосты в интернете (вместо веб-контента). Они также предоставляют возможность искать любые сервисы, запущенные на этих хостах. Как вы понимаете, эти инструменты могут быть полезны для поиска уязвимостей, особенно при работе с большими целями.
С помощью этих поисковых систем можно находить интересные сервисы, работающие на хостах, принадлежащих целевой компании или организации. Например, можно обнаружить новые хосты, недавно добавленные в сеть организации, или случайно выставленные (и часто забытые) хосты, которые не должны быть доступны в интернете.
Давайте сначала разберем базовые операторы поиска, а затем перейдем к продвинутым. После этого рассмотрим интересные способы использования, которые позволят нам добиться лучших результатов и находить больше уязвимостей!
Следующие операторы поиска помогут находить индексированные хосты и устройства, подключенные к интернету, которые связаны с определённой организацией. Это позволит исключить из результатов устройства и хосты, которые не представляют интереса.
Оператор "org" позволяет сузить результаты поиска, показывая только те хосты, которые Shodan или Censys смогли классифицировать как принадлежащие определённой компании или организации.
org:"Intigriti"
autonomous_system.organization:"Intigriti"
Вы также можете использовать оператор "ssl" в Shodan или "services.tls.certificate.parsed.subject.organization" в Censys, чтобы искать SSL/TLS-сертификаты, выданные для целевой организации.
Совет! Всегда проверяйте, действительно ли найденный хост принадлежит вашей цели и входит в границы исследования (in scope), прежде чем приступать к тестированию! Shodan, Censys и подобные инструменты могут некорректно классифицировать хосты.
Фильтрация по номеру автономной системы (ASN)
Мы также можем фильтровать хосты по номерам автономных систем (ASN), принадлежащих компаниям или организациям.
asn:AS1234
autonomous_system.asn: AS1234
Фильтрация по HTTP-коду состояния
Чтобы ещё больше сузить поиск, можно комбинировать один из вышеперечисленных запросов с оператором фильтрации по HTTP-коду состояния. Например, чтобы включить в результаты только хосты с кодом состояния 200:
http.status:200 org:"Intigriti"
services.http.response.status_code:200 AND autonomous_system.organization:"Intigriti"
Примечание: В Censys для объединения нескольких условий необходимо использовать оператор "AND", а также поддерживается оператор "OR" для альтернативных условий.
Поиск дополнительных поддоменов с использованием SSL/TLS сертификатов
Один из эффективных способов обнаружения поддоменов основного домена — поиск сертификатов SSL, содержащих связанные имена:
ssl.cert.subject.CN:"intigriti.com"
services.tls.certificate.names:"intigriti.com"
Поиск дополнительных поддоменов с использованием хэшей фавиконов
Ещё один метод обнаружения поддоменов и связанных с целью активов — поиск хостов, использующих одинаковый хэш фавикона. Shodan и Censys предоставляют соответствующие операторы для фильтрации хостов по конкретному хэшу фавикона.
http.favicon.hash:<favicon_hash>
services.http.response.favicons.hashes:<favicon_hash>
Поиск дополнительных целей с уникальными ключевыми словами
Использование уникальных ключевых слов
Вы можете находить цели, связанные с вашей организацией, по уникальным ключевым словам, которые присутствуют в теле ответа каждого хоста. Примеры таких ключевых слов:
- Скрипты аналитики (с уникальными идентификаторами, например, Google Tag Manager IDs)
- Указания об авторских правах
- Названия компании
- Пользовательские заголовки ответов
- Любое другое уникальное ключевое слово, найденное в ответах цели
http.html:"© copyright <company>"
services.http.response.body:"© copyright <company>"
Фильтрация по используемым технологиям
После того как вы нашли хосты, связанные с вашей целью, можно сузить поиск, выявляя более интересные активы. Например, вы можете искать только те ресурсы, которые работают на PHP на серверной стороне.
org:<company> http.component:php
autonomous_system.organization:"<company>" AND services.software.product:"PHP"
Более интересные варианты использования
Один из способов обнаружения забытых хостов, которые все еще остаются доступными в интернете, — это поиск хостов с истекшими сертификатами.
org:<company> ssl.cert.expired:true
autonomous_system.organization:"<company>" AND services.tls.certificate.parsed.validity_period.not_after:2024-11-17
Совет: Вы также можете искать устаревшие указания об авторских правах, чтобы находить забытые ресурсы, которые все еще остаются в интернете.
Поиск панелей аутентификации и точек входа
Вы можете использовать существующие фильтры поиска, чтобы сузить результаты и включить только панели аутентификации.
org:<company> http.title:Login,Log in,Register,Signin,Sign in,Sign up
Здесь запятая в значении параметра http.title действует как оператор OR, что позволяет искать сразу по нескольким значениям.
autonomous_system.organization:"<company>" AND services.http.response.html_title: {"Login", "Log in", "Register", "Signin", "Sign in", "Sign up"}
Поиск сайтов с включенным отображением содержимого каталогов
Содержимое каталогов является настоящей находкой для исследователей безопасности, так как оно часто раскрывает список файлов и каталогов, доступных на сервере. Эти файлы могут содержать ссылки на журналы сервера, резервные копии, файлы конфигурации окружения и другие ценные данные.
Для поиска серверов с включенным отображением содержимого каталогов можно использовать следующие запросы:
org:<company> http.title:"Index of"
autonomous_system.organization:"<company>" AND services.http.response.html_title:"Index of *"
Поиск сайтов, использующих PHP
Сайты, работающие на PHP, представляют особый интерес для тестирования, и как Shodan, так и Censys позволяют фильтровать результаты по используемым технологиям. При необходимости вместо "php" можно подставить любое другое название технологии.
org:<company> http.component:php
autonomous_system.organization:"<company>" AND services.software.product:"PHP"
Поиск сайтов, работающих на нестандартных HTTP-портах
Сервера, работающие на портах, отличных от стандартных (80, 443, 8080, 8443), зачастую используются для разработки или административных задач и могут содержать интересные данные. Чтобы найти такие серверы, используйте следующие запросы:
org:<company> http.status:200,404 -port:80 -port:443 -port:8080 -port:8443
autonomous_system.organization:"<company>" AND services:(service_name:HTTP AND NOT port:{80, 443, 8080, 8443})
Поиск подозрительных HTTP-перенаправлений
Сервера, возвращающие HTTP-статус 30X, заслуживают внимания, так как они могут перенаправлять пользователей на другие директории, которые, возможно, не требуют аутентификации. Для поиска таких серверов выполните следующие запросы:
org:<company> http.status:301,302,303
autonomous_system.organization:"<company>" AND services.http.response.status_code:[300 TO 399]
Поиск сайтов, использующих Jenkins
Последний пример, который мы хотим рассмотреть, — это поиск популярных продуктов сторонних поставщиков, таких как Jenkins, инструмент для непрерывной интеграции и доставки (CI/CD), широко используемый в программной разработке.
Для поиска Jenkins в Shodan можно использовать простой запрос с ключевым словом:
product:jenkins
Для Censys можно использовать фильтр по поставщику программного обеспечения:
autonomous_system.organization:"<company>" AND services.software.vendor:jenkins
Совет! В обоих случаях можно использовать поиск «по ключевым словам», например, искать уникальные элементы ответа, такие как заголовок HTTP X-Jenkins. Это особенно полезно, если Shodan или Censys не возвращают результаты для конкретного продукта или сервиса.
Как мы все знаем, разведка является важнейшим этапом в баг-баунти и тестировании на проникновение в целом. Охотники за уязвимостями, которые умеют проводить хорошую разведку, часто получают достойные награды, обнаруживая случайно открытые цели, забытые хосты и другие необработанные активы.
Использование знаний, изложенных в этой статье, вместе с другими ранее опубликованными материалами по разведке, поможет новичкам начать находить баги, выполняя только качественную разведку.
Если вы хотите испытать свои новые навыки и исследовать цели с широким охватом, ознакомьтесь с программами на платформе Intigriti, и, возможно, ваш следующий баунти будет заработан именно на нашем сайте!