Analytical Center 2

Материал из hack4sec wiki
Перейти к: навигация, поиск

Общее описание

Аналитический Центр (далее АЦ) представляет из себя веб-приложение предназначенное для хранения, сортировки и анализа данных получаемых во время pen-теста.

Системные требования

  • nix-like ОС
  • PHP 5
  • MySQL 5
  • Apache2 или любой другой веб-сервер с поддержкой перезаписи URL (url-rewrite)

АЦ написан на языке PHP с использованием Zend Framework и MySQL в качестве СУБД. Он может быть установлен как на локальный, так и на удалённый хост. В последнем случае помните о том, что сам по себе АЦ не имеет никакой системы авторизации или ограничения доступа, вам придётся позаботиться об этом самостоятельно.


Установка

Установка АЦ проста. Распакуйте содержимое архива туда где будет размещено приложение. Обратите внимание на то, что корнем хоста (DOCUMENT_ROOT), на котором будет работать АЦ (а он должен устанавливаться именно в корень отдельного хоста, иное пока не реализовано), должна являться директория public, расположенная в корне дистрибутива. После этого дайте права на запись пользователю от имени которого работает веб-сервер на директории application/tmp и application/storage. Затем создайте в MySQL базу данных для АЦ и выполните в ней запросы из /database.sql. Отредактируйте секцию [production] в конфигурационном файле application/configs/application.ini. За соединение с БД там отвечают следующие параметры:

resources.db.params.host - хост MySQL

resources.db.params.username — имя пользователя

resources.db.params.password - пароль

resources.db.params.dbname — имя базы данных

Язык интерфейса АЦ можно изменить в параметре «locale» (en/ru), по умолчанию он английский. Установка завершена. Теперь обратившись браузером к корню сайта вы должны увидеть главную страницу АЦ содержащую один демонстрационный проект.

Ac-1.png


Общая схема работы

Ac2.jpg

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

Дочерними для проекта являются сущности серверов и заметок. Заметки — обычные текстовые сообщения которые используются в качестве быстро доступной записной книжки. Они будут сопровождать интерфейс во время работы с проектом. Что же касается серверов, то для них, в свою очередь, дочерними являются сущности Домены и Серверное ПО. Дочерними для Доменов являются Веб-Приложения.

Кроме того, в АЦ присутствуют сущности которые могут быть дочерними для нескольких видов объектов. Это Файлы, Задачи, Уязвимости и Пользователи.

Пользователи могут быть у серверов (пользователи ОС), серверного ПО и веб-приложений. Уязвимости — у Серверного ПО и Веб-Приложений. Файлы и Задачи могут быть у любой основной сущности.


Интерфейс

Основной рабочий интерфейс АЦ делится на 4 части.

Ac-2.png

В шапке находится ссылка на полный список проектов, название текущего проекта и заметки. Их список раскрывается при клике.

Ac-3.png

Слева находится навигационное меню по разделам. У каждого пункта после названия указано количество объектов данного типа имеющихся в текущем проекте.

Ac-4.png

Большую часть экрана занимает основная рабочая область. Она может быть двух видов — список объектов и страница просмотра объекта. Первый вариант:

Ac-5.png

Сверху у неё находится панель фильтров и иконки действий раздела. Чуть ниже расположен сам список с некоторыми свойствами объектов и иконками их действий. Второй вариант (просмотр объекта) выглядит следующим образом:

Ac-6.png

Ссылки на дочерние объекты ведут на соответствующие списки.


Виды объектов в АЦ

Сервера

Сервера являются изначальными объектами в АЦ потому что именно с их исследования начинается любой пен-тест. Под сервером здесь подразумевается конкретный компьютер подключенный к сети, имеющий свой IP-адрес, ОС и установленное ПО. Сервера имеют следующие свойства:

  • Имя (это может быть имя хоста или произвольно придуманное обозначение)
  • IP-адрес в формате IPv4
  • ОС
  • Редакция/Версия ОС
  • Проверен (да/нет)
  • Комментарий

У серверов имеются следующие дочерние сущности:

  • Серверное ПО
  • Домены
  • Пользователи (ОС)
  • Задачи
  • Файлы

Все они будут рассмотрены ниже.

В строке действий кроме добавления сервера есть иконки импорта и экспорта серверов списком. При этом извлекаются/загружаются списки IP-адресов, без имён и прочей информации. Импорт происходит с помощью текстового файла в формате по одному IP-адресу на строку. Именами импортируемых серверов будут их же IP-адреса. На странице просмотра данных конкретного сервера есть действие импорта XML-отчёта сканера nmap (запуск nmap с опцией -oX).

Ac-7.png

Ac-8.png

При импорте АЦ извлекает и добавляет в проект информацию обо всём ПО которое удалось обнаружить nmap (порт, имя службы, протокол, версия, баннер). В форме есть 2 галочки - «Обработать все хосты в отчёте» и «Игнорировать хосты без найденных портов». При отметке первой АЦ обработает все хосты из отчёта, а не только текущий, на чьей странице вы запускаете импорт. Если сервера с попадающимися IP отсутствуют в проекте, то они будут созданы. При отметке второй галочки АЦ пропустит хосты не имеющие открытых портов и никак их не обработает. Это может быть полезно при сканировании большого диапазона адресов когда nmap сообщает о большом количестве IP у которых все 65535 портов отмечены как фильтрующиеся.


Серверное ПО

Ac-9.png

В данном случае под серверным ПО подразумеваются сервисы к которым возможно обращение по сети. Записи серверного ПО имеют следующие свойства:

  • Название
  • Версия
  • Версия устарела (да/нет) (Версии с отметкой устаревших подсвечиваются красным цветом, иначе зелёным)
  • Версия неизвестна (да/нет)
  • URL разработчика
  • Баннер
  • Протокол
  • Порт
  • Призрак (да/нет)
  • Проверен (да/нет)
  • Комментарий

Поле Призрак и дальше будет встречаться у многих объектов. Оно означает что напрямую существование этого объекта не доказано, однако с большой вероятностью можно говорить о том что он существует. К примеру, есть пять серверов с одинаковой конфигурацией и ПО. На четырёх из них открыт порт 3306 (MySQL), но на пятом запросы ко всем портам больше 1000-го фильтруются. При этом сервисы находящиеся до 1000-го порта полностью совпадают на всех пяти серверах. В такой ситуации напрямую нельзя сказать что на пятом сервере тоже работает MySQL, однако с большой вероятностью можно предположить что это так. Из дочерних сущностей у серверного ПО могут быть:

  • Уязвимости
  • Пользователи (не ОС, а отдельно этого ПО, например как у MySQL)
  • Задачи
  • Файлы

Все они будут рассмотрены ниже.


Уязвимости

Ac-10.png

В АЦ уязвимости бывают у Серверного ПО и Веб-Приложений (рассмотрены ниже). Эти сущности хранят в себе информацию о нарушениях безопасности обнаруженных пен-тестером. Имеют следующие свойства:

  • Название
  • Тип уязвимости
  • Уровень риска
  • Ссылка на эксплоит
  • Описание

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

Домены

Ac-11.png

Под доменами в АЦ подразумеваются веб-домены - виртуальные хосты на которые могут быть установлены веб-приложения. На одном сервере может располагаться множество доменов. Они имеют следующие свойства:

  • Название
  • Проверен (да/нет)
  • Комментарий

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

Ac-12.png

Если отметить галочку «Проверять IP доменов и создавать новые сервера при необходимости», то в процессе импорта АЦ получит IP-адрес каждого из имён и если IP отсутствует в проекте среди серверов, добавит его. Домен будет добавлен уже к этому серверу, а не к тому что был выбран в строке фильтров во время открытия формы импорта.

Веб-приложения

Ac-13.png

Веб-Приложения в АЦ — ПО любого характера устанавливаемое на сайт. Это может быть галерея, форум, CMS и многое другое. Они имеют следующие свойства:

  • Название
  • URL (по которому оно расположено на целевом домене)
  • URL разработчика
  • Версия
  • Версия устарела (да/нет) (Версии с отметкой устаревших подсвечиваются красным цветом, иначе зелёным)
  • Версия неизвестна (да/нет)
  • Для доступа требуется авторизация (да/нет)
  • Использует перезапись URL (да/нет)
  • Призрак (да/нет)
  • Проверено (да/нет)
  • Комментарий

Дочерними для Веб-Приложений являются Пользователи, Файлы, Задачи и Уязвимости.

Файлы

Ac-14.png

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

  • Проекту
  • Серверу
  • Серверному ПО
  • Домену
  • Веб-приложению

Они загружаются в АЦ с указанием комментария и могут быть скачаны из общего списка.

Задачи и шаблоны задач

Ac-15.png

В ходе выполнения больших по объёму тестирований на проникновение может появиться необходимость в ведении списка задач с отметкой их статуса. В АЦ задачи могут относиться к:

  • Проекту
  • Серверу
  • Серверному ПО
  • Домену
  • Веб-Приложению

Из свойств они имеют лишь название, описание и 3 варианта статуса — Новая, Выполняется, Выполнена. В общем списке они подсвечиваются красным, желтым и зеленым статусом соответственно. Выполненные задачи выводятся последними, выполняемые — первыми.

Также в основном меню имеется раздел шаблонов задач. Из свойств шаблоны имеют только тип, название и описание. При создании объектов которые могут иметь задачи, АЦ проверяет наличие соответствующих шаблонов. Если шаблоны найдены, по ним создаются задачи. Т.е. создание одного щаблона задач для доменов приведёт к тому, что для каждого вновь добавляемого домена автоматически будет создаваться задача по этому шаблону.

Пользователи

Ac-16.png

Пользователи в АЦ бывают трёх видов:

  • Сервера (пользователи ОС)
  • Серверного ПО (отдельные от ОС аккаунты, как например пользователи MySQL)
  • Веб-приложений

Они разбиваются на группы. На странице пользователей, после выбора их типа, родителя и объекта становятся доступны выпадающий список уже существующих у объекта групп и кнопка добавления новой группы. При выборе группы в строке действий становятся доступны иконки её редактирования и удаления.

Кроме того, в списке действий присутствует импорт и экспорт пользователей. При импорте вы можете выбрать поля которые будут находиться в загружаемом текстовом файле (формат - по 1 записи на строку), а также указать разделитель которым будут разделены данные полей. Обратите внимание на то, что поля в загружаемом списке должны находиться ровно в той последовательности в которой они находятся в форме.

Ac-17.png

В этом случае текстовый файл должен содержать строки вида «логин:почта:пароль». Форма экспорта выглядит схоже. Дополнительные 3 галочки позволяют вам выгрузить записи всех пользователей с известными паролями, всех с не найденными паролями и пользователей с отметкой VIP. Все виды пользователей имеют следующие свойства:

  • Логин
  • E-mail
  • Призрак (да/нет)
  • VIP (да/нет)
  • Хеш
  • Соль
  • Алгоритм хеширования
  • Пароль
  • Пользователи сервера (учётные записи ОС) имеют 2 дополнительных поля:
  • Домашняя директория
  • Оболочка

Стоит обратить отдельное внимание на работу с хешами и паролями. Когда вы добавляете пользователя с хешем (солью) и паролем, или редактируете пользователя указывая пароль, или импортируете список пользователей с хешами и паролями, то АЦ ищет в БД записи со схожими хешами (солями) и алгоритмами в рамках всех проектов и найдя аналогичные хеши прописывает им соответствующий пароль. На данный момент никаких оповещений о найденных дублях АЦ не выводит, это будет исправлено в будущих версиях. Кроме того, на главной странице АЦ (список проектов) имеется форма загрузки пар хеш/пароль.

Ac-18.png

В ней вы можете загрузить списки с хешами (солями) и паролями, после чего АЦ просмотрит пользователей всех проектов на предмет совпадений и сообщит у каких пользователей, где и в каких проектах были найдены пароли. По клику на кнопке «Все не найденные хеши», там же на главной странице, можно загрузить архив всех не подобранных хешей с разбиением по алгоритмам (каждый текстовый файл внутри архива — отдельный алгоритм).

Визуализация

Ac-19.png

Раздел визуализации используется для древовидного графического представления серверов и доменов внутри проекта. Корнем дерева является проект. От него ветвями отходят подсети IP-адресов внутри которых находятся сервера указанные в проекте. От серверов ветвями отходят доменные зоны доменов размещённых на них. Чуть ниже зон простым списком выводятся доменные имена.

Авторы / Контакты / Ссылки

Антон Кузьмин (anton.kuzmin.russia@gmail.com) http://anton-kuzmin.ru (ru) http://anton-kuzmin.pro (us)

Форум проекта: http://hack4sec.pro/forum/viewforum.php?f=14

Github: https://github.com/hack4sec/ac2