При проведении тестирования на проникновение важным этапом является начальный сбор информации об объектах аудита и их взаимодействии. Для этого необходимо составить карту инфраструктуры, используя различные инструменты и утилиты, получая разрозненный материал для дальнейшего анализа. Сегодня я рассмотрю фреймворк 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
Пример работы
После запуска мы видим следующий интерфейс
И первое, что нам нужно сделать, обозначить наши цели.
Кликаем в этой области:
И задаем, к примеру, такую подсеть:
Сразу можно указать 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» в нижней части экрана можно увидеть информацию о работающих задачах. Видим, что множество инструментов работают параллельно.
Правым кликом можно завершить любое из заданий.
Так же, вы можете заметить, что таблица с хостами заполняется, и при выборе одного из хостов, в правой части интерфейса доступны вкладки с результатом работы скриптов.
Кликнув правой кнопкой на обнаруженном открытом порте, мы можем выполнить всевозможные задачи, например, подключиться к сервису при помощи telnet или nc, провести брутфорс и т.д.
Стоит заметить, что вид меню зависит от сервиса. Ниже скриншот для FTP сервиса
Дополнительно мы можем запустить whatweb, dirbuster, сделать скриншот выбранного веб-приложения.
Для MySQL, соответственно, будет доступна опция mysql client и так далее.
Для DNS доступен трансфер зоны, который мы добавили в начале статьи.
Так же в логе видно, что автоматически было выполнено задание dig-axfr.
Если вы хотите увидеть весь список инструментов, удерживайте SHIFT во время правого клика.
Вкладки с выводом от запущенных инструментов содержат полный вывод результатов работы инструмента
Вывод добавленного нами инструмента отображается корректно:
Помимо вкладок, привязанных к инструментам, запускаемым Sparta, нам доступны следующие:
- Services – содержит список обнаруженных сервисов
- Scripts – содержит результат работы скриптов nmap NSE (заполняется при запуске nmap с –sC или при правом клике на сервисе и выборе соответствующей опции)
- Information – содержит базовую информацию о хосте, такую как IP, MAC адреса, тип и версию ОС, статические показатели
- Notes – позволяет добавить собственный комментарий к хосту
- Есть возможность провести дополнительное сканирование выбранных хостов при помощи правого клика на выбранном хосте в списке.
Так же, есть возможность просмотреть найденную информацию не только в разрезе хостов, но и в разрезе сервисов или отработавших инструментов
Например, посмотреть результат работы nikto по всем хостам:
Или увидеть, на каких машинах есть веб-приложения:
Здесь есть важная особенность, что Sparta не будет запускать один и тот же инструмент в отношении хоста, против которого уже проводилось сканирование этим инструментом, если вы запустите инструмент через вкладку Services. Чтобы запустить инструмент против всех хостов, удерживайте SHIFT во время правого клика.
После того как вы решили, что исследовали хост, можно правым кликом и опцией «Mark as checked» пометить его в списке:
После этого против данного хоста инструменты больше запускаться не будут.
Вкладка Bruteforce позволяет настроить и запустить брутфорс при помощи hydra.
Основные опции вынесены в графический интерфейс, такие как выбор файлов с пользователями и паролями, опция Loop around users, которая позволяет проверять все словарные пароли для каждого пользователя по порядку, а не каждый пароль по всем пользователям и другие. При помощи опции Additional options вы можете дописать свои ключи.
Так же полезными будет опции Found usernames и Found passwords для брутфорса по уже найденным логинам и паролям. Сохранить результат своих исследований можно через меню File – Save в специальном формате:
Заключение
Инструмент Sparta может быть использован широким спектром специалистов. Он будет удобен как новичкам, так и профи, поскольку, обладая удобным интерфейсом, он предоставляет возможность тонкой настройки под свои нужны и привычки, что позволяет, в дальнейшем, экономить время на этапе сбора информации при проведении тестирования на проникновение.
Автор: Pentestit