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

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Порт фильтруется или открыт

Supersoup_0

Member
16.05.2021
12
0
BIT
0
Как узнать, использую Python, открыт порт или же он фильтруется?
 

TrUffAlDiNo

Заблокирован
29.10.2019
115
32
BIT
0
Питон не может пожаловаться на недостаток модулей для исследования состояния портов.
Вот названия только трёх модулей:
  • Scapy
  • Socket
  • nmap-python

На различных сайтах, где тусуются прАгрАмЫсты (stackoverflow.com, pastebin.com, github.com) ты сможешь найти огромное количество примеров кода и информации о том, как пользоваться этими модулями.
Кроме знания и умения применять эти модули тебе потребуется знание других модулей, например для многопоточного сканироания потрубуются:
from threading import *
from concurrent.futures import ThreadPoolExecutor


Но это - не всё.
Одним из привлекательных решений является применение модуля subprocess:
from subprocess import check_call
При помощи этого модуля ты попросту сможешь подключить в свой скрипт установленную в систему программу nmap (не зависящую от модулей питона ) и пользоваться результами сканирования nmap, экспортировав в свой python-скрипт.
 

Da Vinci

Member
26.10.2019
6
0
BIT
0
Самый быстрый и простой способ - модуль socket. Для скана множества портов, принимай решение сам. Как вариант, можешь в цикле открывать потоки через threading.Thread или использовать процессы. Вариантов уйма.
 

Supersoup_0

Member
16.05.2021
12
0
BIT
0
Да это я и так нашёл вопрос не в многопоточности

Питон не может пожаловаться на недостаток модулей для исследования состояния портов.
Вот названия только трёх модулей:
  • Scapy
  • Socket
  • nmap-python

На различных сайтах, где тусуются прАгрАмЫсты (stackoverflow.com, pastebin.com, github.com) ты сможешь найти огромное количество примеров кода и информации о том, как пользоваться этими модулями.
Кроме знания и умения применять эти модули тебе потребуется знание других модулей, например для многопоточного сканироания потрубуются:
from threading import *
from concurrent.futures import ThreadPoolExecutor


Но это - не всё.
Одним из привлекательных решений является применение модуля subprocess:
from subprocess import check_call
При помощи этого модуля ты попросту сможешь подключить в свой скрипт установленную в систему программу nmap (не зависящую от модулей питона ) и пользоваться результами сканирования nmap, экспортировав в свой python-скрипт.
Мне б по конкретней, с многопоточностью всё понятно, я пытаюсь использовать библиотеку socket но по классическому гайду, даже фильтрующиеся порты(этот термин я очень долго пытался изучить пользуясь страницей nmap), программа выводит как открытые, когда я пытался воспользоваться python-nmap меня не устроила скорость, ведь обычное сканирование делает чуть больше чем мне нужно, из-за чего сильно падает по скорости.Scapy я не очень понимаю как приспособить под это, мне казалось он больше для анализа пакетов
 

Da Vinci

Member
26.10.2019
6
0
BIT
0
Нужно понимать, что такое фильтрованные порты. Это те, что не отвечают на ICMP-запросы, по разным причинам. Можно попробовать отправлять такие эхо-запросы на конкретный хост по разным портам(например, командой ping). Из Python это легко реализуется. Если ответа не приходит, значит порт фильтрованный.
 

Supersoup_0

Member
16.05.2021
12
0
BIT
0
Нужно понимать, что такое фильтрованные порты. Это те, что не отвечают на ICMP-запросы, по разным причинам. Можно попробовать отправлять такие эхо-запросы на конкретный хост по разным портам(например, командой ping). Из Python это легко реализуется. Если ответа не приходит, значит порт фильтрованный.
Да на сайте есть определение фильтрованного порта. И я даже по запросу "port scanner scapy" нашёл очень полную статью об этом, правда строчки кода из неё как-то плохо работают
 

Da Vinci

Member
26.10.2019
6
0
BIT
0
Можно без scapy. Если уж совсем просто, можно сделать ICMP-запрос через os.system(). Аргументом идёт строка команды, например ping. В ней также указывается хост, а порты можно менять в цикле(если нужно множественное сканирование). Все остальное - дело фантазии. Могу навести краткий пример реализации, если нужно.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!