Изучите базовый синтаксис команд Nmap

CybersecurityCybersecurityBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Наша сценарий разворачивается в 2145 году на космодроме Лунарный Шлюз (Luna Gateway Spaceport), крупнейшем и важнейшем космодроме на Луне. В качестве лидера команды по кибербезопасности ваша задача - защитить сетевую инфраструктуру космодрома от угроз. С учетом недавних сообщений о росте подозрительной активности вы предполагаете, что хакеры пытаются проникнуть в системы. К концу этого практического занятия вы получите практический опыт использования Nmap для важных сетевых разведывательных операций, что является важным навыком для обеспечения безопасности любой сети, даже космодрома будущего.

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

Nmap (от англ. Network Mapper) - это открытый инструмент (open - source tool). В области сетевой безопасности он играет важную роль в обнаружении хостов и служб в компьютерной сети. Представьте его как детектива, который может узнать, что происходит в сети. В нашей вымышленной сценарии с космодромом Лунарный Шлюз (Luna Gateway Spaceport) Nmap имеет огромную ценность для защиты безопасности его сложной сетевой инфраструктуры.

Перед тем, как мы начнем использовать Nmap, нам нужно убедиться, что он установлен на нашей системе. Вот как вы можете проверить его установку:

  1. Сначала вам нужно открыть окно терминала. В среде LabEx терминал обычно уже открыт и настроен на каталог /home/labex/project. Терминал - это как центр управления, где вы можете вводить команды для взаимодействия с системой.

  2. Теперь мы запустим команду для проверки версии установленного Nmap. Введите следующую команду в терминал и нажмите Enter:

    nmap --version

    Эта команда просит систему показать информацию о установленной версии Nmap. Опция --version - это распространенный способ во многих программах получить сведения о версии.

  3. После выполнения команды потратьте немного времени на изучение вывода. Вы увидите такие детали, как конкретная версия Nmap, способ ее компиляции и другие соответствующие сведения. Это помогает вам убедиться, что Nmap установлен правильно и также дает представление о том, какие функции могут быть доступны на основе версии.

Настройка тестовой службы

Перед тем, как вы начнете практиковаться с Nmap, вам нужна цель для сканирования. Представьте Nmap как инструмент - детектив в мире кибербезопасности, и вам нужен подозреваемый (цель) для расследования. В этом случае мы настроим простую сетевую службу на вашем локальном компьютере с помощью инструмента, называемого netcat (nc). Netcat - это универсальная сетевая утилита, которая может считывать и записывать данные через сетевые соединения.

  1. Сначала убедимся, что netcat установлен на вашей системе. Вы можете сделать это, запустив следующую команду в терминале:

    nc -h

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

  2. Теперь откройте новое окно терминала. Это важно, так как мы будем использовать исходный терминал для других команд позже, и нам нужно, чтобы служба netcat работала в отдельном окне. Вы можете открыть новое окно терминала, щелкнув правой кнопкой мыши в области терминала и выбрав "Новый терминал" или используя сочетание клавиш (обычно Ctrl+Shift+T).

  3. В этом новом окне терминала мы запустим простую сетевую службу, которая будет оставаться открытой. Запустите следующую команду:

    while true; do nc -n -lvp 7777; done

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

    • -n: Этот флаг сообщает netcat использовать IP - адреса напрямую, вместо попыток разрешения имен хостов. Это ускоряет процесс и избавляет от потенциальных проблем, связанных с DNS.
    • -l: Этот флаг сообщает netcat войти в режим прослушивания. Он ожидает входящих соединений, вместо того чтобы пытаться их иницировать.
    • -v: Этот флаг включает подробный вывод. Netcat предоставит более подробную информацию о том, что он делает, что полезно для отладки и понимания происходящего.
    • -p 7777: Этот флаг указывает номер порта, на котором netcat должен прослушивать. В этом случае мы выбрали порт 7777.
  4. Оставьте это окно терминала открытым. Мы будем использовать его для наблюдения за входящими соединениями, когда будем сканировать с помощью Nmap в следующих шагах. Работающая служба netcat в этом окне будет служить нашей целью для сканирования Nmap, позволяя нам увидеть, как Nmap взаимодействует с реальной сетевой службой.

Выполнение базового сканирования с помощью Nmap

Теперь, когда мы успешно настроили службу, пришло время использовать Nmap для ее обнаружения. Nmap - это мощный инструмент для сетевого сканирования, который может помочь нам найти открытые порты и службы на целевом компьютере. На этом этапе мы выполним базовое сканирование локального хоста (localhost) для поиска только что настроенной службы.

  1. Сначала вернитесь в исходное окно терминала. Убедитесь, что это не окно, в котором запущен netcat. Мы должны использовать этот терминал для запуска команд Nmap.

  2. Затем запустите следующую команду Nmap:

    nmap -v -p 7777 localhost

    Разберем эту команду, чтобы понять, что делает каждая ее часть:

    • nmap: Это основная команда для запуска Nmap. Она сообщает системе, что мы хотим использовать инструмент Nmap для сетевого сканирования.
    • -v: Эта опция включает подробный вывод. При использовании -v Nmap предоставит нам более подробную информацию о сканировании, такую как прогресс и дополнительные сведения о цели.
    • -p 7777: Эта опция сообщает Nmap сканировать только порт 7777. Порты - это как двери на компьютере, и разные службы используют разные порты. Указав -p 7777, мы просим Nmap проверить, открыт ли порт 7777 на целевом компьютере.
    • localhost: Это цель, которую мы хотим сканировать. В этом случае localhost относится к вашему собственному компьютеру. Это способ протестировать сетевое сканирование в локальной среде.
  3. После выполнения команды обратите внимание на вывод. Вы должны увидеть что - то похожее на следующее:

    Starting Nmap ( http://nmap.org )
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000040s latency).
    PORT     STATE SERVICE
    7777/tcp open  cbt

    Этот вывод содержит важную информацию. Он сообщает нам, что Nmap начал сканирование, и цель (localhost) работает. Строка 7777/tcp open cbt указывает, что порт 7777 открыт на локальном хосте, и служба, работающая на этом порту, идентифицирована как cbt.

  4. Чтобы сохранить запись этого сканирования для будущего использования, сохраним вывод в файл. Запустите команду еще раз с перенаправлением вывода:

    nmap -v -p 7777 localhost > /home/labex/project/nmap_scan_output.txt

    Эта команда выполняет то же сканирование, что и раньше, но символ > перенаправляет вывод в файл с именем nmap_scan_output.txt в каталоге /home/labex/project. Таким образом, мы можем легко получить доступ к результатам сканирования позже.

  5. Вы можете просмотреть содержимое этого файла с помощью команды cat. Запустите следующую команду:

    cat /home/labex/project/nmap_scan_output.txt

    Команда cat используется для отображения содержимого файла в терминале. Запустив эту команду, вы можете увидеть сохраненный вывод сканирования.

  6. Наконец, проверьте окно терминала с netcat. Вы должны заметить, что Nmap попытался подключиться к службе. Благодаря циклу, который мы настроили в netcat, соединение закрылось и открылось снова, обеспечивая, чтобы служба оставалась доступной для дальнейших сканирований. Это важно, так как позволяет нам продолжать тестирование и исследование сети с помощью Nmap.

Исследование вывода Nmap

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

  1. Сначала нам нужно открыть файл с выводом сканирования Nmap. Этот файл содержит все детали сканирования, которое мы только что выполнили. Чтобы открыть его, мы будем использовать текстовый редактор nano. nano - это простой и удобный в использовании текстовый редактор, который позволяет легко просматривать и редактировать текстовые файлы. Запустите следующую команду в терминале:

    nano /home/labex/project/nmap_scan_output.txt

    Эта команда откроет указанный файл в текстовом редакторе nano.

  2. Как только файл откроется, изучите его содержимое. Вы заметите, что файл разделен на несколько разделов, каждый из которых предоставляет разный тип информации:

    • Отчет о сканировании Nmap: Этот раздел показывает цель сканирования. В нашем случае цель - это localhost, что относится к локальному компьютеру, на котором мы в данный момент работаем.
    • Статус хоста: Эта часть указывает, работает ли хост (целевая система). Также она предоставляет информацию о задержке (латенции) хоста, то есть о времени, которое требуется сигналу, чтобы пройти от нашего компьютера до цели и обратно.
    • Таблица портов: Эта таблица показывает состояние сканируемых портов. Она сообщает нам, открыт ли порт, закрыт или отфильтрован. Кроме того, она показывает службу, которая, по мнению Nmap, может работать на этом порту.
  3. Вы, возможно, заметите, что Nmap идентифицирует службу на порту 7777 как "cbt". Однако важно отметить, что это всего лишь предположение Nmap на основе общих назначений портов. Для нестандартных портов, таких как 7777, такое идентификация может не всегда быть точной.

  4. Когда вы закончите изучать файл, вы можете выйти из текстового редактора nano, нажав Ctrl+X.

  5. Теперь давайте попробуем более комплексное сканирование. Мы будем использовать новую команду, которая включает дополнительные параметры для сбора более подробной информации о цели. Запустите следующую команду в терминале:

    nmap -v -p 7777 -sV localhost > /home/labex/project/nmap_service_scan.txt

    Вот что означает каждая часть команды:

    • -v: Эта опция включает подробный режим, то есть Nmap предоставит более подробную информацию о процессе сканирования.
    • -p 7777: Это указывает, что мы хотим сканировать только порт 7777.
    • -sV: Этот флаг сообщает Nmap проверить открытые порты, чтобы определить службу и ее версию, работающие на этих портах.
    • localhost: Это цель нашего сканирования, то есть локальный компьютер.
    • > /home/labex/project/nmap_service_scan.txt: Это перенаправляет вывод сканирования в указанный файл.
  6. После выполнения сканирования мы хотим просмотреть содержимое этого нового файла. Для этого мы будем использовать команду cat, которая используется для отображения содержимого файла в терминале. Запустите следующую команду:

    cat /home/labex/project/nmap_service_scan.txt

    В выводе вы должны увидеть дополнительную информацию о порте 7777. Даже если Nmap не может определить точную службу, работающую на порту, он все равно предоставит более подробный вывод по сравнению с базовым сканированием.

  7. Во время просмотра вывода обратите внимание на строки, подобные следующей:

    PORT     STATE SERVICE VERSION
    7777/tcp open  cbt?

    Эта строка указывает, что Nmap обнаружил открытый порт 7777. Однако вопросительный знак после "cbt" говорит о том, что Nmap не уверен в классификации службы. Это означает, что Nmap не смог однозначно идентифицировать службу, работающую на этом порту.

Проведение сканирования по всей сети

В реальной ситуации на космопорту Лунарный Шлюз вам нужно будет сканировать несколько хостов в сети. Это важно, так как оно помогает понять, какие устройства подключены к сети и какие порты у них открыты, что является важным аспектом сетевой безопасности. Давайте смоделируем это, сканируя диапазон IP-адресов.

  1. Сначала определим наш IP-адрес. Ваш IP-адрес похож на «домашний адрес» вашей сети, который уникально идентифицирует ваше устройство в сети. Чтобы его найти, выполним следующую команду:

    ip addr show | grep inet

    Часть команды ip addr show выводит список всех сетевых интерфейсов и связанных с ними IP-адресов на вашем устройстве. Символ | представляет собой конвейер (pipe), который передает вывод команды ip addr show в команду grep inet. Команда grep inet затем фильтрует вывод, показывая только строки, содержащие слово "inet", то есть строки с IP-адресами.

    Пример вывода:

    inet 127.0.0.1/8 scope host lo
    inet 172.18.0.3/16 brd 172.18.255.255 scope global eth1

    127.0.0.1/8 - это локальный адрес (loopback address), который для нашей цели не нужен. Поэтому мы можем его игнорировать. 172.18.0.3/16 - это IP-адрес сетевого интерфейса, который нам пригодится. Поэтому мы можем использовать этот IP-адрес в следующих шагах.

  2. Теперь давайте сканируем диапазон IP-адресов вокруг нашего собственного. Сканирование диапазона IP-адресов помогает обнаружить другие устройства в той же сети. Если ваш IP-адрес - 172.18.0.3, вы можете сканировать диапазон 172.18.0.1 - 10. Замените диапазон IP-адресов в следующей команде на тот, который включает ваш IP-адрес:

    sudo nmap -v -p 7777 172.18.0.1-10 > /home/labex/project/network_scan.txt

    Команда sudo используется для выполнения следующей команды с административными привилегиями, которые часто необходимы для сетевого сканирования. nmap - это мощный инструмент для сетевого сканирования. Опция -v означает "подробный" (verbose), то есть она предоставит более подробную информацию о сканировании. Опция -p 7777 указывает, что мы хотим сканировать порт 7777 на целевых IP-адресах. Диапазон 172.18.0.1 - 10 представляет собой диапазон IP-адресов, который мы хотим сканировать. Символ > перенаправляет вывод команды nmap в файл /home/labex/project/network_scan.txt.

    Эта команда сканирует первые 10 IP-адресов в сети 172.18.0.0 на предмет открытого порта 7777.

  3. Просмотрим результаты сканирования:

    cat /home/labex/project/network_scan.txt

    Команда cat используется для отображения содержимого файла. В данном случае она покажет вам результаты сетевого сканирования, которые мы сохранили в файле network_scan.txt. Вы должны увидеть список IP-адресов с информацией о порте 7777 для каждого из них.

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

Резюме

В этом практическом занятии вы изучили базовый синтаксис команд Nmap в контексте обеспечения безопасности сетевой инфраструктуры космопорта Лунарный Шлюз. Сначала вы проверили установку Nmap и настроили тестовую службу с использованием netcat. Затем вы провели базовые сканирования на локальном хосте (localhost), научились интерпретировать вывод Nmap и сохранили его для дальнейшего анализа.

Вы также освоили более сложные техники, такие как определение версии службы, которая позволяет получить подробную информацию о службах на открытых портах. Наконец, вы смоделировали сканирование по всей сети, показав, как Nmap может обследовать несколько хостов. Эти навыки являются фундаментальными для сетевой разведки и аудита безопасности, что является ключевым аспектом выявления рисков в работе космопорта.

Помните, используйте Nmap ответственно и только на авторизованных сетях. Незаконное сканирование может быть воспринято как атака и иметь юридические последствия. По мере дальнейшего обучения задумайтесь о расширении этих базовых техник Nmap и их сочетании с другими инструментами для разработки комплексной стратегии безопасности в сложных средах, таких как космопорт Лунарный Шлюз.