Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Задание № 3 для курса "Протоколы Интернета"

Автор: Соломеин Илья кн-202

Принцип работы

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

  • http;
  • sntp:
  • smtp;
  • pop3;
  • dns;

При проверке портов на удалённом хосте могут возникнуть проблемы с определением открытости UDP.

Программа работает многопоточно. Учитывая особености python (GIL), то прироста в скорости нет, так как программа хоть и работает многопоточно, но python позволяет только одному потоку выполняться в один момент.

Как запустить

Ввести в консоль:

python checker.py start_port end_port domain

start_port - порт, с которого начнётся скан end_port - порнт, на котором закончится скан domain - хост, на котором сканятся порты

Примеры работы

  1. На локальном хосте мной с помощью сокетов открыт один UDP и один TCP порт на 143 и 144 порту соотвественно.

Команда:

python checker.py 100 200 localhost

Вывод:

Начался скан TCP
Начался скан UDP

Скан UDP закончился. Прошло: 0:00:00.445613
Скан TCP закончился. Прошло: 0:00:11.673898

Начата проверка протоколов на TCP портах
Начата проверка протоколов на UDP портах

Закончена проверка протоколов на UDP. Прошло: 0:00:02.009329

Закончена проверка протоколов на TCP. Прошло: 0:00:04.522605

Открыт TCP порт 135. Узнать протокол не удалось
Открыт TCP порт 143. Узнать протокол не удалось
Открыт UDP порт 144. Узнать протокол не удалось

Фото из netstat -a

UDP TCP

  1. На 8000 порту поднят http сервер.

Вывод программы:

Начался скан TCP
Начался скан UDP

Скан UDP закончился. Прошло: 0:00:00.023016
Скан TCP закончился. Прошло: 0:00:00.223160

Начата проверка протоколов на TCP портах
Начата проверка протоколов на UDP портах

Закончена проверка протоколов на UDP. Прошло: 0:00:00

Закончена проверка протоколов на TCP. Прошло: 0:00:00.141773

Открыт TCP порт 8000. Протокол: HTTP

HTTP

  1. Проверяем, как работает определение протоколов на удалённых хостах

Смотрим на smtp.yandex.ru

Вывод программы:

(venv) C:\Users\Yosa Rem\PycharmProjects\task3>python checker.py 10 30 smtp.yandex.ru

Начался скан TCP
Начался скан UDP

Скан TCP закончился. Прошло: 0:00:04.048807
Скан UDP закончился. Прошло: 0:00:04.223979

Начата проверка протоколов на TCP портах
Начата проверка протоколов на UDP портах

Закончена проверка протоколов на UDP. Прошло: 0:00:00

Закончена проверка протоколов на TCP. Прошло: 0:00:00.312275

Открыт TCP порт 25. Протокол: SMTP

Смотрим на pop.yandex.ru

Вывод программы:

(venv) C:\Users\Yosa Rem\PycharmProjects\task3>python checker.py 100 130 pop.yandex.ru
Начался скан TCP
Начался скан UDP

Скан TCP закончился. Прошло: 0:00:06.086284
Скан UDP закончился. Прошло: 0:00:06.251488

Начата проверка протоколов на TCP портах
Начата проверка протоколов на UDP портах

Закончена проверка протоколов на UDP. Прошло: 0:00:00

Закончена проверка протоколов на TCP. Прошло: 0:00:00.138163

Открыт TCP порт 110. Протокол: POP3

Смотрим сервер точного времени. В команде введён специальный ключ, который не смотря на проверку открытости порта, пытается определить протокол.

(venv) C:\Users\Yosa Rem\PycharmProjects\task3>python checker.py 123 123 pool.ntp.org --hard=True
Начата проверка протоколов на UDP портах

Закончена проверка протоколов на UDP. Прошло: 0:00:00.629286

Открые UDP порт 123. Протокол: NTP

Смотрим DNS resolver от google

python checker.py 53 53 8.8.8.8 --hard=True
Начата проверка протоколов на UDP портах

Закончена проверка протоколов на UDP. Прошло: 0:00:00.046049

Открыт UDP порт 53. Протокол: DNS

About

Task № 3 for Protocols

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages