Вопрос или проблема
Я ежедневно запускаю сканирование nmap моих хостов, чтобы проверить открытые порты.
sudo nmap -f -sS -sV --log-errors -append-output -p1-9999 host.com
Но вместе с выводом я получаю длинный список отправленных отпечатков для нераспознанных портов, например:
==============СЛЕДУЮЩИЙ ОТПЕЧАТОК СЕРВИСА (ОТПРАВЛЯТЬ ПО ОДНОМУ)==============
SF-Port4000-TCP:V=5.21%I=7%D=2/9%Time=4F30CAC%P=x86_64-redhat-linux-gnu%r
SF::\r\nERR\x20UNKNOWN_COMMAND\x20Неизвестная\+команда\+сервераCSeq:\r\nERR\x20
-------------------------------------------
Как мне удалить это из отчетов nmap?
Нет способа предотвратить вывод этой информации Nmap, кроме как отправить отпечатки, как предложил The Unix Janitor в своем комментарии. В этом контексте вы можете попробовать использовать последнюю версию Nmap (5.51 или 5.61TEST5); с момента выпуска вашей версии было добавлено более 700 новых отпечатков сервисов.
Чтобы удалить нежелательный вывод из результатов сканирования, попробуйте этот одинарный скрипт Perl:
perl -ne 'if(/NEXT SERVICE FINGERPRINT/){$f=1}else{$f=0 if $f and not /^SF/}print unless $f'
Это удалит отпечатки. Если вы беспокоитесь о разборе вывода, я рекомендую использовать вместо этого XML-вывод, так как структура нормального вывода может меняться от версии к версии.
Вы можете рассмотреть возможность использования формата вывода XML и его разбора (существует библиотека Perl для его разбора, но любой XML-парсер сработает), вместо стандартного полуструктурированного текстового вывода. В стандартном формате вывода мне не известно о способе подавить эти сообщения.
Вот альтернативный подход с использованием sed вместо perl:
sed -e '/^[=]+NEXT SERVICE FINGERPRINT/,/^----/{d;}'
Формат, который выводит nmap, кажется, изменился с момента оригинального поста. Я вижу результаты, которые выглядят так:
| fingerprint-strings:
| GetRequest:
| HTTP/1.0 200 OK
--- (строки убраны для краткости) ----
| <meta charset="UTF-8">
|_ <!-- safari rejects 3rd party cookies when running inside iframe so all client requests must include customer id in
1 сервис не распознан, несмотря на возврат данных. Если вы знаете сервис/версию, пожалуйста, отправьте следующий отпечаток на https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port443-TCP:V=7.94SVN%T=SSL%I=7%D=12/6%Time=6753D374%P=x86_64-pc-linux-
SF:gnu%r(GetRequest,1000,"HTTP/1\.0\x20200\x20OK\r\nAccept-Ranges:\x20byte
---- (строки убраны для краткости) ----
SF:0client\x20requests\x20must\x20include\x20customer\x20id\x20in");
Вот sed, который убирает это:
sed -e '/^| fingerprint-strings:/,/^|_/{d;}' -e '/^SF[-:]/{d;}' -e '/please submit the following fingerprint/{d;}'
Вот как работает этот последний sed, рассматривая каждое выражение (-e
):
/a/,/b/
сопоставляет все строки между и включая те, которые соответствуют “a” и “b”. А{d;}
является командой для удаления совпадающей строки. (Не все Unix-системы требуют;
в{d;}
, но некоторые требуют, поэтому я использую его. Я не думаю, что это нарушает какие-либо версии unix, но если это не сработает, попробуйте удалить его.) Так что мы удаляем все между строками, которые начинаются с| fingerprint-strings:
и|_
(символ каретки,^
, обозначает начало строки.)/^SF[-:]/
сопоставляет любую строку, которая начинается с SF и либо – либо : и снова мы используем {d;} для удаления- Последнее выражение похоже на #2, но мы не требуем, чтобы строка была в начале строки, которую мы хотим удалить.
Ответ или решение
Удаление сообщений о новых отпечатках из отчетов Nmap
Проведение ежедневного сканирования хостов с использованием Nmap – это важный шаг в поддержании безопасности сети. Однако многие пользователи сталкиваются с тем, что в отчетах появляется длинный список сообщений об отпечатках для непризнанных портов. Это может затруднить анализ результатов сканирования и привести к путанице. В данной статье мы рассмотрим, как эффективно удалить эти нежелательные сообщения из отчетов Nmap.
Проблема
При выполнении команды, подобной следующей:
sudo nmap -f -sS -sV --log-errors -append-output -p1-9999 host.com
пользователь получает вывод, который включает не только информацию о состоянии портов, но и большое количество сообщений о новых отпечатках, например:
==============NEXT SERVICE FINGERPRINT (SUBMIT INDIVIDUALLY==============
SF-Port4000-TCP:V=5.21%I=7%D=2/9%Time=4F30CAC%P=x86_64-redhat-linux-gnu%r...
Это может быть утомительным, так как лишние данные засоряют отчет, и их трудно анализировать.
Решения
-
Обновление Nmap
Одним из простейших решений является обновление до последней версии Nmap. В новых версиях добавляется множество отпечатков сервисов, что может снизить количество сообщений о непризнанных портах. Убедитесь, что вы используете актуальную версию Nmap, так как поддержка новых протоколов и сервисов может существенно уменьшить количество незнакомых отпечатков. -
Использование Perl для фильтрации
Вы можете использовать однострочное решение на Perl для удаления нежелательных сообщений. Запустите следующую команду в терминале:perl -ne 'if(/NEXT SERVICE FINGERPRINT/){$f=1}else{$f=0 if $f and not /^SF/}print unless $f'
Это решение будет фильтровать вывод, исключая все строки, которые соответствуют отпечаткам.
-
Использование sed для удаления
Альтернативным методом является использование утилитыsed
. Вот команда, которая позволит удалить все нежелательные сообщения:sed -e '/^[=]+NEXT SERVICE FINGERPRINT/,/^----/{d;}'
Или, если вам нужно более целенаправленное удаление, используйте вариант с несколькими выражениями:
sed -e '/^| fingerprint-strings:/,/^|_/{d;}' -e '/^SF[-:]/{d;}' -e '/please submit the following fingerprint/{d;}'
Эта команда удалит все строки, находящиеся между и включая указанные ключевые слова, а также строки, начинающиеся с
SF
и те, которые содержат предложение о регистрации отпечатка.
Рекомендации по дальнейшему анализу
Для более точного и структурированного анализа результатов сканирования Nmap, рекомендуется использовать вывод в формате XML. Это позволит вам избежать проблем с изменениями в формате текстового вывода при обновлении Nmap. XML-вывод легче парсить, и вы можете использовать различные библиотеки для обработки XML:
sudo nmap -f -sS -sV -oX output.xml -p1-9999 host.com
Вывод в XML-формате делает отчеты более управляемыми и позволяет интегрировать их в другие системы или инструменты анализа.
Заключение
Удаление нежелательных сообщений о новых отпечатках из отчетов Nmap возможно с помощью нескольких методов, таких как обновление Nmap, использование Perl или sed
. Выбор подходящего способа зависит от ваших личных предпочтений и целей аналитики. Также рекомендуется использовать формат XML для полноценного и структурированного анализа результатов, что повысит вашу продуктивность и упростит управление данными.