09.06.2020 @ 15:17 Пентест сетевого периметра с использованием Kali Linux kali linux 2.0, network security, penetration testing, Pentestit, web security Внешний сетевой периметр чаще всего подвергается атакам, определяя перед техническими специалистами задачу — сделать его максимально защищенным и неприступным. Для этого необходимо проводить тестирование на проникновение, одним из этапов которого является сканирование периметра на наличие уязвимостей. Если привлечь сторонних специалистов для проведения работ возможности нет, на базовом уровне можно самостоятельно оценить защищенность сетевых ресурсов бесплатно, без регистрации и СМС. Ранее мы писали, как проводить разведку и сбор информации для анализа защищенности веб-приложения. Статью стоит почитать, если компания использует публично-доступный веб-ресурс, а также для общего развития. В качестве дистрибутива для анализа защищенности можно воспользоваться Kali Linux или аналогом, в котором есть необходимый инструментарий. Информация предоставлена исключительно в ознакомительных целях. Не нарушайте законодательство! Сканирование Для начала просканируем IP-адрес с помощью Nmap (будем считать, что сканируем шлюз): # nmap У Nmap довольно много функций для сканирования, которые можно комбинировать, например: сканировать TCP и UDP порты; определять сервисы; собирать баннеры и многое другое. При обнаружении открытых портов нужно проверить сервисы и попытаться собрать как можно больше информации о них, добавив ключ -sV. # nmap 192.168.60.50 -sV Nmap поддерживает огромное количество скриптов, написанных на языке Lua. Следующей командой мы запустим стандартный набор, который будет применяться к указанным портам. В этот набор входят скрипты, предназначенные для определения имени пользователя, от которого запущен сервис, сбор баннеров сайта, проверка анонимного доступа к FTP-серверу и т.д.: # nmap 192.168.60.50 -sC -p 21,22,53,80,3389 И, разумеется, выполним сканирование UDP портов: # nmap 192.168.60.50 -sU Помимо этого, стоит обратить внимание на специальный скрипт vulscan, который может расширить возможности Nmap до функционала сканера уязвимостей, используя базы exploit-db, CVE, OpenVAS и т.д. Для таких сервисов, как SSH, FTP, MySQL, MSSQL, RDS и т.д. можно попробовать провести атаку методом перебора для получения учетных записей. Если использовать инструмент Hydra, то для этого достаточно указать в параметре -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 В последнем случае выбрали Patator, поскольку Hydra на данный момент не имеет возможности подбирать пароли к RDS. Имя пользователя для перебора указываем в параметре user, а словарь указываем через параметр FILE0. Также добавляем параметр -x, в котором указываем фильтрацию по коду ответа и игнорируем все ответы с кодом 131. Рекомендуется, помимо этого, использовать и сканеры уязвимостей, такие как OpenVAS или Nessus. Они сканируют целевой хост и ищут всевозможные «точки входа», предоставляя детальный отчет. Например, OpenVAS сканирует открытые порты, посылает специальным образом сформированные пакеты для имитации атаки или даже авторизуется на узле, получает доступ к консоли управления и выполняет на нем команды. По завершении OpenVAS анализирует собранные данные и делает выводы о наличии каких-либо проблем с безопасностью, связанные, в большинстве случаев, с отсутствием последних обновлений или же неправильной настройкой (misconfiguration). OpenVAS Веб-ресурсы Для сканирования веб-приложений на уязвимости есть различные инструменты, доступные в Kali Linux. Как правило, используются специализированные сканеры, рассчитанные под конкретные цели. Например, если веб-приложение использует CMS WordPress, то для его анализа можно использовать сканер WPScan, который способен определить версию используемой CMS, установленные компоненты, а также плагины. Если какие-то из компонентов будут иметь уязвимости, то дополнительно в выводе можно увидеть ссылки на описание уязвимостей и эксплойтов. # wpscan --url http://192.168.60.50 --random-user-agent Ключ --random-user-agent может понадобиться для изменения заголовка User Agent, чтобы попытаться обойти средства защиты при сканировании. Тем не менее, мы рекомендуем временно вносить адрес, с которого производится сканирование, в список исключений для более точного анализа. Еще два популярных сканера веб-приложений — Nikto и Wapiti, станут хорошими помощниками при проведении поверхностного аудита веб-приложения на наличие уязвимостей. Nikto предназначен для поиска различных дефолтных и небезопасных файлов, конфигураций и программ на веб-серверах любого типа, а Wapiti анализирует структуру сайта, ищет доступные сценарии атаки, анализирует параметры, а затем включает фаззер, с помощью которого обнаруживает уязвимости. Wapiti в своем арсенале имеет методики для определения инъекций; XSS; CRLF багов (HTTP Response Splitting); ошибок в обработке файлов (RFI/LFI, fopen, readfile) и т.д. Запустить его можно командой: # wapiti http://example.com/about -u -v 2 -o /home/outfile.html, где: -u — подсвечивать найденные уязвимости цветом; -v 2 — показывать все уязвимости; -o — путь для создания отчета. IPSec Бывает так, что все основные порты при сканировании либо закрыты, либо фильтруются, но открыт 500 (UDP) порт для установки IPSec-соединения, позволяя развить вектор атаки и получить доступ ко внутренним ресурсам компании. Используя утилиту ikeforce, можно проводить атаки на 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) порт, что также может стать вектором для атаки злоумышленниками. Используя скрипт openvpn-brute, можно проводить атаки методом перебора с целью получения учетной записи для подключения к VPN и, соответственно, доступа к менее защищенным внутренним корпоративным ресурсам. ./openvpn_brute_force.sh ovpn_dict Office-2.conf ovpn_dict — путь к словарю с именем пользователя и паролями для перебора, написанными через двоеточие; Office-2.conf — путь к файлу конфигурации для подключения к VPN. Wi-Fi Если в компании используются беспроводные сети, злоумышленники могут этим воспользоваться для развития атаки на подключенных клиентов и внутренние ресурсы компании. Стоит максимально изолировать сегмент с беспроводными устройствами. Для тестирования беспроводных сетей в Kali Linux также предусмотрен набор инструментов. С помощью одних, например, Wifite, можно полностью автоматизировать тестирование беспроводной сети. При использовании других, например, Aircrack-ng, все этапы проведения тестирования придется провести вручную. Важно также понимать, что для подобного рода тестирования часто может потребоваться дополнительное оборудование — беспроводные адаптеры, которые способны работать в режиме мониторинга (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, рекомендую обратить внимание на инструмент eaphammer, предназначенный для проведения тестирований этого протокола. WPA2-Enterprise: перехват данных для аутентификации с использованием eaphammer Заключение Поддерживать должный уровень защищенности внешнего сетевого периметра — задача объемная, включающая в себя проведение аудита информационной безопасности, разработку политик и соблюдение регламентов, а тестирование на проникновение — это хороший инструмент, позволяющий получить объективную картину состояния защищенности. Представленный в статье инструментарий поможет получить такую оценку, но для полноценного анализа рекомендуем привлечь специалистов. На программе практической подготовки «Zero Security: A» в специализированных лабораториях, построенных на базе реальной корпоративной сети, мы будем разбирать различный инструментарий для проведения тестирования на проникновение, изучать природу атак и способы компрометации сетевых сервисов и веб-приложений. Присоединяйтесь! О Pentestit Тестирование на проникновение — одно из основных направлений деятельности нашей компании, коллектив которой представлен специалистами с опытом работы в сфере более 10 лет. Специализируясь в области практической информационной безопасности, мы производим поиск уязвимостей на защищенных интернет-ресурсах, выступаем с докладами на международных форумах, разрабатываем программное обеспечение и уникальные лаборатории тестирования на проникновение «Test lab», в которых принимают участие профессионалы со всего мира. Оставайтесь здоровыми и защищенными! Hekpo 23169 Penetration testing Читать дальше >>