Пентест сетевого периметра с использованием kali linux

Tartuga

Бывалый
ПРОВЕРЕННЫЙ ПРОДАВЕЦ
PREMIUM USER

Tartuga

Бывалый
ПРОВЕРЕННЫЙ ПРОДАВЕЦ
PREMIUM USER
Регистрация
7 Фев 2020
Сообщения
525
Реакции
98
Репутация
147
Внешний сетевой периметр чаще всего подвергается атакам, определяя перед техническими специалистами задачу — сделать его максимально защищенным и неприступным. Для этого необходимо проводить тестирование на проникновение, одним из этапов которого является сканирование периметра на наличие уязвимостей. Если привлечь сторонних специалистов для проведения работ возможности нет, на базовом уровне можно самостоятельно оценить защищенность сетевых ресурсов бесплатно, без регистрации и СМС.

Ранее мы

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

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

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

или аналогом, в котором есть необходимый инструментарий.

Сканирование
Для начала просканируем IP-адрес с помощью

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

(будем считать, что сканируем шлюз):

У Nmap довольно много функций для сканирования, которые можно комбинировать, например:

  • сканировать TCP и UDP порты;
  • определять сервисы;
  • собирать баннеры и многое другое.
При обнаружении открытых портов нужно проверить сервисы и попытаться собрать как можно больше информации о них, добавив ключ -sV.

Nmap поддерживает огромное количество скриптов, написанных на языке Lua. Следующей командой мы запустим стандартный набор, который будет применяться к указанным портам. В этот набор входят скрипты, предназначенные для определения имени пользователя, от которого запущен сервис, сбор баннеров сайта, проверка анонимного доступа к FTP-серверу и т.д.:

# nmap 192.168.60.50 -sC -p 21,22,53,80,3389
И, разумеется, выполним сканирование UDP портов:

Помимо этого, стоит обратить внимание на специальный скрипт

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

, который может расширить возможности Nmap до функционала сканера уязвимостей, используя базы exploit-db, CVE, OpenVAS и т.д.

Для таких сервисов, как SSH, FTP, MySQL, MSSQL, RDS и т.д. можно попробовать провести атаку методом перебора для получения учетных записей. Если использовать инструмент

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

, то для этого достаточно указать в параметре -l имя пользователя (или список имен), в -p — словарь с паролями, а также атакуемый сервис и адрес цели. Более подробно о том, как проводить атаки методом перебора (brute-force) и с использованием какого инструментария, мы писали в

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

статье.

SSH (22 порт)

# hydra -l user -P /root/passlist.lst ssh://192.168.60.50
MSSQL (1433 порт)

# hydra -l sa -P /root/passlist.lst mssql://192.168.60.50
RDS (3389 порт)

# patator rdp_login host=192.168.60.203 user=test_user password=FILE0 0=passlist.lst -x ignore:code=131
В последнем случае выбрали

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

, поскольку Hydra на данный момент не имеет возможности подбирать пароли к RDS. Имя пользователя для перебора указываем в параметре user, а словарь указываем через параметр FILE0. Также добавляем параметр -x, в котором указываем фильтрацию по коду ответа и игнорируем все ответы с кодом 131.

Рекомендуется, помимо этого, использовать и сканеры уязвимостей, такие как

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

или

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

. Они сканируют целевой хост и ищут всевозможные «точки входа», предоставляя детальный отчет. Например, OpenVAS сканирует открытые порты, посылает специальным образом сформированные пакеты для имитации атаки или даже авторизуется на узле, получает доступ к консоли управления и выполняет на нем команды. По завершении OpenVAS анализирует собранные данные и делает выводы о наличии каких-либо проблем с безопасностью, связанные, в большинстве случаев, с отсутствием последних обновлений или же неправильной настройкой (misconfiguration).


Веб-ресурсы
Для сканирования веб-приложений на уязвимости есть различные инструменты, доступные в Kali Linux. Как правило, используются специализированные сканеры, рассчитанные под конкретные цели. Например, если веб-приложение использует CMS WordPress, то для его анализа можно использовать сканер

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

, который способен определить версию используемой CMS, установленные компоненты, а также плагины. Если какие-то из компонентов будут иметь уязвимости, то дополнительно в выводе можно увидеть ссылки на описание уязвимостей и эксплойтов.

#wpscan --url

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

--random-user-agent

Ключ --random-user-agent может понадобиться для изменения заголовка User Agent, чтобы попытаться обойти средства защиты при сканировании. Тем не менее, мы рекомендуем временно вносить адрес, с которого производится сканирование, в список исключений для более точного анализа.

Еще два популярных сканера веб-приложений —

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

и

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

, станут хорошими помощниками при проведении поверхностного аудита веб-приложения на наличие уязвимостей.

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

Wapiti в своем арсенале имеет методики для определения инъекций; XSS; CRLF багов (HTTP Response Splitting); ошибок в обработке файлов (RFI/LFI, fopen, readfile) и т.д. Запустить его можно командой:

# wapiti

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

-u -v 2 -o /home/outfile.html
  • -u — подсвечивать найденные уязвимости цветом;
  • -v 2 — показывать все уязвимости;
  • -o — путь для создания отчета.
IPSec
Бывает так, что все основные порты при сканировании либо закрыты, либо фильтруются, но открыт 500 (UDP) порт для установки IPSec-соединения, позволяя развить вектор атаки и получить доступ ко внутренним ресурсам компании. Используя утилиту

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

, можно проводить атаки на community-строки для IPSec. Также при использовании ikeforce существует возможность получения хеша для bruteforce-атаки в режиме offline. Пример использования в режиме enumiration:

# python ikeforce.py 192.168.60.50 -e -w wordlist.txt -t 5 2 1 2
  • -e — режим enumiration;
  • -w — путь к словарю для перебора;
  • -t — выбора параметров шифрования, типов хэша, авторизации и тд.
OpenVPN
Ситуация, аналогичная с IPSec. Только в случае с OpenVPN, скорее всего, будет открыт 1194 (UDP) порт, что также может стать вектором для атаки злоумышленниками. Используя скрипт

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

, можно проводить атаки методом перебора с целью получения учетной записи для подключения к VPN и, соответственно, доступа к менее защищенным внутренним корпоративным ресурсам.

./openvpn_brute_force.sh ovpn_dict

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.




  • ovpn_dict — путь к словарю с именем пользователя и паролями для перебора, написанными через двоеточие;

  • Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

    — путь к файлу конфигурации для подключения к VPN.
Wi-Fi
Если в компании используются беспроводные сети, злоумышленники могут этим воспользоваться для развития атаки на подключенных клиентов и внутренние ресурсы компании. Стоит максимально изолировать сегмент с беспроводными устройствами. Для тестирования беспроводных сетей в Kali Linux также предусмотрен набор инструментов.

С помощью одних, например,

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

, можно полностью автоматизировать тестирование беспроводной сети. При использовании других, например,

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

, все этапы проведения тестирования придется провести вручную.

Важно также понимать, что для подобного рода тестирования часто может потребоваться дополнительное оборудование — беспроводные адаптеры, которые способны работать в режиме мониторинга (promiscuous mode) — обязательное условие для перехвата трафика. Для этого подойдут только адаптеры с соответствующими чипами, и выбирать придется в соответствии с их спецификацией. Это могут быть как довольно дорогостоящие устройства Alpha, так и обычные: встроенные в ноутбуке или USB-адаптеры.

Если нужный адаптер подобран, то можно приступать к тестированию. Для начала необходимо перевести устройство в режим мониторинга командой:

# airmon-ng start wlan0


где wlan0 — название беспроводного адаптера (может отличаться). Если все правильно, то название интерфейса изменится с добавлением в него слова mon. Теперь можно сканировать беспроводной эфир на наличие корпоративной точки доступа:

#airodump-ng wlan0mon


Перехватив хендшейк подключения к точке доступа и сохранив его, можно приступать к перебору паролей по словарю:

# aircrack-ng /root/1.cap -w /usr/share/john/password.lst


где:

  • /root/1.cap — путь до сохраненного файла хендшейка;
  • -w — ключ указания словаря с паролями для перебора.
Если в качестве протокола защиты используется WPA2-Enterprise, рекомендую обратить внимание на инструмент

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

, предназначенный для проведения тестирований этого протокола.

WPA2-Enterprise: перехват данных для аутентификации с использованием eaphammer




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