пентест своими руками

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

Для справки
Нижеуказанные действия допускается применять только по отношению к собственной инфраструктуре. Проведение самостоятельной проверки должно быть официально задокументировано во внутренних нормативно-правовых актах организации.
Применение нижеприведенных проверок по отношению к чужой или арендуемой инфраструктуре может повлечь ответственность по следующим статьям Уголовного кодекса РФ:

  • 272 «Неправомерный доступ к компьютерной информации»,
  • 273 «Создание, использование и распространение вредоносных компьютерных программ»;
  • 274 «Нарушение правил эксплуатации средств хранения, обработки или передачи компьютерной информации и информационно-телекоммуникационных сетей».

Введение
Основные виды уязвимостей, которые при анализе безопасности какой-либо цели нужно проверять в первую очередь, можно поделить на 3 условные группы:
  1. Использование уязвимых версий ПО,
  2. Использование слабых паролей;
  3. Неверная конфигурация. 
При наличии соответствующих инструментов хороший специалист может автоматизировать несколько задач, особенно на ранних этапах – таких, как разведка и сканирование. Именно тогда основное внимание уделяется обнаружению любых уязвимостей. Даже в процессе эксплуатации многие инструменты могут помочь в разработке пользовательских атак, сохранении доказательств и составлении отчетов.

Уязвимые версии
Самый простой способ обнаружения уязвимых версий ПО – это использование сетевого сканера Nmap (Network Mapper) - это бесплатная утилита с открытым исходным кодом для обнаружения сетей и аудита безопасности. В то время как системные и сетевые администраторы могут использовать ее для таких задач, как обнаружение и инвентаризация сети, специалисты по безопасности могут использовать Nmap для разведки и сканирования, получая основную информацию, такую как: какие хосты доступны в сети; какие сервисы (имя и версия приложения) предлагают эти хосты; какие операционные системы (и версии ОС) они используют; какие типы пакетных фильтров/брандмауэров используются и некоторые другие характеристики.

После установки NMap запустить процесс обнаружения уязвимых версий ПО можно следующей командой:
nmap 192.168.1.0/24 -sV --script=vulners -oN scan_log -O,
где 192.168.1.0/24 нужно просто заменить на исследуемый вами IP-адрес или диапазон. Диапазон в примере соответствует подсети 192.168.1.0 с маской 255.255.255.0.
Nmap начнет сканирование указанных узлов сети и поиск открытых портов: параметр -sV необходим для определения версий сервисов на обнаруженных портах, --script=vulners – для проверки опознанных версий ПО на наличие публичных уязвимостей, -oN scan_log - для сохранения результатов сканирования в файл “scan_log”, a -O – для определения операционной системы и ее версии.
Nmap начнет сканирование указанных узлов сети и поиск открытых портов, и в результате его работы вы увидите информацию о найденных уязвимостях сервисов различной степени критичности, которую затем можно изучать. 

Выводится идентификатор уязвимости (CVE-год-номер), а затем её CVSS-оценка (это оценка “важности” уязвимости, которая принимает значения от 0 до 10, где 9.0-10.0 – критическая опасность, 7.0-8.9 – высокая, 4.0-6.9 – средняя, а 0.1-3.9 – низкая. Она позволяет понять, на какие уязвимости из списка стоит обращать внимание и изучать описание по их ссылкам, а на какие нет).
Помимо рейтинга CVSS, понять актуальность уязвимости для вас можно, изучив ее описание и такие параметры, как Access Vector (необходимый уровень удаленности злоумышленника: например, Physical – требуется физический доступ к уязвимой системе, Network – возможно удаленное использование уязвимости), Authentication (необходимый уровень прав), Confidentiality Impact, Integrity Impact, Availability Impact (степень влияния на конфиденциальность, целостность и доступность уязвимой системы) и другие. 

Слабые пароли
Самый распространенный способ подбора паролей –Brute-force (атака полным перебором). Это метод, сложность которого зависит от количества всех возможных вариантов. Сам же термин brute-force обычно используется в контексте хакерских атак, когда злоумышленник пытается подобрать логин/пароль к какой-либо учетной записи или сервису.

Nmap также может использоваться для поиска слабых паролей, поскольку может проводить атаки полного перебора (кроме случаев неизвестных сервисов и специфических веб-панелей), например, командой:
nmap -sV <IP> --script=”*-brute” --script-args userdb=users.txt,passdb=passwords.txt -oN scan_log, где users.txt и passwords.txt – названия ваших файлов с логинами и паролями (например, отсюда), а <IP> - исследуемый узел. Для ускорения процесса --script=”*-brute” можно заменить на перечисление конкретных сервисов, которые имеются в вашем случае, например, на --script=ssh-brute, ftp-brute, smb-brute.
В случае успешной атаки Nmap выведет информацию об этом, а так же подобранные учетные данные. 

Для брутфорса различных веб-панелей можно использовать классический инструмент для атак грубой силы – THC-Hydra, который можно настраивать под специфические интерфейсы авторизации, но это потребует некоторого понимания HTTP и работы с веб-запросами.

Для подбора пароля используя Hydra выполним команду:
hydra -V -f -t 4 -l test -P /root/wordlist ssh://192.168.60.50
где:
-V – показывать пару логин+пароль во время перебора
-f – остановка как только будет найден пароль для указанного логина
-P – путь до словаря с паролями
ssh://192.168.60.50 – указание сервиса и IP-адрес цели

  
Более полный справочный материал по брутфорсу множества сервисов – здесь

Неверная конфигурация
Обнаружение некорректных конфигураций также возможно с использованием Nmap, который имеет для этого большое число встроенных скриптов. Например, категория скриптов “auth” работает с различными авторизационными формами, собирает информацию из них и пытается обойти, используя часто допускаемые ошибки.
Для запуска анализа можно использовать следующую команду:
nmap -sV <IP> -O --script=default,auth,discovery,vuln -oN scan_log,
хотя она включает в себя и ряд других проверок (<IP> аналогично нужно заменить на исследуемый вами IP). Результаты сканирования и работы скриптов также затем можно изучать. Нужно помнить, что у сканера возможны false positive, т.е. ошибочное обнаружение уязвимости, которой в реальности нет. 

Иные способы проверки
Если выполнение описанных шагов вызвало какие-либо трудности, есть полностью автоматизированные утилиты, которые могут провести часть из описанных проверок, а также некоторые дополнительные, - например, сканер уязвимостей Nessus. У бесплатной версии есть ограничения по функционалу и числу доступных сканирований, и в целом использование готовых сканеров является менее хорошим тоном в работе «безопасника», но он очень прост в использовании – после установки и запуска достаточно просто ввести исследуемый IP-адрес или диапазон, а сканер самостоятельно выполнит проверки и покажет результат. 

Nessus быстр и точен, и хотя он не предназначен для выполнения эксплойтов, он может быть очень полезен для пентестеров на этапах разведки и сканирования. Он предоставляет подробную информацию о цели, которая может быть использована другими инструментами (например, Metasploit) для эксплуатации.

Атаки на точки доступа
Так же не требует специализированных знаний или навыков тестирование на проникновение через беспроводные сети.
Рекомендуем использовать утилиту wifite. После установки ее нужно просто запустить и выбрать нужную точку доступа. Далее она самостоятельно попробует возможные атаки (перехват handshake, если сетевой адаптер поддерживает режим монитора; разные атаки на WPS (null-pin, pixie dust, перебор)). 

Инструмент может атаковать множество зашифрованных сетей WEP, WPA и WPS подряд. Он настраивается до автоматизма всего лишь несколькими аргументами. Цель Wifite — быть инструментом беспроводного аудита по принципу «установил и забыл».
Особенности:

  • сортирует цели по сигналу (в dB); первыми взламывает самые близкие точки доступа
  • автоматически деаутентифицирует клиентов скрытых сетей для раскрытия их SSID
  • набор фильтров для точного указания, что именно атаковать (wep/wpa/обе, выше определённой силы сигнала, каналы и т.д.)
  • гибкие настройки (таймауты, пакеты в секунду, другое)
  • функции «анонимности»: смена MAC на случайный адрес перед атакой, затем обратная смена, когда атака завершена
  • все захваченные рукопожатия WPA копируются в текущую директорию wifite.py
  • умная деаутентификация WPA; циклы между деаутентификацией всех клиентов и широковещательной
  • остановка любого взлома по Ctrl+C с опциями для продолжения, переход к следующей цели, пропуск взлома или выход
  • отображение общей информации по сессии при выходе; показ всех взломанных ключей
  • все пароли сохраняются в cracked.txt 

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

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


ПРОДОЛЖЕНИЕ СЛЕДУЕТ!..  

Дополнительные рекомендуемые источники
http://www.pentest-standard.org/index.php/PTES_Technical_Guidelines
https://www.isecom.org/OSSTMM.3.pdf

ВСЕ ССЫЛКИ И ПЕРЕЧИСЛЕННЫЕ ИНСТРУМЕНТЫ В СТАТЬЕ:

- статьи УК РФ:Преступления в сфере компьютерной информации

-Nmap (Network Mapper)

-THC-Hydra

- Nessus

- Metasploit

- Wifite

Вам так же могут понравиться другие наши статьи о пентесте. Добро пожаловать! 

Система комментирования SigComments

наши контакты