Исследование различных форматов вывода Nmap
На этом этапе мы узнаем о различных форматах вывода, которые предоставляет Nmap. Форматы вывода являются важными в области кибербезопасности, так как они позволяют представлять результаты сканирования различными способами в зависимости от наших потребностей. Например, некоторые форматы легко читаются человеком, а другие предназначены для обработки машинами, что полезно при интеграции с другими инструментами.
Обзор форматов вывода Nmap
Nmap поддерживает несколько форматов вывода, каждый из которых имеет свои уникальные характеристики и области применения:
- Обычный вывод (по умолчанию): Это человекочитаемый формат. Он представляет результаты сканирования так, чтобы их было легко понять сразу, что делает его идеальным для быстрого ручного анализа.
- XML - вывод (
-oX
): XML расшифровывается как Extensible Markup Language (расширяемый язык разметки). Это структурированный формат, то есть данные организованы иерархически. Это делает его легким для обработки программами и скриптами и часто используется при интеграции Nmap с другими инструментами безопасности.
- Grep - совместимый вывод (
-oG
): Это строковый формат. Он предназначен для простой обработки с использованием Unix - инструментов, таких как grep, awk и cut. Этот формат полезен, когда вы хотите быстро извлечь определенную информацию из результатов сканирования.
- Output для новичков - скриптеров (
-oS
): Этот формат похож на обычный вывод, но включает ASCII - арты. Однако он редко используется в практических сценариях.
- Все форматы (
-oA
): Эта опция позволяет сохранить результаты сканирования одновременно в обычном, XML и grep - совместимом форматах. Это удобный способ иметь все виды выводов сразу.
Попробуем изучить эти форматы, сканируя снова ваш локальный веб - сервер.
Формат XML - вывода
XML, или Extensible Markup Language (расширяемый язык разметки), представляет собой структурированный формат, который широко используется для хранения и обмена данными. Его иерархическая структура позволяет программам легко обрабатывать данные, поэтому он часто применяется при интеграции с другими инструментами безопасности.
-
Запустите сканирование с использованием Nmap и сохраните вывод в формате XML:
nmap -p 8080 localhost -oX /home/labex/project/scan_results.xml
В этой команде -p 8080
указывает, что мы сканируем порт 8080, localhost
- это цель сканирования (наш локальный компьютер), а -oX
сообщает Nmap сохранить вывод в формате XML по указанному пути к файлу.
-
Просмотрите XML - вывод:
cat /home/labex/project/scan_results.xml
Команда cat
используется для отображения содержимого файла. При выполнении этой команды вы увидите вывод в формате XML, который будет выглядеть приблизительно так (сокращено):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE nmaprun>
<nmaprun scanner="nmap" args="nmap -p 8080 localhost -oX /home/labex/project/scan_results.xml" ...>
<scaninfo type="connect" protocol="tcp" .../>
<verbose level="0"/>
<debugging level="0"/>
<host>
<status state="up" reason="conn - refused" reason_ttl="0"/>
<address addr="127.0.0.1" addrtype="ipv4"/>
<hostnames>
<hostname name="localhost" type="user"/>
<hostname name="localhost" type="PTR"/>
</hostnames>
<ports>
<port protocol="tcp" portid="8080">
<state state="open" reason="syn - ack" reason_ttl="0"/>
<service name="http - proxy" method="table" conf="3"/>
</port>
</ports>
<times srtt="97" rttvar="5000" to="100000"/>
</host>
<runstats>...</runstats>
</nmaprun>
-
Формат XML содержит подробную информацию, организованную иерархически. Попробуем извлечь информацию о конкретном порте:
grep -A5 "<port " /home/labex/project/scan_results.xml > /home/labex/project/port_details.txt
Команда grep
используется для поиска определенного шаблона в файле. -A5
означает отображать 5 строк после строки, которая соответствует шаблону. Мы ищем строки, содержащие <port
в XML - файле, и сохраняем результаты в новый файл с именем port_details.txt
.
-
Просмотрите извлеченные детали о порте:
cat /home/labex/project/port_details.txt
Выполнение этой команды покажет вам раздел с информацией о порте из XML - файла.
Grep - совместимый формат вывода
Grep - совместимый вывод специально разработан для простой обработки с использованием таких инструментов, как grep, awk и cut. Эти Unix - инструменты очень мощные для обработки текста и могут помочь нам быстро извлечь нужную информацию из результатов сканирования.
-
Запустите сканирование с использованием Nmap и сохраните вывод в grep - совместимом формате:
nmap -p 8080 localhost -oG /home/labex/project/scan_results.grep
Здесь -oG
сообщает Nmap сохранить вывод в grep - совместимом формате в указанный файл.
-
Просмотрите grep - совместимый вывод:
cat /home/labex/project/scan_results.grep
Вывод будет похож на следующий:
## Nmap 7.80 scan initiated Wed Nov 8 12:40:00 2023 as: nmap -p 8080 localhost -oG /home/labex/project/scan_results.grep
Host: 127.0.0.1 (localhost) Status: Up
Host: 127.0.0.1 (localhost) Ports: 8080/open/tcp//http - proxy///
## Nmap done at Wed Nov 8 12:40:00 2023 -- 1 IP address (1 host up) scanned in 0.05 seconds
-
Grep - совместимый формат помещает всю информацию о хосте в одну строку, что делает его удобным для использования с инструментами обработки текста. Например, вы можете извлечь только строку, содержащую информацию о портах:
grep "Ports:" /home/labex/project/scan_results.grep > /home/labex/project/ports_info.txt
Эта команда ищет строки, содержащие слово "Ports:", в файле с grep - совместимым выводом и сохраняет совпадающую строку в новый файл с именем ports_info.txt
.
-
Просмотрите извлеченную информацию о портах:
cat /home/labex/project/ports_info.txt
Сохранение в нескольких форматах одновременно
Nmap предоставляет удобную опцию сохранения вывода сразу в нескольких форматах с использованием опции -oA
. Это может сэкономить ваше время, если вам нужны разные типы выводов для разных целей.
-
Запустите сканирование с использованием Nmap и сохраните вывод во всех форматах:
nmap -p 8080 localhost -oA /home/labex/project/all_formats
Эта команда сканирует порт 8080 на локальном компьютере и сохраняет результаты в обычном, XML и grep - совместимом форматах.
-
Проверьте созданные файлы:
ls -la /home/labex/project/all_formats.*
Команда ls -la
выводит список всех файлов в каталоге с подробной информацией. При выполнении этой команды вы должны увидеть три файла:
all_formats.nmap
(обычный вывод)
all_formats.xml
(XML - вывод)
all_formats.gnmap
(grep - совместимый вывод)
Теперь вы понимаете различные форматы вывода, которые предоставляет Nmap, и как их использовать. Каждый формат имеет свои преимущества:
- Обычный вывод легко читается человеком.
- XML - вывод структурирован для обработки машинами и интеграции с другими инструментами.
- Grep - совместимый вывод предназначен для быстрого анализа с использованием Unix - инструментов обработки текста.
На следующем этапе вы узнаете, как более детально анализировать эти выводы.