![](https://habrastorage.org/files/0c1/3a2/fbb/0c13a2fbb999406faab19c44a006088b.png)
При проведении тестирования на проникновение важным этапом является начальный сбор информации об объектах аудита и их взаимодействии. Для этого необходимо составить карту инфраструктуры, используя различные инструменты и утилиты, получая разрозненный материал для дальнейшего анализа. Сегодня я рассмотрю фреймворк 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
![](https://habrastorage.org/files/adc/b55/72f/adcb5572fc004e6bac08fd98abc5faff.png)
Или через консоль
# sparta
Пример работы
После запуска мы видим следующий интерфейс
![](https://habrastorage.org/files/679/845/244/67984524468a40fda381be0e8a29ca61.png)
И первое, что нам нужно сделать, обозначить наши цели.
Кликаем в этой области:
![](https://habrastorage.org/files/a13/fd6/452/a13fd64526fa4926bd78d4f67279c213.png)
И задаем, к примеру, такую подсеть:
![](https://habrastorage.org/files/4de/ea1/fee/4deea1feef0f4a7e9788ed7f91fa080d.png)
Сразу можно указать 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» в нижней части экрана можно увидеть информацию о работающих задачах. Видим, что множество инструментов работают параллельно.
![](https://habrastorage.org/files/0f1/c17/746/0f1c177468704eabafbb1204671acec2.png)
Правым кликом можно завершить любое из заданий.
Так же, вы можете заметить, что таблица с хостами заполняется, и при выборе одного из хостов, в правой части интерфейса доступны вкладки с результатом работы скриптов.
![](https://habrastorage.org/files/f0d/301/901/f0d301901a1c46f6bd97eebd9fff33df.png)
Кликнув правой кнопкой на обнаруженном открытом порте, мы можем выполнить всевозможные задачи, например, подключиться к сервису при помощи telnet или nc, провести брутфорс и т.д.
Стоит заметить, что вид меню зависит от сервиса. Ниже скриншот для FTP сервиса
![](https://habrastorage.org/files/c2a/d51/f2b/c2ad51f2ba2542a2b194deb4b3132de7.png)
Дополнительно мы можем запустить whatweb, dirbuster, сделать скриншот выбранного веб-приложения.
![](https://habrastorage.org/files/423/0e2/342/4230e2342c94416c91afae1ab4e73668.png)
Для MySQL, соответственно, будет доступна опция mysql client и так далее.
Для DNS доступен трансфер зоны, который мы добавили в начале статьи.
![](https://habrastorage.org/files/b69/e99/a8b/b69e99a8b34b44599154abc614f8a3e8.png)
Так же в логе видно, что автоматически было выполнено задание dig-axfr.
Если вы хотите увидеть весь список инструментов, удерживайте SHIFT во время правого клика.
Вкладки с выводом от запущенных инструментов содержат полный вывод результатов работы инструмента
![](https://habrastorage.org/files/484/daa/630/484daa63079f4a89b320d2d90aab3c7a.png)
Вывод добавленного нами инструмента отображается корректно:
![](https://habrastorage.org/files/d9d/cec/6b6/d9dcec6b6ea7462cae072bfd7ea8961f.png)
Помимо вкладок, привязанных к инструментам, запускаемым Sparta, нам доступны следующие:
- Services – содержит список обнаруженных сервисов
- Scripts – содержит результат работы скриптов nmap NSE (заполняется при запуске nmap с –sC или при правом клике на сервисе и выборе соответствующей опции)
- Information – содержит базовую информацию о хосте, такую как IP, MAC адреса, тип и версию ОС, статические показатели
- Notes – позволяет добавить собственный комментарий к хосту
- Есть возможность провести дополнительное сканирование выбранных хостов при помощи правого клика на выбранном хосте в списке.
![](https://habrastorage.org/files/379/425/01a/37942501a42d4aa3ac64293a9f89e2ba.png)
Так же, есть возможность просмотреть найденную информацию не только в разрезе хостов, но и в разрезе сервисов или отработавших инструментов
Например, посмотреть результат работы nikto по всем хостам:
![](https://habrastorage.org/files/f9f/eac/a04/f9feaca04d2c490c8ddb163a8d5fb20f.png)
Или увидеть, на каких машинах есть веб-приложения:
![](https://habrastorage.org/files/55d/4e9/5a9/55d4e95a9fb64464a18034bc06ba42ed.png)
Здесь есть важная особенность, что Sparta не будет запускать один и тот же инструмент в отношении хоста, против которого уже проводилось сканирование этим инструментом, если вы запустите инструмент через вкладку Services. Чтобы запустить инструмент против всех хостов, удерживайте SHIFT во время правого клика.
![](https://habrastorage.org/files/8c2/a5b/23c/8c2a5b23cdc1475f86d6726152beeaa0.png)
После того как вы решили, что исследовали хост, можно правым кликом и опцией «Mark as checked» пометить его в списке:
![](https://habrastorage.org/files/257/891/5a4/2578915a40494e3db7755bc695de7875.png)
После этого против данного хоста инструменты больше запускаться не будут.
Вкладка Bruteforce позволяет настроить и запустить брутфорс при помощи hydra.
Основные опции вынесены в графический интерфейс, такие как выбор файлов с пользователями и паролями, опция Loop around users, которая позволяет проверять все словарные пароли для каждого пользователя по порядку, а не каждый пароль по всем пользователям и другие. При помощи опции Additional options вы можете дописать свои ключи.
![](https://habrastorage.org/files/05e/c24/bde/05ec24bde812414a9c1d197f7cc51ef3.png)
Так же полезными будет опции Found usernames и Found passwords для брутфорса по уже найденным логинам и паролям. Сохранить результат своих исследований можно через меню File – Save в специальном формате:
![](https://habrastorage.org/files/e31/b3f/330/e31b3f3309274bd4af228f82222c55fe.png)
Заключение
Инструмент Sparta может быть использован широким спектром специалистов. Он будет удобен как новичкам, так и профи, поскольку, обладая удобным интерфейсом, он предоставляет возможность тонкой настройки под свои нужны и привычки, что позволяет, в дальнейшем, экономить время на этапе сбора информации при проведении тестирования на проникновение.