Инструменты для сканирования портов. — it-black.ru
Инструменты для сканирования портов. — it-black.ru Перейти к содержимомуСканер портов — программное средство, разработанное для поиска хостов сети, в которых открыты нужные порты.
Эти программы обычно используются системными администраторами для проверки безопасности их сетей и злоумышленниками для взлома сети. Может производиться поиск как ряда открытых портов на одном хосте, так и одного определённого порта на многих хостах.
Например, сканирование портов на отдельном хосте позволяет получить очень хорошее представление о происходящих на нем процессах.
Сам процесс называется сканированием портов или сканированием сети. Сканирование портов может являться первым шагом в процессе взлома или предупреждения взлома, помогая определить потенциальные цели атаки.
С помощью соответствующего инструментария путём отправления пакетов данных и анализа ответов могут быть исследованы работающие на машине службы, установлены номера их версий и используемая операционная система.
Инструменты для сканирования портов
Сегодня я хочу рассказать вам про 3 программы для сканирования портов.
1. Nmap
Nmap («Network Mapper») — это утилита с открытым исходным кодом для исследования сети и проверки безопасности.
Nmap использует сырые IP пакеты новаторским способом, чтобы определить, какие хосты доступны в сети, какие службы (имя и версия приложений) эти хосты предлагают, какие операционные системы (и версии ОС) там запущены, какие типы фильтров пакетов/файерволов используются и дюжины других характеристик.
Nmap поддерживает дюжины продвинутых техник для составления карты сети, заполненной IP фильтрами, файерволами, роутерами и другими преградами.
Сюда относятся множество механизмов сканирования портов (как TCP, так и UDP), определение ОС, определение версий, пинг зачисток и другое. Официальный сайт программы: insecure.org.
2.
Advanced Port ScannerAdvanced Port Scanner — это быстрая и бесплатная программа для сканирования портов. С его помощью можно быстро найти все открытые порты (TCP и UDP) определить версии программ, работающих на них. Программа содержит много удобных функций для работы с локальными сетями. Возможности программы:
- быстрое сканирование всех устройств в сети;
- определение программ, использующих найденные порты;
- удобный доступ к найденным ресурсам: HTTP, HTTPS, FTP и общим папкам;
- удаленный доступ к найденным компьютерам через RDP и Radmin;
- запуск команд для удаленного компьютера;
- Удаленное включение и выключение компьютеров.
Официальный сайт программы: Advanced Port Scanner.
3. Fpipe
Утилита fpipe позволяет создать поток TCP и дополнительно задать требуемый исходный порт. Ее удобно применять для тестового проникновения через брандмауэры, разрешающие прохождение определенных типов пакетов во внутреннюю сеть.
Работа fpipe основана на перенаправлении портов. Запускается она, заданием прослушиваемого порта сервера, порта назначения удаленного узла (порт, который требуется для достижения с внутренней стороны брандмауэра) и (дополнительно) номер требуемого локального исходного порта. Официальный сайт программы: Fpipe.
Защита от сканирования портов
Большинство брандмауэров могут защитить от сканирования портов. Брандмауэр может открыть все порты в системе, чтобы остановить показ портов тем, кто занимается сканированием.
Данный метод работает в большинстве случаев, однако, не защищает от новых техник сканирования портов, в числе которых сканирование с помощью ICMP-порта и NULL-сканирование. Некоторые провайдеры реализуют фильтры пакетов или открытые прокси-серверы, которые препятствуют исходящей активности по сканированию портов.
- Виктор Черемных
- 22 сентября, 2017
- 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
. Другими словами, скрытое сканирование TCP порта или диапазона портов заданного целевого хоста вместе с причиной сообщения о состоянии порта определенным образом.--reason
- Для сканирования TCP ваши результаты должны быть похожи по стилю на результаты сканирования nmap с параметрами
- Для сканирования портов 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
- Для сканирования UDP ваши результаты должны быть похожи по стилю на результаты сканирования nmap с параметрами
- Аналогично поведению 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.
Содержание
- Сканер портов с использованием сокетов в Python
- Функции сокетов
- Написание программы с использованием сокетов Python
- Заключение
Сканер портов с использованием сокетов в 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, использующую модуль сокета для создания сканера портов.