Поиск уязвимостей на сайте — это четыре последовательных этапа: разведка, сканирование, эксплуатация и исправление. Для каждого этапа существуют специализированные инструменты. Проще всего запускать их из Kali Linux — дистрибутива, в котором всё необходимое уже установлено.
Инструменты для тестирования на проникновение
| Инструмент | Этап | Назначение | Лицензия |
|---|---|---|---|
| Nmap | Разведка | Сканирование портов и сервисов | Бесплатно |
| Nikto | Сканирование | Поиск уязвимостей веб-сервера | Бесплатно |
| WPScan | Сканирование | Аудит WordPress-сайтов | Бесплатно / Платно |
| Burp Suite | Сканирование | Перехват и анализ HTTP-трафика | Community / Pro |
| OWASP ZAP | Сканирование | Автоматический поиск уязвимостей | Бесплатно |
| Nuclei | Сканирование | Быстрая проверка по шаблонам | Бесплатно |
| SQLMap | Эксплуатация | Поиск SQL-инъекций | Бесплатно |
| Metasploit | Эксплуатация | Фреймворк для эксплуатации | Community / Pro |
Перечисленные инструменты — промышленный стандарт. Большинство из них входят в состав Kali Linux, актуальная версия которого — Kali 2024.4.
Этап 1: Разведка
Цель разведки — понять, что открыто снаружи. Какие порты слушают, какие сервисы работают, какую информацию о системе можно получить без авторизации.
Сканирование портов через Nmap
Nmap — стандартный инструмент для сетевого сканирования. Базовая команда показывает открытые порты:
nmap -sS 192.168.1.100
Интенсивное сканирование — выводит версии сервисов, ОС, результаты базовых скриптов:
nmap -A 192.168.1.100
На выходе вы увидите открытые порты, версии сервисов и первичные признаки уязвимостей: слабые пароли FTP, устаревший SSH, незащищённые административные интерфейсы.
Сбор открытых данных
Параллельно со сканированием проверьте, что об инфраструктуре известно публично:
- WHOIS — данные о домене, регистраторе и владельце
- Recon-ng — фреймворк для автоматизированного сбора данных из открытых источников (входит в Kali Linux)
- Netcraft — поиск поддоменов, история смены хостинга
- hackertarget.com/reverse-ip-lookup — другие сайты на том же IP-адресе
Чем больше данных собрано на этапе разведки, тем точнее будет сканирование.
Этап 2: Сканирование
На этом этапе инструменты имитируют атаки, чтобы выявить слабые места. Важно понимать: фаззинг и активное сканирование генерируют большой объём трафика — системы обнаружения вторжений (IDS) их заметят. Выполняйте только на своей инфраструктуре или с письменного разрешения владельца.
Nikto — сканер веб-сервера
Nikto проверяет веб-сервер на типичные уязвимости: открытые файлы конфигурации, устаревшие компоненты, небезопасные заголовки. Работает с любыми сайтами, не требует исходного кода:
nikto -h https://example.com
Nikto генерирует много ложных срабатываний — каждый результат стоит проверять вручную перед тем как считать его реальной уязвимостью.
WPScan — аудит WordPress
Если сайт работает на WordPress, WPScan проверит версию ядра, плагины и темы на известные уязвимости:
wpscan --url https://example.com --enumerate p,t,u
Флаг --enumerate p,t,u запрашивает список плагинов, тем и пользователей. WPScan особенно полезен для сайтов с большим количеством плагинов — именно через них чаще всего происходят взломы.
Nuclei — сканирование по шаблонам
Nuclei — современный инструмент для быстрой проверки по тысячам готовых шаблонов. Шаблоны охватывают CVE, мисконфигурации, уязвимые компоненты:
nuclei -u https://example.com
Обновить шаблоны перед сканированием:
nuclei -update-templates
Burp Suite и OWASP ZAP — анализ HTTP-трафика
Burp Suite перехватывает запросы браузера, позволяет изменять параметры и искать XSS, CSRF, IDOR и другие уязвимости. Community-версия бесплатна. OWASP ZAP — полностью бесплатная альтернатива с похожими возможностями.
Оба инструмента работают через браузер в режиме прокси. Настройте браузер на 127.0.0.1:8080, после чего весь трафик будет проходить через инструмент.
SQLMap — поиск SQL-инъекций
SQLMap автоматически проверяет параметры на уязвимость к SQL-инъекциям:
sqlmap -u "https://example.com/?id=1" -p id
Указать тип базы данных для ускорения:
sqlmap -u "https://example.com/?id=1" -p id --dbms=MySQL
Этап 3: Эксплуатация
Эксплуатация — не обязательный шаг. Она нужна только в том случае, если требуется продемонстрировать реальную опасность найденной уязвимости. Никогда не эксплуатируйте уязвимости на производственных системах — используйте для этого виртуальную машину или тестовую среду.
SQLMap умеет не только находить, но и эксплуатировать SQL-инъекции: извлекать данные из баз, перебирать таблицы, получать пароли.
Metasploit — фреймворк с тысячами готовых эксплойтов для сервисов, плагинов и операционных систем. Использовать только в изолированной среде:
msfconsole
Этап 4: Исправление
После того как уязвимости найдены, нужно расставить приоритеты и устранить их. Ориентируйтесь на методологию OWASP Top 10 — список десяти наиболее критичных уязвимостей веб-приложений, который обновляется каждые несколько лет.
Порядок приоритетов: уязвимости с возможностью удалённого выполнения кода или полного захвата сервера исправляются немедленно. Утечки данных и SQL-инъекции — в ближайшие 24-48 часов. Мисконфигурации и устаревшие компоненты — в плановом порядке.
После исправления повторите сканирование, чтобы убедиться что проблемы закрыты.
Часто задаваемые вопросы
Как найти уязвимости на сайте бесплатно?
Для бесплатного поиска уязвимостей используйте Kali Linux с предустановленным набором инструментов: Nmap для сканирования портов, Nikto для веб-сервера, WPScan для WordPress, OWASP ZAP для анализа HTTP-трафика. Все инструменты с открытым исходным кодом и бесплатны для использования.
Законно ли тестирование на проникновение?
Тестирование на проникновение законно только для инфраструктуры, которой вы владеете, или при наличии письменного разрешения от владельца. Сканирование чужих сайтов без разрешения нарушает законодательство большинства стран вне зависимости от намерений.
Что такое Kali Linux и зачем он нужен?
Kali Linux — специализированный дистрибутив для тестирования на проникновение. В нём предустановлено несколько сотен инструментов безопасности: не нужно искать и настраивать их отдельно. Подходит для запуска с флешки без установки или как основная система.
Как часто нужно проверять сайт на уязвимости?
Минимум — раз в квартал и после каждого крупного обновления: смены хостинга, обновления CMS, установки новых плагинов. Для коммерческих сайтов с пользовательскими данными рекомендуется автоматическое сканирование раз в неделю.
Чем Nuclei отличается от Nikto?
Nikto — классический сканер, ориентированный на конфигурацию веб-сервера. Nuclei работает по шаблонам, которые охватывают тысячи CVE, мисконфигурации облачных сервисов, уязвимые API. Nuclei быстрее и лучше поддерживается сообществом; для современных проектов часто эффективнее.
Тестирование безопасности удобнее проводить на изолированном сервере — чтобы не рисковать производственной средой. VPS на THE.Hosting разворачивается за 60 секунд в 50+ локациях: можно поднять чистую машину с Kali Linux, провести тесты и снести сервер когда всё готово. Тарифы от €5.77 в месяц.