Как проверить (сканировать) на наличие открытых портов в Linux
Если вы устраняете проблемы с подключением к сети или настраиваете брандмауэр, первое, что нужно проверить, — это то, какие порты действительно открыты в вашей системе.
В этой статье описывается несколько подходов к выяснению того, какие порты открыты извне в вашей системе Linux.
Содержание
Что такое открытый порт
Порт прослушивания — это сетевой порт, который прослушивает приложение. Вы можете получить список прослушивающих портов в вашей системе, запросив сетевой стек с помощью таких команд, как ss
, netstat
или lsof
. Каждый порт прослушивания может быть открыт или закрыт (отфильтрован) с помощью брандмауэра.
В общих чертах, открытый порт — это сетевой порт, который принимает входящие пакеты из удаленных мест.
Например, если вы используете веб-сервер, который прослушивает порты 80
и 443
и эти порты открыты на вашем брандмауэре, любой (кроме заблокированных IP-адресов) сможет получить доступ к веб-сайтам, размещенным на вашем веб-сервере, с помощью своего браузера. В этом случае и 80
и 443
являются открытыми портами.
Открытые порты могут представлять угрозу безопасности, поскольку каждый открытый порт может быть использован злоумышленниками для использования уязвимости или выполнения любого другого типа атаки. Вы должны открыть только те порты, которые необходимы для работы вашего приложения, и закрыть все остальные порты.
Проверьте открытые порты с помощью
nmap
Nmap — это мощный инструмент сетевого сканирования, который может сканировать отдельные хосты и большие сети. Он в основном используется для аудита безопасности и тестирования на проникновение.
Если возможно, nmap
должен стать вашим первым инструментом для сканирования портов. Помимо сканирования портов, nmap
также может определять Mac-адрес, тип ОС , версии ядра и многое другое.
Следующая команда, выдаваемая с консоли, определяет, какие порты прослушивают TCP-соединения из сети:
sudo nmap -sT -p- 10. 10.8.8
-sT
указывает nmap
сканировать TCP-порты, а -p-
сканировать все 65535 портов. Если -p-
не используется, nmap
будет сканировать только 1000 самых популярных портов.
Starting Nmap 7.60 ( https://nmap.org ) at 2019-07-09 23:10 CEST Nmap scan report for 10.10.8.8 Host is up (0.0012s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http MAC Address: 08:00:27:05:49:23 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds
Приведенные выше выходные данные показывают, что в целевой системе открыты только порты 22
, 80
и 8069
.
Для поиска портов UDP используйте -sU
вместо -sT
:
sudo nmap -sU -p- 10.10.8.8
Для получения дополнительной информации посетите страницу руководства nmap и прочтите обо всех других мощных возможностях этого инструмента.
Проверьте открытые порты с помощью
netcat
Netcat (или nc
) — это инструмент командной строки, который может читать и записывать данные через сетевые соединения, используя протоколы TCP или UDP.
С помощью netcat
вы можете сканировать отдельный порт или диапазон портов.
Например, для поиска открытых TCP-портов на удаленном компьютере с IP-адресом 10.10.8.8
в диапазоне 20-80
вы должны использовать следующую команду:
nc -z -v 10.10.8.8 20-80
Параметр -z
указывает nc
сканировать только открытые порты без отправки каких-либо данных, а параметр -v
предназначен для получения более подробной информации.
Результат будет выглядеть примерно так:
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port [tcp/ssh] succeeded! . .. Connection to 10.10.8.8 80 port [tcp/http] succeeded!
Если вы хотите, чтобы на экране отображались только строки с открытыми портами, отфильтруйте результаты с помощью команды
.
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port [tcp/ssh] succeeded! Connection to 10.10.8.8 80 port [tcp/http] succeeded!
Чтобы сканировать UDP-порты, передайте параметр -u
команде nc
:
nc -z -v -u 10.10.8.8 20-80 2>&1 | grep succeededКонструкция
2>&1
перенаправляет стандартную ошибку на стандартный вывод.Проверьте открытые порты с помощью псевдоустройства Bash
Другой способ проверить, открыт или закрыт определенный порт, — использовать оболочку Bash /dev/tcp/..
или /dev/udp/..
псевдоустройство.
При выполнении команды на псевдоустройстве /dev/$PROTOCOL/$HOST/$IP
Bash откроет TCP или UDP-соединение с указанным хостом на указанном порту.
Следующий оператор if..else проверяет, открыт ли порт 443
на kernel.org
:
if timeout 5 bash -c '</dev/tcp/kernel.org/443 &>/dev/null' then echo "Port is open" else echo "Port is closed" fi
Port is open
Как работает приведенный выше код?
При подключении к порту с помощью псевдоустройства таймаут по умолчанию огромен, поэтому мы используем команду timeout
чтобы завершить тестовую команду через 5 секунд. Если соединение установлено с портом 443
kernel.org
тестовая команда вернет true.
Чтобы проверить диапазон портов, используйте цикл for :
for PORT in {20..80}; do timeout 1 bash -c "</dev/tcp/10.10.8.8/$PORT &>/dev/null" && echo "port $PORT is open" done
Результат будет выглядеть примерно так:
port 22 is open port 80 is open
Выводы
Мы показали вам несколько инструментов, которые вы можете использовать для поиска открытых портов. Существуют также другие утилиты и методы для проверки открытых портов, например, вы можете использовать модуль socket
Python, curl
, telnet
или wget
.
Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.
Как использовать Nmap для сканирования портов
Содержание
- Требование
- Что такое сетевой порт
- Общие порты Linux
- Nmap Сканирование портов
- Nmap Сканирование указанного IP или хоста
- Nmap Сканирование нескольких IP-адресов в Nmap
- Nmap Сканирование диапазона IP
- Ping-сканирование IP-адресов в подсети в Nmap Linux
- Nmap сканирование IP-адресов из текстового файла
- Сканирование определенного порта на данном IP-адресе
- Сканирование диапазона портов на данном IP-адресе
- Сканирование портов для наиболее распространенных портов
- Сканирование всех портов на данном IP-адресе
- Сканирование TCP-портов
- Сканирование портов UDP
- Проверка операционной системы хоста
- Сканирование самых популярных портов
- Быстрое сканирование с помощью Nmap
- Скриптовый движок Nmap
- Заключение
Сеть является одним из самых сложных и чувствительных компонентов ИТ-инфраструктуры. Системные администраторы должны понимать различные уровни, интерфейсы, протоколы, инструменты и порты, чтобы эффективно управлять сетевым взаимодействием. Для обеспечения безопасной связи необходимо использовать правильные порты.
Nmap — это инструмент командной строки с открытым исходным кодом для сканирования портов, аудита сетевой безопасности, обнаружения хостов и служб и получения списка открытых портов. Он был запущен как инструмент Linux, а затем включен в Windows, macOS и BSD.
В этой статье мы расскажем, как использовать Nmap для сканирования открытых портов.
Требование
- Рабочая операционная система Linux.
- Терминальный доступ.
- Sudo или привилегии пользователя root.
Что такое сетевой порт
Сетевой порт — это логическая конечная точка для сетевого взаимодействия. Также это нумерованный адрес для управления сетевым трафиком. Различные компоненты или службы используют разные порты, и наиболее часто используемыми сетевыми портами являются порты TCP / IP и UDP. Вы можете запускать несколько служб на одном IP-адресе, но каждой из этих служб нужен отдельный порт для прослушивания запросов и связи.
Общие порты Linux
При установке операционной системы Linux и настройке различных служб некоторые порты автоматически назначаются этим службам. Номера портов варьируются от 1 до 65536. Порты ниже 1024 обычно зарезервированы для важных и критических сетевых функций и служб.
В следующей таблице перечислены некоторые из наиболее распространенных портов Linux:
Номер порта | Использование |
---|---|
20 | Для данных FTP. |
21 | Для управления FTP. |
22 | Для SSH. |
25 | Для SMTP для отправки электронной почты. |
53 | Для DNS. |
80 | Для веб-сервера HTTP. |
110 | Для POP3 для получения электронной почты. |
123 | Для NTP. |
143 | Для электронной почты IMAP. |
443 | Для защищенного веб-сервера HTTPS. |
465 | Для SMTP для отправки защищенных писем. |
631 | Для сервера печати CUPS. |
993 | Для безопасной электронной почты IMPAS. |
В данный момент времени компьютер Linux имеет несколько открытых портов, на которых службы прослушивают соединения.
Вы можете использовать любую из следующих команд для отображения списка открытых портов в Linux:
sudo lsof -i -P -n | grep LISTEN
sudo netstat -tulpn | grep LISTEN
sudo ss -tulpn | grep LISTEN
Nmap Сканирование портов
Nmap — это утилита командной строки Linux, которая используется для сканирования и сопоставления портов. Сканер Nmap может отображать множество сведений о хосте Linux.
Nmap или Network Mapper Tool не устанавливается по умолчанию в большинстве дистрибутивов Linux. Установка Nmap с помощью Distro specific package Manager очень проста и понятна.
Чтобы сэкономить время, Nmap по умолчанию сканирует только самые популярные 1000 портов. Для всех портов нам нужно добавить опцию о который мы узнаем в следующем разделе.
В следующих примерах команд показаны некоторые из наиболее часто используемых команд для сканирования портов с помощью команд nmap:
Nmap Сканирование указанного IP или хоста
Введите nmap, а затем IP для сканирования определенного IP:
Сканирование указанного IP или хоста
sudo nmap 192.168.0.1
В отчете о сканировании Nmap отображаются состояние хоста и задержка.
Аналогично этому, вы можете указать имя хоста для сканирования хоста:
sudo nmap example. com
Nmap Сканирование нескольких IP-адресов в Nmap
Для сканирования нескольких целей после команды nmap, введите список IP-адресов, разделенных пробелом:
sudo nmap 192.168.0.1 192.168.0.2 192.168.0.3
Отчет о сканировании nmap отображается для нескольких целей.
Сканирование нескольких IP-адресов в NmapNmap Сканирование диапазона IP
Вы можете указать диапазон IP-адресов после команды nmap вместо одного IP-адреса или нескольких целей для сканирования диапазона IP-адресов введите:
sudo nmap 192.168.200.1-10
В этом случае IP-адреса от 192.168.200.1 до 190.168.200.10 сканируются и создается отчет.
Ping-сканирование IP-адресов в подсети в Nmap Linux
Вы можете запустить nmap в подсети, чтобы выполнить сканирование ping, чтобы получить список живых хостов в подсети:
Ping-сканирование IP-адресов в подсети с помощью Nmap
sudo nmap 192. 168.200.1/24
Nmap сканирование IP-адресов из текстового файла
Вы можете создать список IP-адресов в текстовом файле и указать файл для сканирования целевых IP-адресов из файла:
sudo nmap -iL users.txt
Сканирование определенного порта на данном IP-адресе
Используйте параметр -p, за которым следует номер порта, для сканирования определенного порта или нескольких портов (через запятую).
В следующем примере nmap сканирует порт 22 на хосте 192.168.200.1
sudo nmap -p 22 192.168.200.1
Для сканирования нескольких портов введите:
sudo nmap -p 80,22 192.168.200.1
Сканирование диапазона портов на данном IP-адресе
Укажите диапазон портов, за которым следует IP-адрес. Для сканирования заданного диапазона портов на указанном IP-адресе хоста используйте команду:
sudo nmap -p 1-100 192. 168.200.2
Сканирование портов для наиболее распространенных портов
Используйте опцию -F с nmap, чтобы перечислить общие порты на указанном IP-адресе хоста:
sudo nmap -F 192.168.200.1
Сканирование всех портов на данном IP-адресе
Используйте опцию -p-
с nmap, чтобы перечислить все порты на данном IP-адресе хоста:
sudo nmap -p- 192.168.200.1
Также вы можете использовать опцию -p "*"
для сканирования всех портов TCP и UDP 65535.
sudo nmap -p "*" 192.168.0.100
Сканирование TCP-портов
Используйте опцию -sT для выполнения сканирования TCP-портов на IP-адресе хоста:
sudo nmap -sT 192.168.200.1
Сканирование портов UDP
Nmap может работать с портами TCP и с портами UDP. Используйте опцию -sU для сканирования портов UDP на IP-адресе хоста:
sudo nmap -sU 192.168.200.1
Проверка операционной системы хоста
Используйте опцию -O для идентификации операционной системы указанного IP-адреса хоста.
Следующая команда nmap дает вам информацию об операционных системах на компьютере с IP-адресом 192.168.10.1.
Проверка операционной системы хоста с помощью сканера Nmap
sudo nmap -O 192.168.10.1
Сканирование самых популярных портов
Используйте опцию —top-ports для сканирования объекта на наличие открытых портов. Вы можете указать количество портов, которые вы хотите сканировать.
Следующий пример для сканирования 100 лучших (из 65 536 возможных) открытых портов для протокола TCP для целевого объекта:
sudo nmap --top-ports 100 target
Чтобы добавить протокол UDP, введите:
sudo nmap -sTU --top-ports
Быстрое сканирование с помощью Nmap
Вы можете использовать шаблоны времени, чтобы указать Nmap выполнить быстрое сканирование. Nmap поддерживает пять уровней шаблонов времени — T0 (параноидальный), T1 (подлый), T2 (вежливый), T3 (нормальный), T4 (агрессивный) и T5 (безумный).
В следующем примере выполняется безумно быстрое сканирование портов Nmap:
sudo nmap -T5 example.com
Следующий вывод nmap показывает разницу во времени в двух интерфейсах командной строки.
Быстрое сканирование с помощью NmapСкриптовый движок Nmap
Вы можете использовать механизм сценариев nmap для выполнения сканирования портов с помощью заранее определенных сценариев или создавать собственные сценарии. Это помогает системным администраторам автоматизировать сканирование портов с помощью nmap.
В следующем примере показано, как использовать скрипт vuln для проверки уязвимости системы:
Скриптовый движок Nmap
sudo nmap -Pn --script vuln 127.0.0.1
Заключение
В этой статье мы показали, как использовать Nmap для сканирования портов на вашем компьютере Linux. Примеры в этом руководстве охватывают наиболее распространенные случаи использования Nmap и помогут вам лучше понять параметры Nmap. Сканирование Nmap помогает системным администраторам оценивать и отлаживать ошибки безопасности.
Как использовать Nmap для сканирования открытых портов
Традиционно вы можете защитить устройства в вашей локальной сети с помощью брандмауэра. Но как узнать, работает ли ваш брандмауэр? Или если он даже работает так, как вы его настроили?
Брандмауэры не защищают от всех атак, и некоторые злоумышленники нацелены на брандмауэры, проделывая дыры, чтобы облегчить свои атаки. Вот здесь и приходит на помощь сканирование.
Сканирование с помощью Nmap — это простой способ заглянуть в вашу сеть и увидеть, какие службы предоставляет этот сервер или рабочий стол.
В этой статье мы расскажем вам, как использовать Nmap для поиска уязвимостей в вашей сети.
Что такое Nmap?
Nmap — один из самых популярных и универсальных сетевых сканеров как для злоумышленников, так и для защитников. Первоначально он начинался как просто инструмент для просмотра открытых портов TCP и UDP, но превратился в сетевой сканер хлеба с маслом для ИТ-специалистов и злоумышленников.
Впервые Nmap был выпущен как раз для операционной системы unix в 1997 году. В 2000 году была добавлена версия для Windows. С этого момента проект с открытым исходным кодом постоянно улучшался и дополнялся сообществом безопасности.
Теперь Nmap может сканировать почти все, если он работает в сети, и даже имеет встроенный язык сценариев. Скрипты Nmap, также известные как скрипты NSE, похожи на усовершенствованную версию Nmap для покемонов. Нам они не понадобятся для базового сканирования, но по мере развития ваших потребностей в сканировании они отлично подходят для автоматизации и поиска сложных или специфических уязвимостей в вашей среде.
Порты, объяснение
Прежде чем мы двинемся дальше, важно обсудить очень важный компонент сетевого сканирования: порты!
Порты — это, по сути, дыры, которые направляют различные виды данных и веб-трафика в сети. Если IP-адрес похож на физический адрес вашего дома, то порты — это различные двери и окна, через которые вещи входят и выходят.
Веб-трафик в Интернете в вашем браузере работает даже на портах. Например, если вы введете https://blumira.com в строку URL-адреса вашего браузера и нажмете Enter, браузер фактически вставит порт прямо в конец этого URL-адреса. Это связано с тем, что HTTPS и многие другие обычно работают на так называемом стандартном порту. В этом примере ваш браузер фактически запрашивает https://blumira.com:443. :443 относится к входной двери HTTPS и сообщает трафику, куда идти, как только он достигнет вашего дома. Это также верно для IP-адресов; 8.8.8.8:53 относится к порту DNS на основном DNS-сервере Google.
Статус порта — открытый, закрытый или отфильтрованный — относится к трафику, который принимает порт, подобно тому, как охрана стоит у входной двери. Либо никто не входит, и порт закрыт, либо порт открыт, и все входят, либо он фильтруется, и только определенные люди допускаются. Фильтрация обычно является работой сетевого или программного брандмауэра и может выполняться в сети. или само устройство.
Службы, работающие на этих портах, обычно относятся к одному из двух типов: UDP или TCP. В этой статье мы просто отметим главное отличие: UDP обычно относится к односторонней связи (отправка письма), а TCP — двусторонней связи (использование телефона). Это важно при сканировании, потому что Nmap будет генерировать очень разные результаты и параметры для TCP и UDP.
Теперь, когда мы знаем немного больше о портах, не было бы здорово иметь их список и то, что они делают? Nmap фактически ведет список и регулярно его обновляет. Однако номера портов в основном произвольные и не привязаны конкретно к определенной службе. Так, например, HTTPS может работать на порту 8443 вместо 443 или HTTP на порту 8080. Номер порта обычно остается на усмотрение операционной системы и программного обеспечения, прослушивающего этот порт. Nmap делает все возможное, чтобы найти сервис и порт.
Важно понимать разницу между локальной сетью и общедоступными сетями. Некоторые сервисы имеют совершенно различный контекст безопасности и риска при публичном и локальном доступе.
Вот сервисы и их порты по умолчанию, которые могут быть потенциально опасны при подключении к Интернету:
- SSH | Порт по умолчанию: 22 .
- РДП | Порт по умолчанию: 3389; иногда 80 и 443 для аутентификации
- DNS | Порт по умолчанию: 53
- SMB | Порт по умолчанию: 139(Старая версия), 445 (более новая версия на базе TCP)
- FTP | Порт по умолчанию: 21
- HTTP | Порт по умолчанию: 80 или 8080
- HTTPS | Порт по умолчанию: 443 или 8443
- Администрирование веб-приложений | Порт по умолчанию: 8080, 8443, .
Вот диапазоны портов, о которых следует знать:
- 1-1023 — это «хорошо известные» порты, о которых мы упоминали ранее.
- 1024-49152 называются зарегистрированными портами. Эти порты имеют различную надежность при попытке выяснить, какая служба работает на них.
- 49152–65535 известны как динамические порты, поэтому они обычно рандомизируются в этом диапазоне. Bittorrent — один из примеров, в котором используется этот диапазон.
В качестве отправной точки вы также можете использовать список общих номеров портов из Википедии для отображения сервисов.
Как установить Nmap
Вы можете установить nmap на множество различных типов устройств, включая ноутбук, настольный компьютер, сервер или даже Raspberry Pi.
- Сначала перейдите на https://nmap.org/download и следуйте инструкциям, чтобы загрузить последнюю стабильную версию для вашей операционной системы. Если вам интересно, почему сайт выглядит таким устаревшим, это потому, что он довольно старый, но все еще остается сильным по сей день. Если вы ищете настольную версию с графическим интерфейсом, она называется Zenmap и предварительно выбрана в качестве опции с установщиком Windows.
- Подтвердите работу Nmap, запустив предпочитаемый инструмент командной строки, такой как CMD или Terminal, и введя
nmap -V
, чтобы распечатать установленную версию. Кроме того, вы можете запустить Zenmap из папки ваших приложений или папки с программными файлами. - Если у вас есть проблемы или если при вводе nmap возвращается ошибка, что команда не найдена, убедитесь, что вы не установили ее в другом месте. Если это так, просто измените каталоги в командной строке на это место и повторите попытку.
Если вы используете решение EDR на том же устройстве, оно может генерировать некоторые предупреждения после установки Nmap или при начале сканирования. Это связано с тем, что злоумышленники также используют Nmap. Вы можете просто подтвердить оповещения или пометить их как устраненные. Если вы выполняете обычное сканирование с устройства или автоматизируете сканирование, вы можете создать правило ложного срабатывания только для этого устройства, если это возможно.
Начало работы с Nmap
Теперь, когда Nmap установлен, приступим к сканированию!
Сначала запустите командную строку или графический интерфейс. Ввод scanme.nmap.org
выполнит стандартное сканирование открытых портов в доменном имени scanme.nmap.org. Nmap предоставляет этот сервер для тестирования различных сканирований.
Если вы хотите сканировать что-то еще, введите DNS-имя или IP-адрес устройства. Позже вы можете ввести целую подсеть, что переводится как «сканировать все в этом диапазоне сети». Вы даже можете сканировать устройство, на котором установлен Nmap, изнутри. Для этого введите имя хоста, localhost или IP 127.0.0.1 в командную строку Nmap.
Выход за рамки сканирования по умолчанию
Сканирование по умолчанию не является идеальным способом обнаружения злоумышленника, который ковыряется в вашей сети. Цель состоит в том, чтобы найти и устранить слабые места или уязвимости в вашей сети до того, как их обнаружит злоумышленник. Самая большая разница между обычным сканированием и тем, как сканирует большинство злоумышленников, заключается в пингах.
Когда мы запускаем базовый Nmap без параметров, Nmap сначала отправляет ping на устройство, чтобы определить, находится ли оно в сети, прежде чем выполнять трудоемкое и не очень незаметное сканирование. Однако большинство современных брандмауэров — даже встроенных в настольные компьютеры — имеют функцию, которая игнорирует случайные пинги с других устройств. Это отключит любые результаты для большей части устройств в вашей сети.
Злоумышленники могут обойти это с помощью метода, называемого синхронным сканированием. Сканирование Syn обходит этот пинг и просто обращается непосредственно к каждому порту и спрашивает, открыт ли он. Злоумышленник отправляет пакет синхронизации с запросом на подключение к любому порту, который ему нужен.
Из-за того, как работают протоколы TCP, устройство должно отвечать пакетом синхронизации/подтверждения, который сообщает сканеру, могут ли они подключиться. Если устройство было заблокировано или если порт был закрыт, целевой хост отправляет пакет rst/ack, который в основном означает «уходи». Я передумал о подключении».
Злоумышленник, использующий синхронное сканирование, похож на грабителя, который ходит по окрестностям и незаметно проверяет каждую дверь и окно, чтобы увидеть, кто был дома и не открыты ли какие-либо из них. Подход с пингом, с другой стороны, подобен звонку в каждую дверь и устраиванию сцены.
Как выполнять сканирование Syn в Nmap
Чтобы получить максимальную отдачу от Nmap с точки зрения безопасности, крайне важно использовать флаги. Думайте о флагах как о настройках или командах, сообщающих Nmap, как работать. Флаги обычно начинаются с — или -. Nmap имеет две разные категории флагов, типы сканирования и параметры. Обычно это отформатировано как nmap [-тип] [-опция] [цель]
.
Для выполнения определенных сканирований потребуются права администратора, поэтому в Windows лучше начать с прав администратора, а в MacOS или Linux — с помощью sudo. Чтобы выполнить базовое сканирование синхронизации, это будет nmap -sS scanme.nmap
или sudo nmap -sS scanme.nmap
. Вы даже можете комбинировать большинство флагов, но флаги типа сканирования позволяют смешивать только типы TCP и UDP. . Это будет что-то вроде nmap -sS -SU scanme.nmap.org
Допустим, вы хотите просто проверить, открыт ли SSH (порт 22) на вашем брандмауэре. Добавьте -p (для порта) и укажите номер порта для проверки: nmap -sS -p 22 scanme.nmap.org
Флаг -Pn для сканирования одного устройства прост и выполняет большую часть люди нуждаются. Он в основном выполняет сканирование в режиме по умолчанию, но не выполняет эхо-запросы.
Как сканировать как злоумышленник
Сначала определите подсети вашей сети и устройство, с которого вы сканируете. Вы должны либо быть в этой сети, либо иметь возможность связаться с ней. Если базовая внутренняя сеть имеет адрес устройства 192. 168.0.1., вы можете просканировать всю подсеть, добавив подсеть и маску в качестве целевой маски: -
sS 192.168.1.0/24.
Чтобы просканировать несколько подсетей, просто добавьте их вместе: nmap -sS 192.168.1.0/24 10.1.0.0/24
Чтобы просканировать все пространство 192.0.0.0 или 10.0.0.0, просто настройте маску подсети как необходимо (например, /16 пр /8). Это займет немного больше времени, потому что мы проверяем все возможные адреса.
Если вы хотите автоматизировать это, важно понимать различные выходные данные Nmap. Два основных вывода представляют собой формат grepable с флагом -oG или XML с флагом -oX. Оба варианта впоследствии потребуют имени файла и пути; например:
nmap scanme.nmap.org -oG /path/to/file.txt
или nmap scanme.nmap.org -oX /path/to/file.xml
Однако, если вы пропустите это ( nmap
scanme.nmap.org
-oX
) Nmap просто создаст файл с именем хоста в каталоге, в котором вы работаете. тот же файл и добавить результаты в конец, как файл журнала.
Итак, если мы сложим все это вместе, это может выглядеть так.
nmap -sS -oG --append-output scan.txt 192.168.0.0/16
Не забудьте добавить sudo или запустить от имени администратора.
Вы также можете идентифицировать хостовые операционные системы в Nmap, добавив флаг -O. Однако это не на 100% точно и в основном полезно для определения того, с каким устройством связан этот случайный IP-адрес. Он также не идеален для массового сканирования, так как будет немного шумным и значительно увеличит время сканирования. Вам лучше узнать об открытых портах, а затем выполнить дополнительное сканирование, чтобы определить ОС.
Сканирование с повышением уровня с помощью сценариев NSE
Поэкспериментировав с синхронным сканированием, вы можете использовать сценарии NSE для поиска уязвимостей в вашей сети. Скрипты NSE имеют несколько вариантов использования.
Если вы нашли хост с открытыми портами RDP, вам нужно знать, уязвимо ли это устройство для атаки на этот порт. В Nmap есть множество скриптов NSE для специфических уязвимостей, которые могут сообщить вам, уязвимо ли это устройство.
Также может быть полезен всеобъемлющий сценарий, называемый уязвимостями. Сканирование с этим будет выглядеть так: nmap –script vulners scanme.nmap.org
Это должно вывести все уязвимости, которые nmap может сканировать, и связанные с ними CVE.
Поскольку все это можно сделать с помощью одного инструмента командной строки, автоматизация становится довольно простой; запустите нужный скрипт с помощью чего-то вроде диспетчера задач для Windows, launchd для MacOS и cron для Linux.
Это также должно дать вам хорошее представление о том, что делают устройства в вашей сети. Вы можете быть удивлены тем, что обнаружите, особенно если вы не используете брандмауэры на каждом устройстве.
Удачного сканирования!
Blumira: безопасность для ИТ-команд
Сканирование с помощью Nmap может обеспечить большую видимость вашей среды, но для большего охвата вам потребуется решение для обнаружения угроз и реагирования на них.
Blumira разработан для занятых ИТ-команд, отличается быстрым развертыванием и простым в использовании интерфейсом, не требующим знаний в области кибербезопасности.
Наш облачный SIEM с функциями обнаружения угроз и реагирования на них обнаруживает и предупреждает вас о подозрительном поведении в вашей среде, чтобы вы могли вовремя остановить инцидент и предотвратить ущерб. Каждое обнаружение, которое мы отправляем, сопровождается игрой безопасности, дающей вам четкие рекомендации по устранению атаки. Наша группа поддержки, состоящая из аналитиков по безопасности, всегда готова ответить на вопросы о том, как интерпретировать результаты, или получить другую помощь в области безопасности.
Нашу бесплатную версию легко развернуть; ИТ-специалисты и специалисты по безопасности могут сразу увидеть преимущества безопасности для своих организаций.
Руководство по быстрому сканированию портов
- Сканирование сети Nmap
- Глава 4. Обзор сканирования портов
- Руководство по быстрому сканированию портов
держите самые распространенные
простота использования, сохраняя при этом гибкость для пользовательских и расширенных
сканирует. Это достигается с помощью интерфейса командной строки с помощью
предлагая десятки вариантов, но выбирая разумные значения по умолчанию, когда они
не указан. Новичок может начать с такой простой команды, как nmap <цель>
.
Между тем, опытные пользователи иногда указывают так много опций, что их
линия терминала закручивается.
Аналогичный баланс должен соблюдаться при выводе команды. Большинство важные результаты должны бросаться в глаза даже случайному пользователю, который даже не читал справочную страницу. Тем не менее, результат должен быть всеобъемлющим и достаточно краткий, чтобы подойти профессиональным тестерам на проникновение, использующим Nmap против тысяч машин ежедневно. Пользователи достаточно умны, чтобы прочитать это книга или исходный код Nmap выигрывают от большего контроля над сканер и понимание того, что на самом деле означает вывод Nmap.
В этом руководстве показаны некоторые распространенные способы сканирования портов Nmap. сценарии и объясняет вывод. Вместо того, чтобы пытаться быть всеобъемлющей, цель состоит в том, чтобы просто познакомить новых пользователей достаточно хорошо, чтобы понять остальную часть этой главы.
Простейшая команда Nmap — это просто nmap от
сам. Это напечатает шпаргалку с общими параметрами и синтаксисом Nmap.
Более интересная команда — nmap.
, что делает
следующий:
Преобразует
<цель>
из имя хоста в адрес IPv4 с помощью DNS. Если IP-адрес указан вместо имени хоста, этот поиск пропускается.Пингует хост, по умолчанию с помощью пакета эхо-запроса ICMP. и пакет TCP ACK на порт 80, чтобы определить, работает ли он и бег. Если нет, Nmap сообщает об этом факте и завершает работу. я мог бы иметь указанный
-Pn
, чтобы пропустить этот тест. См. главу 3, Обнаружение хоста («Ping-сканирование») .Преобразует целевой IP-адрес обратно в имя, используя обратный DNS-запрос. Из-за того, как работает DNS, обратное имя может не совпадать с
-n
опция для повышения скорости и скрытность.Запускает сканирование портов TCP из списка 1000 самых популярных портов. в
nmap-сервисы
. Скрытое сканирование SYN обычно используется, но вместо него заменяется сканирование подключения для пользователей Unix без полномочий root которым не хватает привилегий, необходимых для отправки необработанных пакеты.Выводит результаты на стандартный вывод в обычном режиме. человекочитаемый формат и выходы. Другие выходные форматы и местоположения (файлы) можно указать, как описано в главе 13, Форматы вывода Nmap . Пример 4.2 отображает результаты, когда scanme.nmap.org используется как
<цель>
.
Пример 4.2. Простое сканирование: nmap scanme.nmap.org
# nmap scanme. nmap.org
Запуск Nmap ( https://nmap.org )
Отчет сканирования Nmap для scanme.nmap.org (64.13.134.52)
Не показано: 994 отфильтрованных порта
ГОСУДАРСТВЕННАЯ СЛУЖБА ПОРТА
22/tcp открыть ssh
25/tcp закрытый smtp
53/tcp открытый домен
70/tcp закрытый суслик
80/tcp открыть http
113/tcp закрытая авторизация
Nmap выполнен: 1 IP-адрес (1 хост включен) просканирован за 4,99 секунды.
Первая строка вывода в В примере 4.2 просто указан URL-адрес для загрузки Nmap. Время запуска Nmap и номер версии также обычно предоставляется, хотя они были обычно удаляются из этой книги для последовательности и во избежание строк оберточная бумага.
В следующей строке указывается целевой IP-адрес (в данном случае IPv4). случае) и обратный DNS имя (также известное как запись PTR) если это доступный. Nmap обещает показать «интересные порты», хотя все учитываются сканируемые порты. Порты считаются наиболее интересны тем, что они открыты или в редко встречающемся для этого состоянии хост перечисляются индивидуально. Когда много портов в одном неоткрытом состоянии, они считаются состоянием по умолчанию и объединяются в одной строкой, чтобы не разбавлять результаты тысячами неинтересные записи. В данном случае Nmap отмечает, что 994 порта есть отфильтровано.
Следующая таблица интересных портов содержит ключ
результаты сканирования. Столбцы различаются в зависимости от используемых опций, но в
в этом случае укажите номер порта и протокол, состояние и службу
протокол для каждого порта. Служба здесь — всего лишь предположение, сделанное
поиск порта в nmap-services
.
сервис будет указан как неизвестный
, если какой-либо из
порты не имели имени, зарегистрированного в этом файле. Три из этих портов открыты
и три закрыты.
Наконец, перед выходом Nmap сообщает некоторую базовую статистику времени. Эта статистика представляет собой количество указанных целей, количество тех, что проверка ping показала, что она работает, и общее время, затраченное на это.
Хотя зачастую достаточно этой простой команды, расширенные
пользователи часто идут гораздо дальше. В примере 4.3 сканирование изменяется с помощью
четыре варианта. -p0-
просит Nmap просканировать все возможные
Порт TCP, -v
просит Nmap рассказать об этом подробно, -A
включает агрессивные тесты, такие как удаленная ОС
обнаружение, определение службы/версии и механизм сценариев Nmap
(НСЭ). Наконец, -T4
включает более агрессивное время
политика для ускорения сканирования.
Пример 4.3. Более сложный: nmap -p0- -v -A -T4 scanme.nmap.org
# nmap -p0- -v -A -T4 scanme.nmap.org
Запуск Nmap ( https://nmap.org )
Завершено сканирование Ping в 00:03, прошло 0,01 с (всего 1 хост)
Сканирование scanme.nmap.org (64.13.134.52) [65536 портов]
Обнаружен открытый порт 22/tcp на 64.13.134.52
Обнаружен открытый порт 53/tcp на 64.13.134.52
Обнаружен открытый порт 80/tcp на 64.13.134.52
Время скрытого сканирования SYN: выполнено около 6,20%; ETC: 00:11 (осталось 0:07:33)
Скрытое сканирование SYN завершено в 00:10, прошло 463,55 с (всего 65536 портов)
Сканирование службы завершено в 00:10, прошло 6,03 с (3 службы на 1 хосте)
Инициирование определения ОС (попытка №1) с помощью scanme. nmap.org (64.13.134.52)
Запуск трассировки в 00:10
64.13.134.52: угадывание расстояния перехода на 9Завершено SCRIPT ENGINE в 00:10, прошло 4,04 с.
Хост scanme.nmap.org (64.13.134.52) работает... хорошо.
Отчет сканирования Nmap для scanme.nmap.org (64.13.134.52)
Не показано: 65530 отфильтрованных портов
ПОРТОВАЯ СЛУЖБА ВЕРСИЯ
22/tcp open ssh OpenSSH 4.3 (протокол 2.0)
25/tcp закрытый smtp
53/tcp открытый домен ISC BIND 9.3.4
70/tcp закрытый суслик
80/tcp открыть http Apache httpd 2.2.2 ((Fedora))
|_HTML title: Вперед, ScanMe!
113/tcp закрытая авторизация
Тип устройства: общего назначения
Запуск: Linux 2.6.X
Сведения об ОС: Linux 2.6.20-1 (Fedora Core 5)
Расчетное время безотказной работы: 2,457 дня (с четверга, 18 сентября, 13:13:24 2008 г.)
Прогноз последовательности TCP: Сложность = 204 (Удачи!)
Генерация последовательности IP ID: все нули
TRACEROOUTE (используя порт 80/tcp)
HOP АДРЕС RTT
[Первые восемь прыжков сокращены для краткости]
910.36 metro0.sv.svcolo.com (208.185.168.173)
10 10. 29 scanme.nmap.org (64.13.134.52)
Nmap выполнен: 1 IP-адрес (1 хост включен) просканирован за 477,23 секунды.
Отправлено необработанных пакетов: 131432 (5,783 МБ) | Rcvd: 359 (14,964 КБ)
Nmap, безусловно, предоставил запрошенную подробность в примере 4.3! К счастью, доп. вывод легко понять. Первые 13 новых строк — время выполнения. информация, позволяющая пользователю узнать, что происходит, когда он смотрит выжидательно у терминала, надеясь на хорошие новости. Что представляет собой хорошие новости, зависит от того, является ли она системным администратор, который должен исправлять проблемы, пен-тестер, которому нужно немного проблемы, о которых нужно сообщить, или взломщик с черной шляпой, пытающийся использовать их. Около десятка подобных строк было удалено для краткости. Строки «обнаруженный открытый порт» обеспечивают оповещение об открытых портах, чтобы она могла начать стучать на них еще до завершения сканирования. Строка «время сканирования» предоставляет оценку времени завершения, поэтому она знает, следует ли сохранить смотреть на экран или обедать. Поскольку условия сети (задержка, перегрузка, пропускная способность и т. д.) и правила фильтрации пакетов различаются так много, что одни и те же параметры сканирования могут занять 30 секунд против один хост и 45 минут против другого. Если вы хотите получить текущую оценку времени во время сканирования, просто нажмите входить.
В таблице портов нет новых портов. Просканированы все лишние порты
находятся в отфильтрованном состоянии, что увеличивает общее количество отфильтрованных портов с 994
до 65 530. Пока нет новых детализированных портов, записи имеют
измененный. Новый столбец VERSION
содержит имя приложения и сведения о версии для службы прослушивания. Это приходит
от обнаружения службы, одна из функций, включенных
вариант -A
.
Еще одна особенность обнаружения сервисов заключается в том, что все
сервисных протоколов в 9Столбец 0074 SERVICE фактически был
проверено. В предыдущем сканировании они основывались на относительно
хлипкая эвристика поиска номера порта nmap-services
. Этот поиск в таблице оказался правильным на этот раз, но он не будет
всегда быть.
Еще одна функция, добавленная -A
, — это Nmap.
Скриптовый движок,
который подробно обсуждается в
Глава 9, Механизм сценариев Nmap . Единственный показанный здесь скрипт — HTML.
название
. Существуют десятки других скриптов, но ни один из них не оказался полезным
Выход для этой машины.
трассировка
также были добавлены результаты
к -А
. Этот вариант более эффективен и более
мощнее, чем большинство программ traceroute, поскольку проверки выполняются в
parallel, а Nmap использует результаты сканирования для определения подходящего зонда.
тип (в данном случае TCP-пакеты на порт 80).
Большинство оставшихся новых строк исходит от обнаружения ОС (также
включено -A
), который подробно обсуждается в
Глава 8, Удаленное обнаружение ОС . Последняя строка показывает, что все эти дополнительные
информации пришлось заплатить — сканирование заняло почти в 100 раз больше времени, чем
Пример 4.