Собеседование на junior пентестера: почему вопрос про сканирование и эксплуатацию ломает самоучек

На последних десяти собеседованиях, которые я проводил для junior-позиции в пентест-команде, один вопрос стабильно отсеивал семерых из десяти кандидатов: «Ты нашёл в Nessus-отчёте Critical-уязвимость — что дальше?» Типичный ответ: «Включу в отчёт, CVSS 9.8, рекомендация — обновить». Я уточняю: «А ты можешь через неё получить доступ?» — и наступает пауза. Не потому что человек не готовился. А потому что в его картине мира «нашёл уязвимость» и «проэксплуатировал уязвимость» — одно и то же. Это не так. Именно тут проходит граница между оператором сканера и пентестером.
Что спрашивают на собеседовании pentester и зачем
Вопрос про разницу между сканированием и эксплуатацией — не академическое упражнение. Он проверяет, понимает ли кандидат методологию пентеста как цепочку фаз, где каждая решает свою задачу. По стандарту PTES (Penetration Testing Execution Standard — один из общепринятых стандартов проведения тестов на проникновение) полный пентест включает семь фаз: предварительное взаимодействие, сбор разведданных, моделирование угроз, анализ уязвимостей, эксплуатация, пост-эксплуатация и отчётность. Сканирование и эксплуатация — фазы 4 и 5. Между ними — пропасть.
Интервьюер не ждёт, что ты перечислишь все фазы по памяти. Он хочет услышать, что ты понимаешь: обнаружение уязвимости и подтверждение возможности через неё пролезть — разные действия с разной сложностью и разными инструментами. На форуме Codeby участники фиксируют ту же проблему: кандидаты «зубрят определение модели OSI, но не могут объяснить, на каком уровне работает их любимый сниффер». В CyberEd формулируют жёстче: «Внятно объяснить работу протокола, а не пересказать шаги из мануала, обычно могут один-два кандидата из тридцати.»
Разница между сканированием и эксплуатацией: этапы пентеста для начинающих
Чтобы понять, где самоучки теряются, разложим обе фазы по конкретным действиям. Параллельно покажу, как каждая маппится на MITRE ATT&CK — открытую базу тактик и техник, которые реальные атакующие применяют в реальных атаках. T-коды (T1190, T1046 и т.п.) — идентификаторы конкретных техник в этой базе. На собеседовании умение ими оперировать — заметный плюс.
Сканирование: разведка и обнаружение
Сканирование — сбор информации о цели: какие порты открыты, какие сервисы на них работают, какие версии ПО установлены и какие известные уязвимости к ним применимы. Задача — составить карту атакуемой поверхности.
В MITRE ATT&CK сканирование попадает в две тактики:
- Reconnaissance (разведка) — Active Scanning (T1595), включая Vulnerability Scanning (T1595.002) и Scanning IP Blocks (T1595.001)
- Discovery (обнаружение внутри сети) — Network Service Discovery (T1046)
Типичные инструменты: Nmap — для обнаружения хостов, портов и определения версий сервисов; Nessus или OpenVAS — для автоматического сопоставления найденных сервисов с базой CVE (Common Vulnerabilities and Exposures — стандартная нумерация публично известных уязвимостей). На выходе — отчёт: список хостов, портов, сервисов и CVE с оценками CVSS (Common Vulnerability Scoring System — шкала критичности уязвимости от 0 до 10).
Ключевое: сканер не подтверждает, что уязвимость можно эксплуатировать. Он говорит: «На порту 445 работает SMBv1, для которого существует CVE с CVSS 9.8». Это информация, не факт компрометации. Сканер не знает, стоит ли перед сервисом межсетевой экран, включены ли механизмы защиты памяти на хосте, есть ли у тебя сетевой доступ до порта. Хорошая аналогия: vulnerability scanning — это диагностика (health check-up), а penetration testing — проверка под нагрузкой (stress test). Первое покажет, что коленка щёлкает. Второе — выдержит ли она марафон.
Эксплуатация: от уязвимости к доступу
Эксплуатация — попытка использовать найденную уязвимость для получения конкретного результата: выполнения кода на целевой системе, чтения данных, повышения привилегий. Задача — доказать, что уязвимость несёт реальный риск, а не теоретический.
В MITRE ATT&CK эксплуатация распределена по нескольким тактикам — зависит от того, что атакующий получает:
- Initial Access — Exploit Public-Facing Application (T1190): эксплуатация публично доступного сервиса
- Execution — Exploitation for Client Execution (T1203): запуск кода через уязвимость в клиентском ПО
- Lateral Movement — Exploitation of Remote Services (T1210): перемещение между машинами
- Privilege Escalation — Exploitation for Privilege Escalation (T1068): повышение прав
Типичные инструменты: Metasploit Framework — фреймворк для разработки и запуска эксплойтов; Burp Suite — для ручной эксплуатации веб-уязвимостей; кастомные скрипты на Python. На выходе — не отчёт с CVE-номерами, а конкретный результат: reverse shell (обратное подключение от скомпрометированной машины к атакующему), прочитанный файл /etc/shadow, сессия с правами администратора.
| Параметр | Сканирование | Эксплуатация |
|---|---|---|
| Цель | Обнаружить потенциальные уязвимости | Подтвердить уязвимость, получив доступ |
| Автоматизация | Почти полностью автоматическая | Требует ручной работы и адаптации |
| Результат | Отчёт: список CVE с оценками | Доказательство: shell, данные, привилегии |
| MITRE ATT&CK | T1595, T1046 — Reconnaissance, Discovery | T1190, T1203, T1210, T1068 — Access, Execution |
| Инструменты | Nmap, Nessus, OpenVAS | Metasploit, Burp Suite, ручные скрипты |
| False positives | Часто — до 30-50% результатов | Нет — или сработало, или нет |
Разница в одном предложении: сканирование говорит «здесь может быть дыра», эксплуатация доказывает «я через неё прошёл».
Типичные ошибки junior пентестера на собеседовании
На основе реальных интервью — два формата ответа на один вопрос. Разница между ними определяет, получит кандидат оффер или вежливое «мы вам перезвоним».
Провальный ответ: «запущу Nmap и включу в отчёт»
Интервьюер: «Тебе дали IP-адрес внешнего сервера клиента. Расскажи, что будешь делать.»
Кандидат: «Запущу nmap -sV для определения сервисов, потом прогоню через Nessus. Посмотрю, какие CVE нашлись. Наиболее критичные включу в отчёт с рекомендациями по патчингу.»
Почему это провал. Кандидат описал работу vulnerability assessor (специалиста по оценке уязвимостей), а не пентестера. Он остановился на фазе сканирования. Не упомянул попытку эксплуатации, не показал понимание того, что Nessus может выдать false positive (ложное срабатывание — сканер сообщает об уязвимости, которой на самом деле нет). Интервьюер слышит: человек умеет нажимать кнопку «Scan» и копировать результат.
Ещё распространённая проблема — непонимание CVSS. Кандидат видит «Critical, 9.8» и решает, что это автоматически означает «легко эксплуатируется». Но CVSS-вектор (формула, описывающая параметры уязвимости) может содержать: AV:N (атака по сети — доступ есть), но PR:H (нужны высокие привилегии — а у тебя их нет) и UI:R (нужно действие пользователя — а ты тестируешь инфраструктуру, не людей). Без разбора вектора оценка критичности — число без смысла.
Сильный ответ: путь от порта до шелла
Интервьюер: тот же вопрос.
Кандидат: «Начну с полного сканирования портов с определением версий и дефолтными NSE-скриптами через Nmap. По результатам определю приоритетные сервисы — если на 80/443 веб-приложение, параллельно запущу анализ через Burp Suite. Допустим, Nmap покажет Apache с версией, для которой есть известный path traversal. Проверю вручную: отправлю запрос с обходом пути в URL и посмотрю, вернёт ли сервер содержимое /etc/passwd. Если да — подтверждённая уязвимость, не ложное срабатывание. Дальше попробую эскалировать: если path traversal позволяет читать файлы, попробую добраться до конфигов с паролями или SSH-ключей. Весь путь — от открытого порта до полученного доступа — документирую со скриншотами.»
Почему это работает. Кандидат показал полную цепочку: сканирование → ручная валидация → эксплуатация → попытка эскалации. Продемонстрировал мышление атакующего (от чтения файлов к поиску учётных данных) и понимание false positives. Интервьюер слышит: человек понимает методологию пентеста целиком, а не только одну фазу.
Подготовка к собеседованию в ИБ: делай раз, делай два, делай три
Практическое упражнение, которое за один вечер прокачает понимание разницы между сканированием и эксплуатацией. Понадобится: Kali Linux (или любой дистрибутив с Nmap и Metasploit) и виртуальная машина Metasploitable 2 — намеренно уязвимый Linux-образ для обучения, скачивается бесплатно с SourceForge.
Шаг 1 — сканирование. Запусти Nmap против Metasploitable:
nmap -sV -sC -p- 192.168.56.101
Флаги: -sV определяет версии сервисов, -sC запускает базовые NSE-скрипты (встроенные скрипты Nmap для автоматических проверок), -p- проходит по всем 65535 портам.
Ожидаемый результат: список из 20+ открытых портов — vsftpd 2.3.4 на порту 21, Apache на 80, Samba на 139/445. Запиши результат — это карта атакуемой поверхности. На этом этапе ты знаешь, что работает на сервере, но ещё не знаешь, можешь ли через это войти.
Шаг 2 — ручная эксплуатация. Из списка выбери vsftpd 2.3.4 на порту 21. Эта версия FTP-сервера содержит намеренно внедрённый бэкдор (backdoor — скрытый механизм доступа; в Metasploitable он включён специально для тренировки). Подключись через telnet 192.168.56.101 21, введи логин, оканчивающийся на :). Сервер откроет порт 6200. Проверь: nmap -p 6200 192.168.56.101. Порт открылся — уязвимость подтверждена вручную, без сканера. Подключись к бэкдору через nc 192.168.56.101 6200 и выполни id. Ожидаемый вывод: uid=0(root). Ты получил root-доступ. Это уже эксплуатация.
Шаг 3 — документирование. Открой текстовый файл и запиши:
| Фаза | Что сделал | Что получил |
|---|---|---|
| Сканирование | nmap -sV -sC -p- |
Список портов и версий |
| Эксплуатация | Ручное подключение + триггер бэкдора | Root shell на сервере |
Теперь ты можешь ответить на собеседовании из собственного опыта: «Сканирование дало карту — двадцать сервисов. Эксплуатация дала root через бэкдор в vsftpd. Разница — между списком потенциальных проблем и доказанным доступом.»
Чек-лист: как пройти собеседование пентестер
Конкретные пункты, которые стоит закрыть до собеседования на junior-позицию.
Методология пентеста. Знай фазы PTES: pre-engagement, intelligence gathering, threat modeling, vulnerability analysis, exploitation, post-exploitation, reporting. Умей объяснить, что происходит на каждой. Когда спрашивают: «Что ты делаешь между сканированием и отчётом?» — ответ «эксплуатация и пост-эксплуатация» — минимум, который от тебя ждут.
Ручная эксплуатация. Пройди хотя бы 5 машин на TryHackMe или HackTheBox от разведки до получения root-флага. Не через writeup, а самостоятельно. Записывай каждый шаг. На собеседовании опиши конкретную машину: «На порту 8080 стоял Jenkins без аутентификации, через Script Console выполнил Groovy-код и получил reverse shell.» Такая история ценнее списка пройденных курсов.
Понимание CVSS. Разбирай вектор, а не только итоговый балл. Когда интервьюер спрашивает «что означает CVSS 9.8?» — «Critical» недостаточно. Покажи, что понимаешь компоненты: Attack Vector (откуда идёт атака — сеть, локально, физически), Privileges Required (какие привилегии нужны — никаких, низкие, высокие), User Interaction (нужно ли действие пользователя). Это отличает оператора сканера от аналитика.
False positives. Объясни, что такое ложное срабатывание и как его проверить. Пример: Nessus показывает CVE на порту 443, но при ручной проверке оказывается, что версия сервиса давно пропатчена, а сканер определил версию по баннеру, который админ не обновил. Интервьюер ценит кандидата, который не слепо доверяет выводу инструмента.
Базовые протоколы. TCP/IP, DNS, HTTP, SMB — не на уровне «знаю, что это», а на уровне «могу объяснить, почему ARP-спуфинг работает только в локальной сети» или «почему reverse shell проходит через NAT, а bind shell — нет». Как отмечают в CyberEd, «отсутствие такой базы читается мгновенно и не компенсируется ни одним сертификатом».
Документирование неудач. Даже если эксплуатация не удалась — расскажи, какие векторы проверил и почему они не сработали. Кандидат, который не смог получить доступ, но подробно объясняет, что именно проверял и почему не вышло, выглядит для нанимающего сильнее того, кто просто сдался. Способность структурированно описать неудачу говорит об аналитическом мышлении — том самом, которое отличает пентестера от скрипт-кидди.
За два с лишним года проведения собеседований я пришёл к неудобному выводу: большинство самоучек проваливаются не из-за нехватки знаний, а из-за зависимости от автоматизации. Курсы и CTF-writeups невольно формируют одну модель: запусти инструмент, получи результат, перейди к следующему шагу. В контролируемых лабах это работает — уязвимость гарантированно эксплуатируема. На реальном проекте Nessus покажет сотни CVE, из которых большая часть — false positives, часть — запатченные уязвимости с устаревшим баннером, несколько требуют привилегий, которых нет. И одна — реально эксплуатируемая, но с кастомным WAF-правилом, блокирующим стандартный payload.
Кандидат, привыкший к зелёной кнопке «Exploit» в Metasploit, в этот момент останавливается. Кандидат, который хотя бы раз разбирал эксплойт построчно — модифицирует payload и закончит проект.
Мой главный маркер на собеседовании: может ли человек рассказать хотя бы одну историю формата «нашёл X в скане, проверил руками, получил — или не получил — доступ, потому что Y». Не идеальную, любую. За такой историей видно мышление. А мышление — единственное, чему нельзя научить одними инструментами. Если ищешь джуниор-роль и хочешь закрыть эту базу системно — IB Basics + 2-3 решённые лабы дают что показать на собесе.
Эту тему и смежные навыки разбирают на практике в курсе «Специалист по тестированию на проникновение» Codeby Academy.
