Как найти уязвимые домены по CVE ID: CVE-2019-3396

Как найти уязвимые домены по CVE ID: CVE-2019-3396
fe9ee9c15735855938b2d1978c1c5dbb.png

Мы будем использовать Spyse, чтобы найти домены по CVE-2019-3396.


Этап 1. Ищем уязвимые версии программного обеспечения

Нам нужно определить уязвимое ПО. Вот описание CVE NVD , предоставленное на момент написания статьи:

The Widget Connector macro in Atlassian Confluence Server before version 6.6.12 (the fixed version for 6.6.x), from version 6.7.0 before 6.12.3 (the fixed version for 6.12.x), from version 6.13.0 before 6.13.3 (the fixed version for 6.13.x), and from version 6.14.0 before 6.14.2 (the fixed version for 6.14.x), allows remote attackers to achieve path traversal and remote code execution on a Confluence Server or Data Center instance via server-side template injection.

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

Нам нужны ответы на такие вопросы:
·       Как отличить обычный сайт от сервера Atlassian Confluence?
·       Как найти конкретную версию приложения?

Чтобы ответить на них, нам нужно проанализировать уязвимую среду и определить уникальные характеристики программного обеспечения (этап 2 и 3).


Этап 2: Воспроизводим уязвимую среду

Образ сервера Confluence доступен на docker-hub, поэтому мы запустим  dock-контейнер на нашей локальной машине, выполнив команду:

docker run \  
 --detach \ 
  --volume /tmp/confluence-data:/var/atlassian/application-data/confluence \ 
  --name="confluence" \ 
  --publish 8090:8090 \  
 --publish 8091:8091 \ 
  atlassian/confluence-server:6.13.1

Эта команда создаст и запустит контейнер с именем confluence на основе образа atlassian /confluence-server версии 6.13.1 (зависит от CVE). В команде указали порты 8090 и 8091 для связи между контейнером и локальным компьютером. Все данные, используемые контейнером, будут храниться в / tmp / confluence-data.

Если не получилось успешно выполнить команду, просмотрите раздел «Возможные проблемы» в конце статьи.

Если выполнение команды успешно, то сервер Confluence должен быть запущен по адресу http: // localhost: 8090 /.

97fef9a62d497ac0a54176372cd9f238.png
Страница приветствия сервера Atlassian Confluence 6.13.1


Этап 3: Определяем характеристики программного обеспечения

Когда сервер Confluence запущен, откройте инструменты веб-разработчика браузера и найдите в коде HTML версию программного обеспечения.

Проанализировав код мы выясняем, что версия сервера Confluence - 6.13.1. Она определена в мета-теге HTML с именем «ajs-version-number»:

cbd4f6e2a424c1bd6162dec594044b01.png
Метатег с номером версии продукта Atlassian

Поскольку Atlassian производит много ПО для веба, можно предположить, что метатег «ajs-version-number» установлен и на других продуктах Atlassian, а не только на серверах Confluence.

Поэтому нам нужна дополнительная информация, чтобы отличить Confluence Server от других продуктов Atlassian.

Мы можем использовать подстроку postfix «Confluence» в заголовке HTML-тега:

27b5170d0510e71d106504edeca8f37a.png
«Confluence» postfix в заголовке HTML


Этап 4: Делаем правильный запрос

На этом этапе используем функцию Advanced Search в Spyse для поиска доменов, работающих на серверах Confluence, с CVE-2019-3396.

Попробуем найти домены Confluence Server с версией 6.13.1 и названием сайта Confluence. Для этого устанавливаем следующие поисковые фильтры:

  • Domains → Site info → Meta tags → name → equals to → ajs-version-number
  • Domains → Site info → Meta tags → value → equals to → 6.13.1 (from env we’ve reproduced)
  • Domains → Site info → Title → contains → Confluence

    2f1d096270079493d95a895bcf784ccd.png
    Результаты поиска по версии 6.13.1 и имени тега

    Просканировав другую версию появились новые результаты:

    • Domains → Site info → Meta tags → name → equals to → ajs-version-number
    • Domains → Site info → Meta tags → value → equals to → 6.14.0 (another version from CVE description)
    • Domains → Site info → Styles → contains → confluence.web.resources
870295e52a1d291a2504e9b74f2ff78a.png
Результаты поиска по версии 6.14.0 и имени тега


Последний этап: очистка

После завершения исследования рекомендуется очистить вашу систему.
Остановите и удалите контейнер докер сервера Confluence, удалите образ докера и удалите каталог с данными, который использует контейнер:

docker stop confluence \ 
  && docker rm confluence \ 
  && docker rmi atlassian/ confluence-server:6.13.1 \ 
  && sudo rm -rf /tmp/confluence-data/ 
Вот и все.


Возможные проблемы

Не удалось создать докер

Имя контейнера должно быть уникальным, поэтому, если вы запустите команду docker-run несколько раз, вы получите ошибку конфликта имен:


docker: Error response from daemon: Conflict. The container name "/confluence" is already
in use by container "a5ee220c6e81f2977ab8abc02ea2d26739d9eeee7e881cf6af99ba894bd86d4b".
You have to remove (or rename) that container to be able to reuse that name.
Чтобы решить эту проблему, просто удалите существующий контейнер с именем confluence, выполнив:


docker rm confluence 

Повторите все этапы заново.
Alt text