VULNERS — ГУГЛ ДЛЯ ХАКЕРА

КАК УСТРОЕН ЛУЧШИЙ ПОИСКОВИК ПО УЯЗВИМОСТЯМ И КАК ИМ ПОЛЬЗОВАТЬСЯ
Часто нужно узнать всю информацию о какой-нибудь уязвимости: насколько найденная бага критична, есть ли готовые сплоиты, какие вендоры уже выпустили патчи, каким сканером проверить ее наличие в системе. Раньше приходилось искать вручную по десятку источников (CVEDetails, SecurityFocus, Rapid7 DB, Exploit-
DB, базы уязвимостей CVE от MITRE/NIST, вендорские бюллетени) и анализировать собранные данные. Сегодня эту рутину можно (и нужно!) автоматизировать с помощью специализированных сервисов. Один из таких — Vulners, крутейший поисковик по багам. А главное — бесплатный и с открытым API. Посмотрим, чем он может быть нам полезен.
Что это такое?
Vulners — это очень большая и непрерывно обновляемая база данных ИБ-контента. Сайт позволяет искать уязвимости, эксплоиты, патчи, результаты bug bounty так же, как обычный поисковик ищет сайты. Vulners агрегирует и представляет в удобном виде шесть основных типов данных:
• Популярные базы уязвимостей. Они содержат общие описания уязвимостей и ссылки на источники. Например, известная CVЕ американского агентства MITRE и института NIST. Но, помимо информации из нее, в Vulners добавляются общие описания уязвимости и других исследовательских центров и центров реагирования: Vulnerability Lab, XSSed, CERT, ICS, Zero Day Initiative, Positive Technologies, ERPScan.
• Вендорские бюллетени безопасности. Это баг-репорты, которые пишут сами вендоры об уязвимостях в своих продуктах. Сейчас это разнообразные дистрибутивы Linux (Red Hat CentOS, Oracle Linux, Arch Linux, Debian, Ubuntu, SUSE), FreeBSD, сетевые устройства (F5 Networks, Cisco, Huawei, Palo Alto Networks) и популярные и критичные программы (OpenSSL, Samba, nginx, Mozilla, Opera), в том числе и CMS (WordPress, Drupal).
• Эксплоиты из Exploit-DB и Metasploit. Они парсятся и сохраняются полностью, с исходниками (их можно сразу смотреть в удобном редакторе).
• Nessus-плагины для детекта уязвимостей. Легко посмотреть, можно ли найти ту или иную уязвимость при сканировании сети этим популярным сканером.
• Дисклозы багов с сайтов bug bounty программ. В Vulners поддерживаются записи с HackerOne.
• Публикации на тематических ресурсах. Собираются данные с Threatpost и rdot.org, где часто освещают темы, связанные с уязвимостями. Все это обрабатывается, каталогизируется, структурируется и доступно для поиска в любой момент.

В отличие от других баз, которые описывают баги в специальном формализованном виде (например, на языке OVAL-баз CIS или SecPod), Vulners хранит данные в формализованном виде и автоматически устанавливает связи между ними, быстро ищет и красиво отображает результаты поиска. Что с этим делать, целиком зависит от фантазии конечного пользователя.


Но довольно слов, давай попробуем что-нибудь поискать
Пробуем искать
Первое, что видишь, когда заходишь на Vulners, — это, конечно же, строка поиска. Просто введи название приложения, сайта или CVE-код уязвимости, и Вульнерс выдаст тебе все последние публичные баги по этому продукту со ссылками на эксплоиты, плагины для детекта и различные публикации.

Естественно, простые запросы вроде «wordpress» или «xakep.ru» рассматривать скучно, с этим ты и сам разберешься. Давай посмотрим, что интересного умеет Vulners.
Задача: найти критичные баги Cent OS со ссылками на сплоиты
Запрос: type:centos order:published
Vulners позволяет фильтровать результаты поиска и/или сортировать их по любому полю баги:
• по типу бюллетеня;
• по CVSS Score;
• по дате;
• по номеру плагина детекта;
• по имени ресерчера.
И так далее. Искать и сортировать можно абсолютно по любому полю. Благодаря этому мы можем сформировать сложный запрос типа
type:centos cvss.score:[8 TO 10] order:published
что означает «найди мне все новые баги CentOS, где CVSS Score от 8 до 10, то есть критичный». Поскольку Вульнерс автоматически связывает с багой все собранные данные, на странице CVE ты увидишь доступные патчи и эксплоиты. Также результаты выполнения этого запроса можно получать при помощи API — это пригодится тебе в автоматизированных сканерах. Для этого достаточно сделать GET-запрос на
https://vulners.com/api/v3/
search/lucene/?query=type:centos%20cvss.score:[8%20TO%2010]%20
order:published
В ответ придет отформатированный машиночитаемый JSON.
Еще один полезный параметр API-запросов — references=true, который позволяет получить в результатах запроса не только объекты безопасности, но и все их связи (плагины детекта, эксплоиты и прочее). Например, запрос
https://vulners.com/api/v3/search/lucene/?references=True&query=t
ype:centos%20cvss.score:[8%20TO%2010]%20order:published
— выведет еще и все references, связные элементы из базы.


Задача: обосновать IT-департаменту, зачем нужен патч-менеджмент или просто найти сплоиты по пределенной баге.
Запрос: cvelist:CVE-2014-0160 type:exploitdb
При помощи Vulners сравнительно просто обосновать IT-департаменту, почему уязвимости, обнаруженные сканером, действительно опасны и их стоит патчить. Для этого можно показать список эксплоитов, найденных по номеру CVE или другому идентификатору. Доступен поиск по Exploit-DB или Metasploit. На одной странице будет и описание, и исходники эксплоита, по которым также можно искать.

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

Задача: узнать, сколько денег и на каких bug bounty заработал определенный хакер
Запрос: isox order:bounty
Уникальная фича Vulners — поиск по баг-баунти. Можно найти, какие уязвимости софта зарепортил исследователь, и посмотреть его достижения в bug bounty программах. Результаты можно сортировать по командам, исследователям, цене и прочему. Например, ищем по нику, сортируем по размеру вознаграждения за
баг-баунти: пример поиска по баунти


А если уточнить в запросе reporter, можно считать чужие деньги, что стыдно, но
любопытно.
$ curl "https://vulners.com/api/v3/search/lucene/?query=type%3A
hackerone+order%3Alastseen+reporter%3Aisox" 2>/dev/null | awk
'{if($0~"\"bounty\""){gsub(",","",$2)}; earn+=$2 }END{print earn}'
Ответ (в долларах):
2640
Также можно искать примеры реальных SQL-инъекций или уязвимостей, которые
находили на конкретном сервисе, например на Vimeo:
type:hackerone Vimeo

Задача: найти баги по плагинам Nessus
Запрос: type:nessus order:published
Поиск по плагинам Nessus — также уникальная фича Vulners. Так, запрос выше выведет список последних добавленных плагинов.


Еще одна крутая особенность Vulners — возможность искать по уязвимостям более чем 13 000 топовых Android-приложений из Google Play! Store US через базу HackApp. Для поиска нужно указать тип
type:hackapp
Работа с API
На момент написания статьи публично доступен только поисковый API. В JSON
передается запрос и количество результатов (size), которое хочется получить.
Максимальный размер выдачи — 10 000 записей. Хватит, чтобы утащить все бюллетени CentOS сразу. А чтобы забрать что-то совсем большое, за несколько раз, можно задать смещение с помощью параметра skip. Поскольку Vulners использует Elasticsearch, любой запрос обрабатывается Apache Lucene. А это значит, что запросы к Vulners строятся точно так же, как к Lucene. Имена полей для поиска можно узнать в помощнике API. Любой ключ «схемы» для каждого типа коллектора можно использовать в качестве «ключа» в запросе Lucene, например:
• title
• description
• affectedPackage
• sourceData
• cvelist
Пример запроса по API, который вернет данные по CVE-2014-0160:
curl https://vulners.com/api/v3/search/lucene/?query=type:cve%20
id:CVE-2014-0160

Этот сервис может помочь безопасникам оставаться в курсе публикации новых уязвимостей. Ребята из эксплуатации могут подписаться на рассылки по программному обеспечению, которое используют. Пентестеры — оперативно
получать информацию об эксплуатации уязвимостей на практике.
Хочешь просмотреть свежие публикации CVE? Нет проблем:
/subscribe type:cve
Хочешь видеть апдейты по эксплоитам?
/subscribe bulletinFamily:exploit
Твои серверы работают под Debian? Следи за их безопасностью!
/subscribe type:debian
Выводы
Vulners — уникальный и незаменимый помощник любому хакеру и безопаснику. Он очень сильно экономит время при исследовании и эксплуатации сложных векторов атак. Конечно, инструмент только развивается, но уже сейчас он вполне юзабелен. А что еще более важно, Vulners открытый и бесплатный для конечного пользователя и всегда будет таким. Кстати, уязвимости, найденные на vulners.com, можно сабмитить на https://hackerone.com/vulnerscom
Искать можно все что угодно. Так как проект бесплатный, то и финансирования для выплаты вознаграждений нет, но public disclosure разработчики гарантируют. Email для связи support@vulners.com
Статья стырена из журнала Хакер, за июнь, 2016-го.
Комментарии