Сканер портов программа: Инструменты для сканирования портов. — it-black.ru

Инструменты для сканирования портов. — it-black.ru

Инструменты для сканирования портов. — it-black.ru Перейти к содержимому

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

Эти программы обычно используются системными администраторами для проверки безопасности их сетей и злоумышленниками для взлома сети. Может производиться поиск как ряда открытых портов на одном хосте, так и одного определённого порта на многих хостах.

Например, сканирование портов на отдельном хосте позволяет получить очень хорошее представление о происходящих на нем процессах.

Сам процесс называется сканированием портов или сканированием сети. Сканирование портов может являться первым шагом в процессе взлома или предупреждения взлома, помогая определить потенциальные цели атаки.

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

Инструменты для сканирования портов

Сегодня я хочу рассказать вам про 3 программы для сканирования портов.

1. Nmap

Nmap («Network Mapper») — это утилита с открытым исходным кодом для исследования сети и проверки безопасности.

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

Nmap поддерживает дюжины продвинутых техник для составления карты сети, заполненной IP фильтрами, файерволами, роутерами и другими преградами.

Сюда относятся множество механизмов сканирования портов (как TCP, так и UDP), определение ОС, определение версий, пинг зачисток и другое. Официальный сайт программы: insecure.org.

2.
Advanced Port Scanner

Advanced Port Scanner — это быстрая и бесплатная программа для сканирования портов. С его помощью можно быстро найти все открытые порты (TCP и UDP) определить версии программ, работающих на них. Программа содержит много удобных функций для работы с локальными сетями. Возможности программы:

  • быстрое сканирование всех устройств в сети;
  • определение программ, использующих найденные порты;
  • удобный доступ к найденным ресурсам: HTTP, HTTPS, FTP и общим папкам;
  • удаленный доступ к найденным компьютерам через RDP и Radmin;
  • запуск команд для удаленного компьютера;
  • Удаленное включение и выключение компьютеров.

Официальный сайт программы: Advanced Port Scanner.

3. Fpipe

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

Работа fpipe основана на перенаправлении портов. Запускается она, заданием прослушиваемого порта сервера, порта назначения удаленного узла (порт, который требуется для достижения с внутренней стороны брандмауэра) и (дополнительно) номер требуемого локального исходного порта. Официальный сайт программы: Fpipe.

Защита от сканирования портов

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

Данный метод работает в большинстве случаев, однако, не защищает от новых техник сканирования портов, в числе которых сканирование с помощью ICMP-порта и NULL-сканирование. Некоторые провайдеры реализуют фильтры пакетов или открытые прокси-серверы, которые препятствуют исходящей активности по сканированию портов.

Facebook

Twitter

  • One Comment

Группа в VK

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

Облако меток

Похожие статьи

Обзор инструментов тестирования на проникновение

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

Искусство форензики

Форензика (компьютерная криминалистика, расследование киберпреступлений) — прикладная наука о раскрытии преступлений, связанных с компьютерной информацией, об исследовании цифровых доказательств, методах поиска, получения и закрепления таких

Утилита IPTABLES

IPTABLES — утилита межсетевого экрана, предназначенная для операционных систем Linux. Iptables основана на правилах, которые контролируют входящие и исходящие пакеты, а также использует цепочки правил

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

Немного теории… Open Web Application Security Project (OWASP) — это открытый проект обеспечения безопасности веб-приложений. Сообщество OWASP включает в себя корпорации, образовательные организации и частных

Instagram Vk Youtube Telegram Odnoklassniki

Полезно знать

Рубрики

Авторы

Сканер портов для Linux: Помимо Nmap для администраторов

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

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

Индекс

  • 1 Nmap
  • 2 Angry IP Scanner
  • 3 Песочная карта
  • 4 Единорогскан
  • 5 Netcat (NC)
  • 6 Зевс сканер
  • 7 Хранилище

Nmap

Как я уже упоминал ранее, это инструмент, который используется в первую очередь, когда речь идет о сканере портов. Его название происходит от Network Mapper, и в этом нет ничего нового, он использовался десятилетиями. С его помощью вы можете выполнять множество анализов для обнаружения открытых портов, служб, версий, операционных систем и т. Д.

птар

Angry IP Scanner

Это еще одна программа, которая действует как легкий и мощный сканер портов для Linux. Кроме того, он имеет букву GПользовательский интерфейс на основе Java что поможет тем, кто не ладит с терминалом. С его помощью вы можете получить множество информации о портах, чтобы определить имя хоста, MAC, службы и т. Д. Кроме того, он позволяет сохранять результаты в различных форматах, таких как CSV, обычный текст и XML.

Angry IP Scanner

Песочная карта

Песочная карта это сканер портов с открытым исходным кодом, созданный на основе ядра nmap. Какой-то nmap на стероидах, который был усилен, чтобы оставаться быстрым, и добавляет некоторые интересные функции. Кроме того, он поставляется с более чем 30 модулями и 400 профилями сканирования. И, конечно же, он также принимает сеть TOR и прокси-цепи.

Песочная карта

Единорогскан

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

Единорогскан

Netcat (NC)

Еще одно давнее знакомство для многих. Мощный инструмент сетевого анализа со встроенным сканером портов. Обычно это интересно даже для отладка сетей и долгое время использовался в средах Unix.

Netcat

Зевс сканер

Другой альтернативой nmap является сканер портов Zeus Scanner. А расширенный вариант с функциями поиска whois, оценкой уязвимостей, мощным механизмом сканирования и другими функциями, включая Google dorks, идентификацию брандмауэра, обход запрета IP-адресов и т. д.

Зевс сканер

Хранилище

Наконец, еще один интересный проект, о котором вам следует знать, — это другой инструмент для пентестинга с возможностью сканирования портов. Это может быть хороший инструмент для получения информации, фаззинга, сканирования и т. Д. Он основан на Python и имеет несколько методов анализа (ACK, XMAX,…), позволяет сканировать ОС, SSL и т. Д.

Хранилище


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Вы можете быть заинтересованы

Проект 5. Сканер портов

В этом курсовом проекте вы разработаете сценарий Python, который выполняет сканирование портов TCP и UDP.

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

  • Инструмент должен быть реализован в python3 и использовать scapy для генерации пользовательских пакетов. Помимо socket и argparse , использование дополнительных библиотек запрещено.
  • Входные аргументы: Инструмент должен принимать следующие аргументы, используя функцию Pyton argparse:
    • Аргументы --tcp или --udp позволяют пользователю выбрать желаемый протокол транспортного уровня для сканирования.
      Эти два варианта взаимоисключающие. Если не указано, по умолчанию должен быть TCP.
    • --цель X 9Аргумент 0009 позволяет пользователю указать либо IP-адрес, либо имя хоста целевой машины для сканирования. Если не указано, следует сканировать localhost (127.0.0.1).
    • Аргумент --port позволяет пользователю указать порт ( --port X ) или диапазон портов ( --port X-Y ) для сканирования. Любой другой формат этого аргумента должен быть отклонен. Если не указано, следует сканировать диапазон системных портов (0-1023). Только действительные номера портов в диапазоне 0-65535 должны сканироваться.
    • Аргумент --verbose указывает, что отображаются все сканируемые порты (открытые или закрытые/отфильтрованные). В противном случае печатаются только открытые порты.
  • Не проверяйте цель изначально, чтобы определить, находится ли она в сети. Это похоже на запуск nmap с опцией -Pn .
  • Для сканирования TCP-порта ваша программа должна выполнять скрытое сканирование. Вы отправляете SYN, цель может ответить SYN-ACK, если порт открыт, а затем вы отправляете RST, чтобы остановить продолжение соединения. Обратите внимание, что Linux (не ваш скрипт Python) отправит RST, потому что с точки зрения Linux операционная система не пыталась открыть это соединение, и поэтому ОС завершит его.
    • Для сканирования TCP ваши результаты должны быть похожи по стилю на результаты сканирования nmap с параметрами nmap -Pn -sS -p --reason . Другими словами, скрытое сканирование TCP порта или диапазона портов заданного целевого хоста вместе с причиной сообщения о состоянии порта определенным образом.
  • Для сканирования портов UDP ваш метод будет несколько отличаться от nmap. При сканировании портов UDP с помощью nmap действительные сообщения прикладного уровня используются для общеизвестных портов UDP. Например, UDP-сканирование порта 53 будет использовать фиктивный DNS-запрос на случай, если DNS-сервер прослушивает этот хорошо известный порт. Таким образом, nmap пытается побудить цель отправить ответ на действительный запрос на хорошо известном открытом порту. Однако в вашей программе это нужно сделать только для порта DNS (UDP 53). При проверке этого порта отправьте законный DNS-запрос для доменного имени по вашему выбору. Для зондирования любого другого UDP-порта этого делать не нужно. Для этих портов добавьте фиктивное сообщение прикладного уровня в качестве полезной нагрузки для всех ваших зондов UDP. Это означает, что большинство портов UDP, даже если их - это приложение, прослушивающее там, вероятно, будет молчать о полученном сообщении. Ваша программа пропустит некоторые открытые порты UDP и вместо этого идентифицирует их как «Отфильтрованные | Открытые», потому что не было получено ответа.
    • Для сканирования UDP ваши результаты должны быть похожи по стилю на результаты сканирования nmap с параметрами nmap -Pn -sU -p --reason , за исключением открытых портов. Обратите внимание, что вы также должны указать причину состояния каждого порта.
  • Аналогично поведению nmap по умолчанию, сканируйте запрошенные порты в случайном порядке, а не в последовательном порядке. Распечатайте результат сканирования в отсортированном порядке.
  • В верхней части файла сценария кратко опишите, как работает ваш инструмент.

Совет. Обязательно используйте argparse для обработки аргументов командной строки. Это намного надежнее, чем создание собственного кода для синтаксического анализа.

  • Документация Scapy
  • Пакетный гик: создание сетевых инструментов с помощью Scapy
  • Сканирование TCP SYN (скрытое)

Отправьте один сценарий Python, реализующий сканирование портов, в задание Canvas CMS Project 5.

Если вы используете PyCharm, отправьте , а не среду venv. Перед отправкой проверьте, можете ли вы запустить свою программу вне PyCharm в командной строке.

Запуск инструмента может привести к выводу, подобному следующему, в терминале в Ubuntu Linux.

Режим справки:

 $ ./portscanner.py -h
использование: portscanner.py [-h] [-v] [--target TARGET] [--port PORT] [--tcp | --udp] [--verbose]
Сканер портов
необязательные аргументы:
  -h, --help показать это справочное сообщение и выйти
  -v, --version показать номер версии программы и выйти
  --target ЦЕЛЬ Имя хоста или IP для сканирования
  --port PORT Порт [X] или диапазон портов [X-Y] для сканирования
  --tcp сканирование портов TCP (взаимоисключающее с --udp)
  --udp сканирование портов UDP (взаимоисключающее с --tcp)
  --verbose Подробный вывод (печатать все порты, а не только открытые порты) 

Режим версии:

 shafer@ubuntu:~/comp177/project-5-port-scanner$ ./portscanner.py -v
portscanner.py 1.0 

Сканирование по умолчанию, параметры не установлены:

 $ sudo ./portscanner. py
Тип сканирования: TCP
Цель: локальный хост (127.0.0.1)
Порт(ы): 0-1023
Сканирование TCP.... 

Сканирование TCP, неподробный режим, порты по умолчанию:

 $ sudo ./portscanner.py --tcp --target cyberlab.pacific.edu
Тип сканирования: TCP
Цель: ec2-54-148-163-48.us-west-2.compute.amazonaws.com (54.148.163.48)
Порт(ы): 0-1023
Сканирование TCP....
Порт: 22 Статус: Открыт Причина: Получен TCP SYN-ACK
Порт: 80 Статус: Открыт Причина: Получен TCP SYN-ACK
Порт: 443 Статус: Открыт Причина: Получен TCP SYN-ACK 

Сканирование TCP, неподробный режим, порты 0-30:

 $ sudo ./portscanner.py --tcp --target cyberlab.pacific.edu --port 0-30
Тип сканирования: TCP
Цель: ec2-54-148-163-48.us-west-2.compute.amazonaws.com (54.148.163.48)
Порт(ы): 0-30
Сканирование TCP....
Порт: 22 Статус: Открыто Причина: Получен TCP SYN-ACK 

Сканирование TCP, подробный режим, порты по умолчанию:

 $ sudo ./portscanner. py --tcp --target cyberlab.pacific.edu --verbose
Тип сканирования: TCP
Цель: ec2-54-148-163-48.us-west-2.compute.amazonaws.com (54.148.163.48)
Порт(ы): 0-1023
Сканирование TCP....
Порт: 0 Статус: Отфильтровано Причина: Нет ответа
Порт: 1 Статус: Отфильтровано Причина: Нет ответа
Порт: 2 Статус: Отфильтровано Причина: Нет ответа
Порт: 3 Статус: Отфильтровано Причина: Нет ответа
Порт: 4 Статус: Отфильтровано Причина: Нет ответа
Порт: 5 Статус: Отфильтровано Причина: Нет ответа
Порт: 6 Статус: Отфильтровано Причина: Нет ответа
Порт: 7 Статус: Отфильтровано Причина: Нет ответа
Порт: 8 Статус: Отфильтровано Причина: Нет ответа
Порт: 9Статус: Отфильтровано Причина: Нет ответа
Порт: 10 Статус: Отфильтровано Причина: Нет ответа
Порт: 11 Статус: Отфильтровано Причина: Нет ответа
Порт: 12 Статус: Отфильтровано Причина: Нет ответа
Порт: 13 Статус: Отфильтровано Причина: Нет ответа
Порт: 14 Статус: Отфильтровано Причина: Нет ответа
Порт: 15 Статус: Отфильтровано Причина: Нет ответа
Порт: 16 Статус: Отфильтровано Причина: Нет ответа
Порт: 17 Статус: Отфильтровано Причина: Нет ответа
Порт: 18 Статус: Отфильтровано Причина: Нет ответа
Порт: 19Статус: Отфильтровано Причина: Нет ответа
Порт: 20 Статус: Отфильтровано Причина: Нет ответа
Порт: 21 Статус: Отфильтровано Причина: Нет ответа
Порт: 22 Статус: Открыт Причина: Получен TCP SYN-ACK
Порт: 23 Статус: Отфильтровано Причина: Нет ответа
Порт: 24 Статус: Отфильтровано Причина: Нет ответа
Порт: 25 Статус: Отфильтровано Причина: Нет ответа
. ..... вывод продолжается через порт 1023. 

Сканирование UDP, неподробный режим, порты по умолчанию:

 $ sudo ./portscanner.py --udp --target 8.8.8.8
Тип сканирования: udp
Цель: dns.google (8.8.8.8)
Порт(ы): 0-1023
UDP-сканирование....
Порт: 53 Статус: Открыт Причина: Получен ответ DNS 

Сканирование TCP:

 $ sudo nmap -Pn -sS -p 0-1023 Cyberlab.pacific.edu --reason
Начиная с Nmap 7.80 ( https://nmap.org ) 18 сентября 2020 г., 11:38 по тихоокеанскому времени.
Отчет сканирования Nmap для cyberlab.pacific.edu (54.148.163.48)
Хост работает, получен пользовательский набор (задержка 0,20 с).
Другие адреса для cyberlab.pacific.edu (не отсканированы): 2600:1f14:536:b01:9cda:64e:15a9:da0
Запись rDNS для 54.148.163.48: ec2-54-148-163-48.us-west-2.compute.amazonaws.com
Не показано: 1021 отфильтрованный порт
Причина: 1021 нет ответов
ГОСУДАРСТВЕННАЯ СЛУЖБА ПОРТА ПРИЧИНА
22/tcp open ssh syn-ack ttl 128
80/tcp открыть http syn-ack ttl 128
443/tcp открыть https syn-ack ttl 128
Nmap выполнен: 1 IP-адрес (1 хост включен) просканирован за 10,61 секунды 

Сканирование UDP:

 $ sudo nmap -Pn -sU -p 0-1023 dns. google --reason
Начиная с Nmap 7.80 ( https://nmap.org ) 18 сентября 2020 г., 15:03 по тихоокеанскому времени.
Отчет сканирования Nmap для dns.google (8.8.4.4)
Хост работает, получен пользовательский набор (задержка 0,036 с).
Другие адреса для dns.google (не отсканированы): 8.8.8.8 2001:4860:4860::8888 2001:4860:4860::8844
Не показано: 1022 открытых|отфильтрованных порта
Причина: 1022 ответа нет.
ГОСУДАРСТВЕННАЯ СЛУЖБА ПОРТА ПРИЧИНА
53/udp открытый домен udp-ответ ttl 128
443/udp открыть https udp-ответ ttl 128
Nmap выполнен: 1 IP-адрес (1 хост включен) просканирован в 103.91 секунд 

Сканер портов в Python - PythonForBeginners.com

как вы можете написать небольшую и простую в использовании программу для сканирования портов, написанную на Python. Есть много способов сделать это с помощью Python, и я собираюсь сделать это с помощью встроенного модуля Socket.

Содержание

  1. Сканер портов с использованием сокетов в Python
  2. Функции сокетов
  3. Написание программы с использованием сокетов Python
  4. Заключение

Сканер портов с использованием сокетов в Python

Модуль сокетов в Python обеспечивает доступ к интерфейсу сокетов BSD. Он включает в себя класс сокета для обработки фактического канала данных и функции для сетевых задач, таких как преобразование имени сервера в адрес и форматирование данных для отправки по сети.

Сокеты широко используются в Интернете, так как они используются для любых сетевых коммуникаций, осуществляемых вашим компьютером. На сокеты INET приходится не менее 99% розеток используются. Используемые вами веб-браузеры открывают сокет и подключаются к веб-серверу.

Любая сетевая связь проходит через сокет.

Дополнительные сведения о модуле сокетов см. в официальной документации.

Функции сокетов

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

Синтаксис для создания сокета
sock = socket.socket (семейство_сокетов, тип_сокета)
Создает потоковый сокет
носок = сокет.сокет (сокет.AF_INET, сокет.SOCK_STREAM)
AF_INET
Семейство сокетов (здесь Семейство адресов версии 4 или IPv4)
SOCK_STREAM Тип сокета TCP-соединения
SOCK_DGRAM Тип сокета UDP-соединения
Преобразование имени хоста в формат адреса IPv4
gethostbyname("хост")
Преобразование имени хоста в формат адреса IPv4, расширенный интерфейс
socket. gethostbyname_ex("хост")
Получите полное доменное имя (полное доменное имя)
socket.getfqdn("8.8.8.8")
Возвращает имя хоста машины.
сокет.gethostname()
Обработка исключений
сокет.ошибка 

Написание программы с использованием сокетов Python

Как сделать простую программу сканирования портов на Python?

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

Откройте текстовый редактор, скопируйте и вставьте приведенный ниже код.

Сохраните файл как «portscanner.py» и выйдите из редактора

 #!/usr/bin/env python
импортный сокет
подпроцесс импорта
импорт системы
из даты и времени импортировать дату и время
# Очистить экран
subprocess.call('очистить', оболочка=Истина)
# Запросить ввод
remoteServer = raw_input("Введите удаленный хост для сканирования:")
remoteServerIP = socket. gethostbyname (удаленный сервер)
# Распечатать красивый баннер с информацией о том, какой хост мы собираемся сканировать
напечатать "-" * 60
print "Пожалуйста, подождите, сканируется удаленный хост", remoteServerIP
напечатать "-" * 60
# Проверяем, во сколько началось сканирование
t1 = дата-время.сейчас()
# Использование функции диапазона для указания портов (здесь будут сканироваться все порты от 1 до 1024)
# Мы также добавили некоторую обработку ошибок для отлова ошибок
пытаться:
    для порта в диапазоне (1,1025):
        носок = сокет.сокет (сокет.AF_INET, сокет.SOCK_STREAM)
        результат = sock.connect_ex((remoteServerIP, порт))
        если результат == 0:
            напечатать «Порт {}: открыть». формат (порт)
        носок.закрыть()
кроме KeyboardInterrupt:
    print "Вы нажали Ctrl+C"
    sys.exit()
кроме socket.gaierror:
    print 'Имя хоста не может быть разрешено. Выход'
    sys.exit()
кроме сокета.ошибка:
    print "Не удалось подключиться к серверу"
    sys.exit()
# Проверяем время еще раз
t2 = дата-время. сейчас()
# Вычисляет разницу во времени, чтобы увидеть, сколько времени потребовалось для запуска скрипта
всего = t2 - t1
# Вывод информации на экран
print 'Сканирование завершено через: ', всего
 

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

 $ python portscanner.py
Введите удаленный хост для сканирования: www.your_host_example.com
-------------------------------------------------- ----------
Пожалуйста, подождите, сканируется удаленный хост xxxx.xxxx.xxxx.xxxx
-------------------------------------------------- ----------
Порт 21: Открыт
Порт 22: Открыт
Порт 23: Открыт
Порт 80: Открыт
Порт 110: открыт
Порт 111: Открыт
Порт 143: Открыт
Порт 443: Открыт
Порт 465: Открыт
Порт 587: Открыт
Порт 993: Открыть
Порт 995: Открыт
Сканирование завершено через: 0:06:34.705170
 

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

Заключение

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

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

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

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