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

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

Supersoup_0

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

TrUffAlDiNo

Заблокирован
29.10.2019
115
32
Питон не может пожаловаться на недостаток модулей для исследования состояния портов.
Вот названия только трёх модулей:
  • 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
Самый быстрый и простой способ - модуль socket. Для скана множества портов, принимай решение сам. Как вариант, можешь в цикле открывать потоки через threading.Thread или использовать процессы. Вариантов уйма.
 

Supersoup_0

Member
16.05.2021
12
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
Нужно понимать, что такое фильтрованные порты. Это те, что не отвечают на ICMP-запросы, по разным причинам. Можно попробовать отправлять такие эхо-запросы на конкретный хост по разным портам(например, командой ping). Из Python это легко реализуется. Если ответа не приходит, значит порт фильтрованный.
 

Supersoup_0

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

Da Vinci

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

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