Sparta — комплекс для проведения тестирования на проникновение

в 10:37, , рубрики: pentestit, Блог компании PentestIT, информационная безопасность, тестирование на проникновение

Sparta — комплекс для проведения тестирования на проникновение - 1

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

Sparta – это инструмент для проведения тестирования на проникновение, написанный на Python, который призван сфокусировать внимание пентестера на анализе найденных уязвимостей, а не на командах и синтаксисе.

Sparta предоставляет удобный графический интерфейс, который выглядит как центр управления инструментами сканирования, брутфорса, сканерами уязвимостей и прочими. Инструмент Sparta входит в стандартный пакет утилит Kali Linux и готова к использованию сразу после установки дистрибутива.

Официальные сайты:
https://github.com/SECFORCE/sparta/
http://sparta.secforce.com/

Функционал

  • Проводит обнаружение хостов и сервисов в сети при помощи nmap или позволяет загрузить результат сканирования nmap формата XML.
  • Проверяет учетные данные на стандартные и словарные значения (словари /usr/share/sparta/wordlists).
  • Обнаруживает уязвимости при помощи популярных сканеров уязвимостей (nikto).
  • Делает скриншоты найденных веб-сайтов.
  • Позволяет настроить поведение Sparta в отношении любых сервисов (какие инструменты запускать против каких сервисов и с какими параметрами).
  • Позволяет отметить хосты, информация о которых нам не интересна, чтобы не тратить на них время.

Настройка

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

Настройки Sparta содержатся в следующих файлах:

  • /etc/sparta.conf
  • /usr/share/sparta/sparta.conf
  • /var/lib/dpkg/info/sparta.conffiles

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

Файл содержит список параметров, разделенных на группы General Settings, Brute Settings, StagedNmapSettings и т.д. Разработчики не рекомендуют удалять какие-либо строки из файла конфигурации, т.к. это может нарушить работу программы. Группы ToolSettings, HostActions, PortActions и PortTerminalActions отвечают за настройку опций, доступных по правому клику. Группа SchedulerSettings отвечает за автоматический запуск инструментов в отношении найденных сервисов.

Для примера добавим инструмент dig для сервиса UDP/TCP 53 порта с ключом -t axfr для выполнения трансфера зоны.
Так как данный инструмент работает с сервисом, а не с хостом, то группой, которую нам нужно заполнить, будет PortActions. Нам необходимо выполнить следующую команду в отношении найденного DNS сервера

# dig -t axfr ИМЯ_ДОМЕНА @DNS_IP

Sparta имеет специальные конструкции, такие как [PORT] и [IP] позволяющие доставить в наш инструмент порт сервиса, который мы атакует и IP адрес хоста.

Но нам нужно узнать доменное имя. Для воспользуемся следующей конструкцией

$(dig -x [IP] +short @[IP] | head -n 1 | cut -d  '.' -f 2-3)

Таким образом, в группу PortActions попадает следующая строка, по аналогии с уже имеющимися в файле.
[PortActions]

dig-axfr=Try Zone Transfer, bash -c "dig -t axfr $(dig -x [IP] +short @[IP] | head -n 1 | cut -d '.' -f2-3) @[IP]", "domain"

Но я хочу, чтобы попытка трансфера зоны выполнялась всякий раз, когда будет обнаружен DNS сервис.
Для этого я заполню группу SchedulerActions таким образом
[SchedulerSettings]

dig-axfr="domain", udp

Теперь можно перезапустить Sparta чтобы проверять работу добавленного инструмента.
Sparta можно запустить через меню, в разделе Vulnerability Analysis

Sparta — комплекс для проведения тестирования на проникновение - 2

 
Или через консоль

# sparta

Пример работы

После запуска мы видим следующий интерфейс

Sparta — комплекс для проведения тестирования на проникновение - 3

 
И первое, что нам нужно сделать, обозначить наши цели.
Кликаем в этой области:

Sparta — комплекс для проведения тестирования на проникновение - 4

 
И задаем, к примеру, такую подсеть:

Sparta — комплекс для проведения тестирования на проникновение - 5

 
Сразу можно указать sparta провести обнаружение хостов при помощи Nmap.
Вторая опция «Run staged nmap scan» запускает nmap особым образом, разделяя сканирование на этапы (stages). Они представлены в файле конфигурации Sparta.conf.
[StagedNmapSettings]

stage1-ports="T:80,443"
stage2-ports="T:25,135,137,139,445,1433,3306,5432,U:137,161,162,1434"
stage3-ports="T:23,21,22,110,111,2049,3389,8080,U:500,5060"
stage4-ports="T:0-20,24,26-79,81-109,112-134,136,138,140-442,444,446-1432,1434-2048,2050-3305,3307-3388,3390-5431,5433-8079,8081-29999"
stage5-ports=T:30000-65535

Этот режим позволяет быстрее получать информацию о найденных сервисах и оптимизирует работу по автоматическому запуску тасков.
После нажатия кнопки «Add to scope» в нижней части экрана можно увидеть информацию о работающих задачах. Видим, что множество инструментов работают параллельно.

Sparta — комплекс для проведения тестирования на проникновение - 6

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

Sparta — комплекс для проведения тестирования на проникновение - 7

 
Кликнув правой кнопкой на обнаруженном открытом порте, мы можем выполнить всевозможные задачи, например, подключиться к сервису при помощи telnet или nc, провести брутфорс и т.д.
Стоит заметить, что вид меню зависит от сервиса. Ниже скриншот для FTP сервиса

Sparta — комплекс для проведения тестирования на проникновение - 8

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

Sparta — комплекс для проведения тестирования на проникновение - 9

 
Для MySQL, соответственно, будет доступна опция mysql client и так далее.
Для DNS доступен трансфер зоны, который мы добавили в начале статьи.

Sparta — комплекс для проведения тестирования на проникновение - 10

 
Так же в логе видно, что автоматически было выполнено задание dig-axfr.
Если вы хотите увидеть весь список инструментов, удерживайте SHIFT во время правого клика.
Вкладки с выводом от запущенных инструментов содержат полный вывод результатов работы инструмента

Sparta — комплекс для проведения тестирования на проникновение - 11

 
Вывод добавленного нами инструмента отображается корректно:

Sparta — комплекс для проведения тестирования на проникновение - 12

 
Помимо вкладок, привязанных к инструментам, запускаемым Sparta, нам доступны следующие:

  • Services – содержит список обнаруженных сервисов
  • Scripts – содержит результат работы скриптов nmap NSE (заполняется при запуске nmap с –sC или при правом клике на сервисе и выборе соответствующей опции)
  • Information – содержит базовую информацию о хосте, такую как IP, MAC адреса, тип и версию ОС, статические показатели
  • Notes – позволяет добавить собственный комментарий к хосту
  • Есть возможность провести дополнительное сканирование выбранных хостов при помощи правого клика на выбранном хосте в списке.

Sparta — комплекс для проведения тестирования на проникновение - 13

 
Так же, есть возможность просмотреть найденную информацию не только в разрезе хостов, но и в разрезе сервисов или отработавших инструментов
Например, посмотреть результат работы nikto по всем хостам:

Sparta — комплекс для проведения тестирования на проникновение - 14

 
Или увидеть, на каких машинах есть веб-приложения:

Sparta — комплекс для проведения тестирования на проникновение - 15

 
Здесь есть важная особенность, что Sparta не будет запускать один и тот же инструмент в отношении хоста, против которого уже проводилось сканирование этим инструментом, если вы запустите инструмент через вкладку Services. Чтобы запустить инструмент против всех хостов, удерживайте SHIFT во время правого клика.

Sparta — комплекс для проведения тестирования на проникновение - 16

 
После того как вы решили, что исследовали хост, можно правым кликом и опцией «Mark as checked» пометить его в списке:

Sparta — комплекс для проведения тестирования на проникновение - 17

 
После этого против данного хоста инструменты больше запускаться не будут.
Вкладка Bruteforce позволяет настроить и запустить брутфорс при помощи hydra.
Основные опции вынесены в графический интерфейс, такие как выбор файлов с пользователями и паролями, опция Loop around users, которая позволяет проверять все словарные пароли для каждого пользователя по порядку, а не каждый пароль по всем пользователям и другие. При помощи опции Additional options вы можете дописать свои ключи.

Sparta — комплекс для проведения тестирования на проникновение - 18

 
Так же полезными будет опции Found usernames и Found passwords для брутфорса по уже найденным логинам и паролям. Сохранить результат своих исследований можно через меню File – Save в специальном формате:

Sparta — комплекс для проведения тестирования на проникновение - 19

 

Заключение

Инструмент Sparta может быть использован широким спектром специалистов. Он будет удобен как новичкам, так и профи, поскольку, обладая удобным интерфейсом, он предоставляет возможность тонкой настройки под свои нужны и привычки, что позволяет, в дальнейшем, экономить время на этапе сбора информации при проведении тестирования на проникновение.

Автор: Pentestit

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js