Как выбрать инструменты для пентестинга, подходящие для задачи

Sun Aug 16 2026

Каждый приведённый здесь пример предполагает письменное разрешение, определённую область работ, контролируемую цель и явные ограничения скорости. Это практическое руководство по безопасности для лаборатории или авторизованного задания, а не разрешение сканировать или эксплуатировать произвольные системы.

Используйте Nmap для обнаруженных сервисов, ffuf — для доступного веб-контента, а Burp Suite — для поведения запросов. Используйте sqlmap для исследования обоснованной гипотезы о SQL-инъекции. Используйте Metasploit для проверки известных уязвимостей и авторизованной постэксплуатации. Суть — в передаче результатов: вы перенесёте XML Nmap в Metasploit, передадите найденные с помощью ffuf элементы в Burp и сохраните запрос Burp для ограниченного тестирования с помощью sqlmap.

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

В этой статье

Начинайте с области работ, а не с команды

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

ShieldOperations рассматривает задание через разведку, эксплуатацию, постэксплуатацию и отчётность. Используйте это как полезную мысленную модель, а затем привяжите каждую команду к одной из этих задач. Храните необработанные запросы, результаты сканирования, временные метки и заметки вместе. Остановитесь, когда заканчивается область работ или следующее действие выйдет за её пределы.

Выбирайте инструменты по вопросу, на который нужно получить ответ

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

ВопросПервый инструментЧто он даётЧего он не доказывает
Какие хосты и сервисы открыты?NmapПорты, наблюдения о сервисах/версиях, результаты выбранных скриптовЧто сервис можно эксплуатировать
Какие веб-пути или файлы доступны?ffufКандидатные каталоги, маршруты, параметры или файлыЧто обнаруженный путь уязвим
Как ведёт себя приложение?Burp SuiteПерехваченные запросы, ответы, параметры и наблюдения за авторизациейЧто автоматическое предупреждение действительно
Инъецируем ли параметр через SQL?Burp, затем sqlmapВручную понятный запрос и ограниченное подтверждение SQLiРазрешение выгружать данные или получать доступ к операционной системе
Применима ли известная уязвимость?MetasploitПроверки модулей и, когда разрешено, воспроизводимая эксплуатация или рабочие процессы сессийСкрытность или универсальный путь эксплуатации

Но эта цепочка не охватит каждое задание. Для облачных идентификационных данных, Active Directory, мобильных приложений и аутентифицированного сканирования уязвимостей нужны другие инструменты. Я бы оценивал покрытие относительно области работ, прежде чем считать пяти инструментов достаточно.

Nmap показывает, что открыто, но не то, что можно эксплуатировать

Сначала задайте наименее инвазивный вопрос. Что отвечает на одобренной цели?

Для приведённого ниже вымышленного задания в область работ входит staging-хост staging.acme.test, а также app.acme.test и одобренная внутренняя тестовая сеть. Начните с определения сервисов и версий, стандартных скриптов и одного XML-артефакта, который можно использовать повторно:

nmap -sV -sC -oX /tmp/acme-nmap.xml staging.acme.test

-sC означает --script=default. XML-файл Nmap становится структурированной точкой передачи для последующих инструментов. Строка версии остаётся свидетельством, которое нужно проверить, а не окончательной идентификацией продукта.

NSE Nmap основан на Lua, запускает скрипты параллельно и, согласно официальной документации NSE, поддерживает обнаружение, определение версий, обнаружение уязвимостей и эксплуатацию. Такой диапазон полезен, и именно поэтому важна сдержанность. Nmap в первую очередь предназначен для разведки, а во вторую — для лёгкой проверки. Запуск --script "all" только потому, что это легко, — небрежное тестирование: официальная документация говорит, что эта категория включает скрипты эксплуатации, перебора и отказа в обслуживании.

Используйте именованный скрипт, когда у вас есть именованный вопрос. Чтобы просмотреть доступные HTTP-скрипты и их аргументы, не запуская их:

nmap --script-help "http-*"

Затем намеренно выберите скрипт и порт:

nmap -p 443 --script <script-name> --script-args <key=value> staging.acme.test

На портале документации Nmap NSE перечислены аргументы скриптов. Изучите скрипт перед выполнением; Nmap предупреждает: «Скрипты не запускаются в песочнице и поэтому могут случайно или злонамеренно повредить вашу систему или нарушить вашу конфиденциальность».

Предположим, сканирование выявляет HTTP, HTTPS и дополнительный сервис. Это поднимает три отдельных вопроса: какое веб-приложение прослушивает соединения, какие маршруты доступны и есть ли у дополнительного сервиса проблема, зависящая от версии. На веб-вопросы отвечают ffuf и Burp. Узко выбранный скрипт NSE может помочь с вопросом о сервисе.

Импорт XML Nmap заполняет в Metasploit хосты, сервисы и связанные находки; он не доказывает, что модуль Metasploit применим. Если вам нужно широкое аутентифицированное покрытие уязвимостей, используйте специализированный сканер в рамках собственной области работ. NSE остаётся инструментом целевой проверки.

ffuf расширяет веб-поверхность перед её тестированием

Веб-сервер может открывать административный путь, конечную точку API, каталог отчётов или забытый backup, на который главная страница никогда не ссылается. Найдите эту поверхность, прежде чем тратить час на тестирование неправильной точки входа.

Для ограниченного запуска обнаружения контента поместите FUZZ туда, где должна находиться каждая запись wordlist:

ffuf -u https://staging.acme.test/FUZZ \
  -w /path/to/approved-wordlist.txt \
  -mc 200,204,301,302,307,401,403 \
  -fs <baseline-size> \
  -rate 10

Заполнители имеют значение. Сначала измерьте ответ обычного несуществующего пути, замените <baseline-size> его размером ответа и используйте wordlist, одобренный для задания. -mc сопоставляет выбранные коды состояния, -fs фильтрует известный размер ответа, а -rate 10 ограничивает скорость запросов десятью запросами в секунду. Проверьте установленную версию ffuf с помощью ffuf -h; флаги и детали вывода должны соответствовать версии, которую вы будете запускать.

Записывайте кандидатные пути, коды состояния, размеры ответов, перенаправления и временные метки. Если запуск находит /reports/, сохраните этот URL и передайте его в Burp. Само существование маршрута — результат обнаружения. Его значение для безопасности определяется тем, что приложение с ним делает.

Не выполняйте fuzzing за пределами разрешённой области хостов и путей. Wordlist — не лицензия на тестирование каждого виртуального хоста, который вы можете угадать.

Burp превращает найденную конечную точку в тестируемый запрос

Полезный момент в веб-тестировании — это обычный запрос, который можно воспроизвести и объяснить. Для иллюстрации считайте приведённое ниже значение заполнителем:

GET /reports/view?id=<record-id> HTTP/1.1
Host: staging.acme.test
Cookie: <authorized-session>

Перехватите обнаруженный маршрут через proxy Burp, затем отправьте копию в Repeater. Меняйте по одному входному значению за раз. Наблюдайте за валидацией, доступом к объектам, границами авторизации, обработкой ошибок и различиями в ответах. Сохраняйте запрос, ответ и заметки о сессии как доказательства.

Pentest.ae называет основными компонентами Burp intercepting proxy, Repeater, Intruder, active scanner и хранилище расширений BApp. Именно поэтому я предпочитаю Burp, когда узким местом является ручной анализ запросов: суждение остаётся рядом с запросом.

За Burp Pro стоит платить, когда ручной анализ запросов является вашим узким местом. Если ваша работа в основном состоит из запланированного DAST в CI, оплата интерактивной рабочей среды — неправильная оптимизация; используйте ZAP и направьте бюджет на проверку.

OWASP ZAP — свободное программное обеспечение под лицензией Apache 2.0, подходящее для автоматизированных DAST-конвейеров. Проект обычно называется OWASP ZAP, а теперь сообщается, что его сопровождает Checkmarx. Сравнения обычно отдают предпочтение Burp Pro для интерактивной ручной работы и точности сканера. Преимущество ZAP — бесплатная автоматизация и интеграция с CI/CD; считайте это сравнительной оценкой, а не результатом бенчмарка.

Active scanner может обнаружить интересный ответ. Логика авторизации, бизнес-логика и ручное подтверждение по-прежнему требуют вашего участия.

sqlmap автоматизирует подтверждение после того, как вы поняли запрос

Сначала вручную выявите обоснованного кандидата. Поймите параметр, обычный ответ, требования к аутентификации и границу воздействия. Поддержка баз данных MySQL, PostgreSQL, Microsoft SQL Server, Oracle и SQLite не означает, что каждое приложение или техника инъекции одинаково пригодны для тестирования. Изучите поведение запроса перед повышением воздействия.

Сохраните перехваченный запрос как /tmp/request.txt, затем используйте синтаксис sqlmap для файла запроса:

sqlmap -r /tmp/request.txt -p <parameter> --batch

-r считывает полный HTTP-запрос из файла, а -p ограничивает тестирование выбранным вами параметром. Убедитесь, что файл содержит правильные хост, путь, cookies, метод и тип содержимого. По возможности удалите не относящиеся к делу учётные данные и подтвердите, что запрос по-прежнему направлен к авторизованной системе.

Ограниченная последовательность выглядит так:

  1. Протестируйте один вручную понятный параметр.
  2. Подтвердите, воспроизводима ли инъекция.
  3. Перечисляйте имена баз данных или таблиц только в том случае, если это разрешено правилами.
  4. Извлеките минимальный объём данных, необходимый для демонстрации воздействия.
  5. Остановитесь до получения доступа к операционной системе, если только такая возможность не разрешена явно и не является необходимой.

EthicalHacking.ai описывает такие параметры, как --dbs, --tables и --dump. Рассматривайте более высокие значения --level и --risk как преднамеренные элементы управления повышением воздействия, а не как исходную настройку.

Такие параметры, как --os-shell и --file-read, могут предоставить доступ к системам или данным за пределами исходного параметра. Используйте их только при явном одобрении и доказанной необходимости. Ответ WAF также требует интерпретации: tamper-скрипты, такие как space2comment, between, randomcase, charunicodeencode, equaltolike и greatest, предназначены для конкретного поведения фильтрации. Попытка одного из них не устанавливает факт обхода и не доказывает наличие исходной проблемы.

sqlmap может тестировать переданный ему параметр; он не может решить, представляет ли этот параметр недостаток авторизации, ошибку бизнес-логики или допустимую границу тестирования. Остановитесь, когда доказательство воспроизводимо и в отчёте достаточно данных о воздействии.

Metasploit предназначен для надёжной проверки, а не магической скрытности

Metasploit появляется после того, как разведка выявляет сервис, версию или гипотезу об уязвимости, которые стоит протестировать. Создайте отдельное рабочее пространство для каждого задания. Импортируйте тот же артефакт Nmap:

workspace -a <client_name>
db_import /tmp/acme-nmap.xml
hosts
services
vulns

Выбирайте модуль только тогда, когда он соответствует доказательствам. Exploit-модули пытаются эксплуатировать уязвимость. Auxiliary-модули выполняют проверки или поддерживают другие действия. Post-модули работают через установленную сессию. Payloads определяют, что будет запущено после эксплуатации; encoders изменяют представление payload. Изучите параметры и описание модуля, затем выполните check перед exploit, если это доступно. Этот дополнительный шаг скучен, но может предотвратить ненужную попытку, вызванную предположением о версии.

Post-модули могут собирать хэши или учётные данные, предлагать локальные эксплойты или расширять сессию. Рассматривайте сбор учётных данных и извлечение хэшей как доступ к данным, требующий явного одобрения, ограничения объёма сбора и безопасного обращения с доказательствами.

Metasploit Framework полезен для воспроизводимой проверки, управления сессиями и авторизованной автоматизации постэксплуатации. Metasploit Pro — отдельный коммерческий продукт; вторичные материалы для планирования указывают его приблизительную стоимость около $15,000 в год, поэтому рассматривайте это как оценку, а не универсальную цену.

RingSafe сообщает, что современные AV обнаруживают стандартные сигнатуры Meterpreter в течение 24 часов и что одного кодирования недостаточно. Это практическое руководство, а не независимо проверенная универсальная статистика обнаружения. Используйте этот вывод, чтобы не считать стандартные payload доказательством слабости конечной точки; не превращайте это руководство в рецепт уклонения от обнаружения.

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

Передача результатов важнее отдельных инструментов

Небольшой авторизованный запуск может дать такую цепочку:

  1. Nmap выявляет HTTP, HTTPS и дополнительный сервис на staging.acme.test. Запишите результат в /tmp/acme-nmap.xml.
  2. ffuf находит /reports/. Вы сохраняете точный URL, временную метку, статус, размер ответа и поведение перенаправления.
  3. Burp перехватывает запрос к этому маршруту и показывает параметр, поведение которого заслуживает тестирования. Вы сохраняете необработанные запрос и ответ, а также заметки о сессии.
  4. sqlmap получает этот запрос только в том случае, если параметр поддерживает обоснованную гипотезу о SQL-инъекции. Он может подтвердить проблему или не дать полезного результата.
  5. Metasploit импортирует XML Nmap только в том случае, если свидетельства о сервисе соответствуют известной уязвимости, которую стоит проверить. Возможно, он вообще не будет уместен.

Последовательность может двигаться в обратном направлении. Ответ Burp может вернуть вас к ffuf для поиска связанного пути API. Версия сервиса может оправдать целевой NSE перед Metasploit. Чистый результат sqlmap может полностью завершить эту ветвь.

Сохраняйте связь между артефактами: результатом сканирования, обнаруженным URL, перехваченным запросом, результатом подтверждения и проверенным модулем. Такая последовательность делает оценку обоснованной.

Выбирайте минимальный набор, отвечающий на следующий вопрос

Потребность в тестированииВыберитеСледующий артефакт
Инвентаризация сетиNmapСписок сервисов и XML-вывод
Целевая проверка сервисаВыбранные скрипты Nmap NSEРезультат скрипта, связанный с гипотезой
Скрытый веб-контентffufКандидатный URL и метаданные ответа
Ручной анализ поведения веб-приложенияBurp SuiteВоспроизводимые запрос, ответ и заметки о сессии
Бесплатное автоматизированное веб-тестирование и CIZAPРезультат DAST для ручной проверки
Предполагаемая SQL-инъекцияСначала Burp, затем sqlmapРезультат ограниченного подтверждения
Проверка известной CVEMetasploitПроверка модуля и авторизованные доказательства проверки
Современное уклонение от обнаружения на конечной точкеОтдельно авторизованный и проверенный методДокументированные область работ и результат тестирования

Перед каждой командой запишите четыре вещи: вопрос, область работ, ожидаемый артефакт и условие остановки. Если вы не можете заполнить все четыре, не запускайте её.