Введение
Разведка начинается с ясной цели и области работ. Номер порта, состояние порта, отпечаток приложения и вывод об уязвимости описывают разные вещи и не взаимозаменяемы.
Вы используете подготовленные локальные службы DNS и HTTP для небольшого рабочего процесса Nmap. Разрешите цель, сканируйте только назначенные порты, определите службы и сохраните вывод для анализа.
Разрешите цель и просканируйте выбранные порты
На этом шаге вы разрешите явно предоставленную учебную цель и выполните сканирование небольшого набора портов методом TCP connect.
Войдите в Kali и выберите общую рабочую папку:
kali
cd /home/labex/project
Разрешённая цель — training-target.test, обслуживаемая локальным учебным DNS-сервером. Разрешите запись A способом из предыдущей работы:
dig @127.0.0.1 -p 5353 +short training-target.test A
Ответ — 127.0.0.1, петлевой адрес контейнера. В область работ входят только порты 8000, 8081 и 9999 этого адреса. Не сканируйте хост, шлюз или публичные системы.
Nmap обнаруживает сведения о хостах и службах. Параметр -sT использует обычные попытки TCP-соединения, поэтому сканирование работает от обычной учётной записи учащегося. -p ограничивает запрошенный набор портов; запятые разделяют номера. -oN сохраняет обычный читаемый вывод в следующий за ним файл:
nmap -sT -p 8000,8081,9999 -oN ports.txt 127.0.0.1
Дождитесь завершения. Порты 8000 и 8081 должны быть open, а 9999 — closed. Открытый означает, что служба принимает TCP-соединения; закрытый — цель ответила, но на порту нет принимающей соединения службы. Результат filtered означает, что Nmap не определила состояние, поскольку пробы или ответы блокировались.
Прочитайте сохранённый отчёт:
cat ports.txt
Он должен определять цель и содержать строки запрошенных портов. Без определения версий метка SERVICE может происходить из таблицы условных имён портов Nmap. Считайте её подсказкой, а не доказательством реально прослушивающего приложения.
Определите службы и извлеките записи открытых портов
На этом шаге вы используете пробы версий служб и сохраните краткий набор находок.
Параметр -sV просит Nmap опросить открытые службы для получения сведений о приложении. Это определение служб и версий, а не Nmap Scripting Engine (NSE); само по себе оно не подтверждает уязвимость. Ограничьте пробы двумя открытыми учебными портами:
nmap -sT -sV -p 8000,8081 -oN services.txt 127.0.0.1
Предоставленные службы — HTTP-серверы Python. Результаты должны определять HTTP и могут включать сведения Python или версии сервера. Точные версии инструмента и интерпретатора могут меняться при обслуживании среды.
Прочитайте сохранённый отчёт версий:
cat services.txt
Сравните свидетельства о службе с условными именами в ports.txt. Нестандартный порт тоже может обслуживать HTTP; номер порта не является идентификатором приложения.
Извлеките строки открытых портов уже изученной фильтрацией текста. Пробелы вокруг open фокусируют совпадение на столбце состояния:
grep ' open ' services.txt > open-services.txt
cat open-services.txt
Вы должны увидеть по одной строке каждого из двух открытых портов. Эти строки записывают наблюдаемую доступность и сведения о службе, а не доказательство возможности эксплуатации. Сохраняйте полный отчёт вместе с краткими находками, чтобы вернуться к исходному контексту.
Резюме
Вы определили адрес разрешённой цели, выполнили целевое сканирование TCP connect, интерпретировали открытое и закрытое состояния и использовали пробы версий служб. Вы сохранили полные отчёты и извлекли краткие строки открытых служб, не смешивая обнаружение с подтверждением уязвимости.

