Сканирование портов: Advanced Port Scanner — бесплатный и быстрый сканер портов

Сканирование портов с Nmap

Методов сканирования много, однако всех их можно разделить на несколько категорий: определение хоста в сети, сканирование портов, обход/обнаружение фаервола, определение ОС. В этой статье мы рассмотрим техники сканирования портов.

TCP connect

Пожалуй самый распространенный и “шумный” способ сканирования. “Шумный” в том плане, что оставляет после себя следы. Принцип работы довольно прост — сканирующий комп просто инициирует TCP соединение со сканируемым объектом, если соединение удалось, значит порт открыт, если отклонено — закрыт, если нет ответа — возможно блокируется фаерволом.

Вы возможно заметили, что после установления соединения сканер отправляет RST. Это связано с тем, что для завершения соединения необходимо пройти процедуру FIN-CLOSE, которая состоит из нескольких этапов. Это довольно затратное мероприятие в плане времени, поэтому сканер просто разрывает соединение отправкой RST.

TCP connect довольно медленный способ, кроме того системный администратор может легко определить сам факт сканирования, просто взглянув на логи фаервола.

 

Теперь вернемся в Nmap. Для запуска данного способа достаточно выполнить:

nmap -sT 192.168.0.45 -p 22,80,445

Nmap помечает порты одним из 3-х состояний: open (открытый), closed (закрытый), filtered (фильтруется фаерволом). Существуют и другие состояния, но об этом позже. С open и closed все понятно, но что означает filtered?

Означает то, что на сканирующий пакет не было получено ответа (в случае с TCP connect)  возможно из-за фаервола. Так как техник сканирования много, то и состояния портов тоже могут меняться в зависимости от того ответил хост или нет, а также как ответил. Поэтому рекомендую использовать опцию —reason, которая подскажет на каком основании принято то или иное решение:

nmap -sT —reason scanme.nmap.org -p22,80,139

 

TCP Syn (Stealth scan)

Данный тип сканирования является менее заметным по сравнению с предыдущим.

Принцип работы заключается в том, что сканирующий комп использует так называемое полусоединение, то есть, получив SYN-ACK от сканируемого устройства, сканер завершает свою работу.

В конце успешного сканирования сканер посылает TCP RST. Если его не отправить, то сканируемый объект будет считать, что пакет SYN-ACK был потерян и будет снова посылать SYN-ACK, тем самым засоряя сеть ненужными пакетами и демаскируя само сканирование. Поэтому завершающий TCP RST крайне необходим.

Почему данный метод считается менее заметным?

Дело в том, что конечные системы записывают в свои логи сам факт установления соединения. Если попытка соединения была сорвана, то ничего не записывается.

TCP Syn также является более быстрым методом по сравнению с TCP connect. Сканер сразу отправляет пакеты SYN, а затем ждет SYN-ACK. Ему уже не нужно в ответ на SYN-ACK посылать ACK.

Для запуска данного метода выполним команду:

nmap -sS —reason scanme.nmap.org -p 23,80,138

Следует отметить, что данную команду необходимо выполнять от имени суперпользователя (root). Кроме того, при запуске того или иного метода сканирования nmap посылает дополнительные пакеты, чтобы определить, что хост онлайн. В этом легко убедиться, включив опцию —packet-trace:

nmap -sS —packet-trace —reason 192.168.1.2 -p 80

 

UDP сканирование

На первый взгляд техника сканирования выглядит довольно просто. Сканирующий хост посылает пустой UDP пакет (только UDP заголовок) и ждет ответной реакции от сканируемого объекта.

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

Однако иногда фаервол может отправить уведомление о блокировке пакетов.

В каких случаях хост с открытым UDP портом игнорирует сканирующие пакеты?

Ответ прост. Nmap (да и любые другие сканеры) посылают “пустые” пакеты (только UDP заголовок), то есть не содержат полезной нагрузки или данные.

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

Почему же сразу не вставить данные в пакет, которые соответствовали бы формату конкретного приложения?

Дело в том, что приложения, использующие протокол UDP не имеют единого стандартизированного формата данных. А содержать целую базу данных под каждый UDP порт задача довольно сложная, поэтому Nmap старается вставить данные в некоторые  пакеты с общеизвестными портами, например, 53 (DNS), 137 (NetBios) и так далее.

Для запуска UDP сканирования со вставкой полезной нагрузки используется команда:

nmap -sUV —reason scanme.nmap.org

 

Null, Xmas, Fin сканирование

Этот экзотический метод сканирования основан на рекомендации RFC 793. Там сказано, если порт устройства закрыт и принят TCP пакет, в котором не установлен флаг RST, то данное устройство должно отправить пакет с установленным флагом RST. Проще говоря, если принят TCP RST пакет, то порт закрыт. Если никакого ответа не последовало, то порт открыт.

Однако не все так хорошо, как кажется. Не все системы придерживаются рекомендациям RFC, то есть могут просто не ответить на такой необычный сканирующий пакет либо всегда отвечают RST, ACK вне зависимости от состояния портов. К таким системам относится Windows. Ситуация также осложняется наличием фаерволов, так как в большинстве случаев они уничтожают подозрительные пакеты и никак об этом не сообщают. Поэтому в Nmap “неответившие” порты помечаются как opened | filtered. Данный метод рекомендуется использовать совместно с другими методами для улучшения результатов сканирования.

Для запуска сканирования используйте следующие команды:

nmap -sN 192.168.1.2 — Null сканирование

nmap -sF 192.168.1.2 — Fin сканирование

nmap -sX 192.168.1.2 — Xmas сканирование

Сканеры портов

Поиск софта

Платное

Бесплатное

SuperScan

Вышла новая версия популярного сканера портов для Windows систем.

Angry IP Scanner

Утилита для сканирования определенных поротов на множесттве машин в сети.

scanless

Утилита для сканирования портов веб-сайтов от имени пользователя.

NEWT Professional

Сетевой сканер для администраторов.

Network Discovery

Сканер портов для локальных сетей, рассчитанный для работы на мобильных платформах.

FreePortScanner

Небольшой и быстро работающий сканер портов.

Professional Look at Net

Сетевой сканер и сниффер в одной программе.

Net Tools

Программа для сканирования Wi-Fi сетей и подключенных к ним устройств.

Arp-scan

инструмент для сканирования компьютеров внутри одной подсети

THC-Amap

amap — инструмент для сканирования, позволяющий удаленно идентифицировать приложения, выполняющиеся на определенном порту.

OstroSoft Internet Tools

интегрированный набор сетевых информационных програм

DSNS

Сетевой сканер для Windows 2000

Rnmap

Remote nmap (Rnmap) – программа, позволяющая удаленно просматривать порты, используя централизованный сервер.

knocker

Knocker — простой и удобный в работе многопоточный TCP сканер портов, написанный в C

GnoScan

GnoScan – мультипоточный сетевой сканер с графическим интерфейсом для GNOME.


Подпишитесь на email рассылку

Подпишитесь на получение последних материалов по безопасности от SecurityLab.ru — новости, статьи, обзоры уязвимостей и мнения аналитиков.

Ежедневный выпуск от SecurityLab.Ru

Еженедельный выпуск от SecurityLab.Ru

Нажимая на кнопку, я принимаю условия соглашения.

【Атака сканирования портов】Определение, примеры и предотвращение

12 сентября 2022 г.

Чтение: 7 мин.

Судип Сенгупта

В этой статье:

HTTPSHTTP

Анализируем https://example.com

Цель сканирования https://example.com

Crashtest Security Suite будет проверять:

Раскрытие информации

Известные уязвимости

Неправильная конфигурация SSL

Открытые порты

Завершите запрос на сканирование

Пожалуйста, заполните ваши данные, чтобы получить
быстрый аудит безопасности по электронной почте.

Специалист по безопасности анализирует ваш отчет о сканировании.

Имя *

Фамилия *

Деловая электронная почта *

Для подтверждения личности укажите свой телефон/мобильный:

Код округа * АНДОРРА ( +376 )ОБЪЕДИНЕННЫЕ АРАБСКИЕ ЭМИРАТЫ ( +971 )АФГАНИСТАН ( +93 )АНТИГУА И БАРБУДА ( +1268 )АНГИЛЬЯ ( +1264 )АЛБАНИЯ ( +355 )АРМЕНИЯ ( +374 )НИДЕРЛАНДСКИЕ АНТИЛЬСКИЕ ОСТРОВА ( +599 )АНГОЛА ( +244 ) АНТАРКТИКА ( +672 )АРГЕНТИНА ( +54 )АМЕРИКАНСКОЕ САМОА ( +1684 )АВСТРИЯ ( +43 )АВСТРАЛИЯ ( +61 )АРУБА ( +297 )АЗЕРБАЙДЖАН ( +994 )БОСНИЯ И ГЕРЦЕГОВИНА ( +387 )БАРБАДОС ( +1246 )БАНГЛАДЕШ ( +880 )БЕЛЬГИЯ ( +32 )БУРКИНА-ФАСО ( +226 )БОЛГАРИЯ ( +359)БАХРЕЙН ( +973 )БУРУНДИ ( +257 )БЕНИН ( +229 )СЕН-БАРТЕЛЕМИЯ ( +590 )БЕРМУДСКИЕ ОСТРОВА ( +1441 )БРУНЕЙ-ДАРУССАЛАМ ( +673 )БОЛИВИЯ ( +591 )БРАЗИЛИЯ ( +55 )БАГАМСКИЕ ОСТРОВА ( +1242 )БУТАН ( +975 )БОТСВАНА ( +267 )БЕЛАРУСИ ( +375 )БЕЛИЗ ( +501 )КАНАДА ( +1 )КОКОСОВЫЕ ОСТРОВА (КИЛИНГ) ( +61 )КОНГО, ДЕМОКРАТИЧЕСКАЯ РЕСПУБЛИКА ( +243 )ЦЕНТРАЛЬНОАФРИКАНСКАЯ РЕСПУБЛИКА ( +236 ) КОНГО ( +242 )ШВЕЙЦАРИЯ ( +41 )КОТ-ДИВУАР ( +225 )ОСТРОВА КУКА ( +682 )ЧИЛИ ( +56 )КАМЕРУН ( +237 )КИТАЙ ( +86 )КОЛУМБИЯ ( +57 )КОСТА-РИКА ( +506 )КУБА ( +53 )КАБО-ВЕРДЕ ( +238 )ОСТРОВ РОЖДЕСТВА ( +61 )КИПР ( +357 )ЧЕХИЯ ( +420 )ГЕРМАНИЯ ( +49)ДЖИБУТИ ( +253 )ДАНИЯ ( +45 )ДОМИНИКА ( +1767 )ДОМИНИКАНСКАЯ РЕСПУБЛИКА ( +1809 )АЛЖИР ( +213 )ЭКВАДОР ( +593 )ЭСТОНИЯ ( +372 )ЕГИПЕТ ( +20 )ЭРИТРЕЙ ( +291 )ИСПАНИЯ ( + 34 )ЭФИОПИЯ ( +251 )ФИНЛЯНДИЯ ( +358 )ФИДЖИ ( +679 )ФОЛКЛЕНДСКИЕ ОСТРОВА (МАЛЬВИНСКИЕ) ( +500 )МИКРОНЕЗИЯ, ФЕДЕРАТИВНЫЕ ШТАТЫ ( +691 )ФАРЕРСКИЕ ОСТРОВА ( +298 )ФРАНЦИЯ ( +33 )ГАБОН ( +241 )СОЕДИНЕННОЕ КОРОЛЕВСТВО ( +44 )ГРЕНАДА ( +1473 )ГРУЗИЯ ( +995 )ГАНА ( +233 )ГИБРАЛТАР ( +350 )ГРЕНЛАНДИЯ ( +299 )ГАМБИЯ ( +220 )ГВИНЕЯ ( +224 )ЭКВАТОРИАЛЬНАЯ ГВИНЕЯ ( +240 )ГРЕЦИЯ ( +30 )ГВАТЕМАЛА ( +502 )ГУАМ ( +1671 )ГВИНЕЯ-БИСАУ ( +245 )ГАЙАНА ( +592 )ГОНКОНГ ( +852 )ГОНДУРАС ( +504 )ХОРВАТИЯ ( +385 )ГАИТИ ( +509 )ВЕНГРИЯ ( +36 )ИНДОНЕЗИЯ ( +62 )ИРЛАНДИЯ ( +353 )ИЗРАИЛЬ ( +972 )ОСТРОВ МАН ( +44 ) ИНДИЯ ( +91 )ИРАК ( +964 )ИРАН, ИСЛАМСКАЯ РЕСПУБЛИКА ( +98 )ИСЛАНДИЯ ( +354 )ИТАЛИЯ ( +39 )ЯМАЙКА ( +1876 )ИОРДАНИЯ ( +962 )ЯПОНИЯ ( +81 )КЕНИЯ ( +254 )КЫРГЫЗСТАН ( +996 )КАМБОДЖА ( +855 )КИРИБАТИ ( +686 )КОМОРСКИЕ ОСТРОВА ( +269 )СЕНТ-КИТС И НЕВИС ( +1869 )КОРЕЙСКАЯ НАРОДНО-ДЕМОКРАТИЧЕСКАЯ РЕСПУБЛИКА ( +850 )КОРЕЙСКАЯ РЕСПУБЛИКА ( +82 )КУВЕЙТ ( +965 )КАЙМАНОВЫ ОСТРОВА ( +1345 )КАЗАХСТАН ( +7 )ЛАОССКАЯ НАРОДНО-ДЕМОКРАТИЧЕСКАЯ РЕСПУБЛИКА ( +856 )ЛИВАН ( +961 )СЕНТ-ЛЮСИЯ ( +1758 )ЛИХТЕНШТЕЙН ( +423 )ШРИ-ЛАНКА ( +94 )ЛИБЕРИЯ ( +231 )ЛЕСОТО ( +266 )ЛИТВА ( +370 )ЛЮКСЕМБУРГ ( +352 )ЛАТВИЯ ( +371 )ЛИВИЙСКАЯ АРАБСКАЯ ДЖАМАХИРИЯ ( +218 )МАРОККО ( +212 )МОНАКО ( +377 )МОЛДОВА, РЕСПУБЛИКА ( +373 )ЧЕРНОГОРИЯ ( +382 )СЕНТ-МАРТИН ( +1599 )МАДАГАСКАР ( +261 )МАРШАЛЛОВЫ ОСТРОВА ( +692 )МАКЕДОНИЯ, БЫВШАЯ ЮГОСЛАВСКАЯ РЕСПУБЛИКА ( + 389 )МАЛИ ( +223 )МЬЯНМА ( +95 )МОНГОЛИЯ ( +976 )МАКАО ( +853 )СЕВЕРНЫЕ МАРИАНСКИЕ ОСТРОВА ( +1670 )МАВРИТАНИЯ ( +222 )МОНТСЕРРАТ ( +1664 )МАЛЬТА ( +356 )МАВРИКИЙ ( +230 )МАЛЬДИВЫ ( +960 )МАЛАВИ ( +265 )МЕКСИКА ( +52 )МАЛАЙЗИЯ ( +60 )МОЗАМБИК ( +258 )НАМИБИЯ ( +264 )НОВАЯ КАЛЕДОНИЯ ( +687 )НИГЕР ( +227 )НИГЕРИЯ ( +234 )НИКАРАГУА ( +505 )НИДЕРЛАНДЫ ( +31 )НОРВЕГИЯ ( +47 )НЕПАЛ ( +977 )НАУРУ ( +674 )НИУЭ ( +683 )НОВАЯ ЗЕЛАНДИЯ ( +64 )ОМАН ( +968 )ПАНАМА ( +507 )ПЕРУ ( +51 )ФРАНЦУЗСКАЯ ПОЛИНЕЗИЯ ( +689 ) ПАПУА-НОВАЯ ГВИНЕЯ ( +675 )ФИЛИППИНЫ ( +63 )ПАКИСТАН ( +92 )ПОЛЬША ( +48 )СЕН-ПЬЕР И МИКЕЛЬОН ( +508 )ПИТКЕРН ( +870 )ПУЭРТО-РИКО ( +1 )ПОРТУГАЛИЯ ( +351 )ПАЛАУ ( +680 )ПАРАГВАЙ ( +595 )КАТАР ( +974 )РУМЫНИЯ ( +40 )СЕРБИЯ ( +381 )РОССИЙСКАЯ ФЕДЕРАЦИЯ ( +7 )РУАНДА ( +250 )САУДОВСКАЯ АРАВИЯ ( +966 )СОЛОМОНОВЫ ОСТРОВА ( +677 )СЕЙШЕЛЫ ( +248 )СУДАН ( +249 )ШВЕЦИЯ ( +46 ) СИНГАПУР ( +65 )СВЯТАЯ ЕЛЕНА ( +290 )СЛОВЕНИЯ ( +386 )СЛОВАКИЯ ( +421 )СЬЕРРА-ЛЕОНЕ ( +232 )САН-МАРИНО ( +378 )СЕНЕГАЛ ( +221 )СОМАЛИ ( +252 )СУРИНАМ ( +597 )САО ТОМЕ И ПРИНСИПИ ( +239 )ЭЛЬ-САЛЬВАДОР ( +503 )СИРИЙСКАЯ АРАБСКАЯ РЕСПУБЛИКА ( +963 )СВАЗИЛЕНД ( +268 )ОСТРОВА ТУРКС И КАЙКОС ( +1649 )ЧАД ( +235 )ТОГО ( +228 )ТАИЛАНД ( +66 )ТАДЖИКИСТАН ( + 992 )ТОКЕЛАУ ( +690 )ТИМОР-ЛЕСТИ ( +670 )ТУРКМЕНИСТАН ( +993 )ТУНИС ( +216 )ТОНГА ( +676 )ТУРЦИЯ ( +90 )ТРИНИДАД И ТОБАГО ( +1868 )ТУВАЛУ ( +688 )ТАЙВАНЬ, ПРОВИНЦИЯ КИТАЙ ( +886 )ТАНЗАНИЯ, ОБЪЕДИНЕННАЯ РЕСПУБЛИКА ( +255 )УКРАИНА ( +380 )УГАНДА ( +256 )СОЕДИНЕННЫЕ ШТАТЫ ( +1 )УРУГВАЙ ( +598 )УЗБЕКИСТАН ( +998 )СВЯТОЙ ПРЕСТОЛ (ВАТИКАН ГОСУДАРСТВО) ( +39 )СЕНТ-ВИНСЕНТ И ГРЕНАДИНЫ ( +1784 )ВЕНЕСУЭЛА ( +58 )ВИРГИНСКИЕ ОСТРОВА, БРИТАНСКИЕ ( +1284 )ВИРГИНСКИЕ ОСТРОВА, США ( +1340 )ВЬЕТНАМ ( +84 )ВАНУАТУ ( +678 )УОЛЛИС И ФУТУНА ( +681 )САМОА ( +685 )КОСОВО ( +381 )ЙЕМЕН ( +967 )МАЙОТТА ( +262 )ЮЖНАЯ АФРИКА ( +27 )ЗАМБИЯ ( +260 )ЗИМБАБВЕ ( +263 )

Телефон / Мобильный *

Спасибо.

Мы получили ваш запрос.
Как только ваш аудит безопасности будет готов, мы сообщим вам об этом.

Эффективное сканирование портов Linux для сетевого администратора

Вы ищете способ повысить безопасность вашей сети? Почему бы не научиться выполнять сканирование портов Linux как профессионал?

В этом руководстве вы узнаете о некоторых наиболее популярных инструментах и ​​методах, а также о возможных рисках и выгодах, связанных со сканированием портов.

Звучит многообещающе? Начните сканирование портов, чтобы обезопасить свою сеть уже сегодня!

Содержание

Предварительные требования

Этот учебник представляет собой практическую демонстрацию. Если вы хотите продолжить, убедитесь, что у вас есть система Linux. В этом руководстве используется Ubuntu 20.04, но подойдет любой современный дистрибутив Linux.

Сканирование открытых портов с помощью Nmap

Существуют различные способы сканирования портов, и Nmap — отличный инструмент для обнаружения сети и аудита безопасности. Nmap позволяет находить хосты и службы в компьютерной сети, отправляя пакеты и анализируя ответы.

Nmap доступен бесплатно и совместим с Windows, Linux и OS X.

Сканирование портов позволяет проверить сервер или хост на наличие открытых портов, что удобно по разным причинам:

  • Выяснение того, какие службы запущены на хосте.
  • Обнаружение уязвимостей
  • Перечисление системы.

Но прежде чем воспользоваться преимуществами Nmap, вам сначала необходимо установить Nmap на свой компьютер:

1. Запустите приведенную ниже команду apt update, чтобы обновить индекс системных пакетов.

 apt update -y 
Сканирование портов Linux: обновление индекса системных пакетов

2. Затем выполните следующую команду apt install для установки Nmap.

 apt install nmap -y 
Установка Nmap

3. Запустите приведенную ниже команду nmap –version, чтобы проверить версию Nmap, установленную на вашем компьютере.

 nmap --version 

Ниже установлена ​​версия Nmap 7.80, последняя версия на момент написания этой статьи.

Проверка установленной версии Nmap

4. Теперь запустите следующую команду nmap для сканирования целевого имени хоста или IP-адреса (scanme.nmap.org). Вам просто нужен минимум опций, чтобы начать.

 nmap scanme.nmap.org 

Ниже приведена разбивка результатов сканирования:

  • IPv4-адрес цели — 45.33.32.156 .
  • IPv6-адрес цели (при наличии) — 2600:3c01::f03c:91ff .
  • Обратное DNS-имя (если доступно).

Вы также можете увидеть каждый порт и его статус в выводе:

  • открыт — указывает, что порт открыт и ожидает входящие соединения.
  • закрыт — указывает, что порт закрыт и не принимает входящие соединения.
  • filtered – Указывает, что порт фильтруется, и Nmap не может определить, открыт или закрыт порт. Nmap отправляет запросы на порт, но не получает ответа.
Сканирование открытых портов с помощью Nmap

Сканирование определенных портов

Nmap выполняет много действий в фоновом режиме, пытаясь определить состояние каждого порта. Вы можете дополнительно настроить сканирование, добавив параметры CLI для большего контроля, например -p вариант. Эта опция позволяет указать, какие порты сканировать.

1. Выполните следующую команду, чтобы просканировать порт 80 на целевом имени хоста (scanme.nmap.org). Эта команда позволяет узнать, открыт или закрыт порт 80 целевого хоста.

 nmap -p 80 scanme.nmap.org 

Ниже видно, что порт 80 открыт. Это состояние говорит о том, что веб-сервер работает на порту 80.

Определение открытых портов HTTP

2. Затем выполните следующую команду, чтобы использовать общедоступные DNS-серверы Google (8.8.8.8 и 8.8.4.4) для сканирования порта 80 имя хоста (scanme.nmap.org).

Параметр –dns-servers позволяет указать, какие DNS-серверы использовать для сканирования. Эта опция полезна, когда вы хотите просканировать хост в другой сети. В то время как флаг -v дает вам больше информации о сканировании.

 nmap --dns-servers -p 80 8.8.8.8,8.8.4.4 -v scanme.nmap.org 

Ниже видно, что Nmap использует общедоступные DNS-серверы Google для разрешения имени хоста, и сканирование прошло успешно.

Сканирование порта с помощью DNS-серверов Google

3. Наконец, выполните приведенную ниже команду, чтобы просканировать порт 80 имени хоста (scanme.nmap.org), как вы это делали на первом этапе. Но на этот раз добавьте параметр -d, чтобы повысить уровень отладки до 3. Этот параметр полезен для устранения неполадок с Nmap.

Параметр -d принимает целое число (от 0 до 9) в качестве аргумента. Чем выше число, тем больше отладочной информации вы увидите.

Уровень 9 предназначен для очень подробного вывода, что полезно для разработчиков, работающих с Nmap.

 nmap -d 3 -p 80 scanme. nmap.org 
Вывод отладки на пятом уровне для порта 80

Сканирование портов

Использование Netcat (Ncat)

исследование сети, аудит безопасности и тестирование на проникновение. Вы можете использовать Netcat для создания простых TCP- и UDP-соединений, а также более сложных SOCKS- и HTTP-прокси. Но в этом руководстве вы будете использовать Netcat для сканирования открытых портов в удаленных системах.

1. Запустите приведенную ниже команду nc для сканирования открытых портов без отправки каких-либо данных (-z) с портов с 20 по 1000 на 159.89.176.25. Параметр -v указывает Netcat, что он должен быть подробным, чтобы вы могли видеть, что происходит во время сканирования.

 nc -z -v 159.89.176.25 20-1000 

Диапазон портов может быть увеличен или уменьшен по мере необходимости. Но порты 20-1000 охватывают широкий спектр часто используемых портов.

Вывод ниже показывает, какие порты открыты, и состояние их подключения следующее:

  • Соединение отклонено — Указывает, что соединение было отклонено соответствующим портом, что, вероятно, связано с отсутствием службы, работающей на этом порту — порт закрыт.
  • Успешно! – Указывает на успешное подключение — порт открыт.

Помимо порта 22 (SSH), который открыт в удаленной системе, вы также увидите много других сообщений, которые могут раздражать. Итак, перейдите к следующему шагу, чтобы отфильтровать вывод.

Результат сканирования портов Netcat

2. Запустите приведенную ниже команду grep, чтобы просканировать порты с 20 по 100 на 159.89.176.25, и отобразить только открытые порты из каждого результата сканирования, в котором слово было успешно выполнено.

Часть 2>&1 указывает оболочке перенаправить stderr (файловый дескриптор 2) на stdout (файловый дескриптор 1). Таким образом, вы увидите сообщение об ошибке в выводе, если оно есть.

 nc -z -v 159.89.176.25 20-100 2>&1 | grep successed 

Как вы можете видеть ниже, открыт только порт 22, который также имеет сообщение об успешном выполнении.

Использование Netcat с grep

3. Наконец, выполните ту же команду, что и во втором шаге. Но на этот раз добавьте параметр -u для сканирования портов UDP, как показано ниже.

 nc -z -v -u 159.89.176.25 20-100 2>&1 | grep преуспел 

Обратите внимание, что сканирование занимает гораздо больше времени при сканировании портов UDP, чем TCP:

  • Сканирование TCP пытается установить соединение с целевым хостом, сканируя все 65 535 портов, чтобы увидеть, какие из них открыты.
  • Сканирование UDP не пытается установить соединение, а отправляет пакет UDP на каждый из портов целевого хоста, чтобы узнать, какие из них открыты. Сканирование UDP ниже, чем сканирование TCP, потому что вы отправляете пакет и завершаете обработку ошибок и трехстороннее рукопожатие.

Ниже вы можете видеть, что вывод пуст, поскольку в удаленной системе не запущены службы UDP.

Netcat сканирует UDP-порты

Проверка открытия порта с помощью сценария Bash

До сих пор вы видели, как использовать Netcat и Nmap для сканирования открытых портов в системе. Хотя эти инструменты полезны, они ненадежны при автоматизации задачи сканирования портов.

Например, вы планируете сканировать открытые порты на 1000 хостах. В этом случае сканирование портов вручную становится утомительным и занимает много времени. Но как автоматизировать задачи сканирования портов в Linux? Написание сценария Bash сделает свое дело.

Чтобы создать сценарий Bash для автоматизации сканирования портов:

1. Откройте новый файл в вашем любимом текстовом редакторе. Назовите файл по своему усмотрению, но в этом руководстве он называется ports.sh.

 nano ports.sh 

2. Добавьте приведенный ниже код в файл ports.sh , но обязательно замените значения SERVER и PORT собственным IP-адресом или именем хоста и портом для сканирования.

После изменения значений сохраните изменения и закройте редактор.

 # Определяет сервер, который вы хотите сканировать.
СЕРВЕР=adamtheautomator.com
# Определяет порт для сканирования. 
ПОРТ=443
# Запускает команду nmap и присваивает вывод переменной состояния.
# Команда grep фильтрует и отображает вывод команды nmap
# со строками, содержащими ключевое слово "open".
state=`nmap -p $PORT $SERVER | grep "$ПОРТ" | grep открыть`
# Проверяет, пуста ли переменная состояния (порт закрыт).
если [-z "$state"]; тогда
# Отображает сообщение в случае сбоя соединения.
  echo "Не удалось подключиться к $SERVER через порт $PORT"
еще
# Отображает сообщение, если соединение установлено успешно.
  echo "Соединение с $SERVER через порт $PORT успешно выполнено"
# Выход из скрипта с кодом выхода 1
# чтобы определить, был ли сценарий успешным или нет.
  выход 1
fi # Завершает оператор if 

3. Наконец, запустите приведенную ниже команду bash, чтобы запустить сценарий ports.sh.

 bash ports.sh 

Если все пойдет хорошо, вы увидите следующий вывод о том, что порт 443 открыт на adamtheautomator.com.

Запуск сценария Bash

Заключение

В этом руководстве вы научились сканировать открытые порты в системе с помощью Netcat и Nmap.

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *