______________________________________________________________________________________________________________

HackFix.ru - информационный портал,рассказывающий о событиях в области защиты информации,
взломах,инструментах аудита,программировании для пентестеров!

Программирование Python:Простой сканер открытых портов.

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

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

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

Сетевой порт

— это уникальный идентификатор сетевого сервиса на отдельно взятом компьютере.
Наряду с IP- адресом, сетевой порт требуется для организации двусторонней клиент-серверной связи по сети Интернет.
Таким образом, порт является своего рода дверью на концах сетевого подключения, через которую программа на вашем компьютере пересылает
информацию в процессе обмена данными. Сканирование портов обычно используется хакерами для взлома сети, а системными администраторами, в свою очередь, для её защиты.
Рассмотрим использование результатов работы сканера сети подробней.

CODE: ниже приведен код программы.

Пример программы запускался на версии Python 3.6.4.

import socket
import sys
mas = [20, 21, 22, 23, 25, 42, 43, 53, 67, 69, 80, 110, 115, 123, 137, 138, 139, 143, 161, 179, 443, 445, 514, 515, 993, 995, 1080, 1194, 1433, 1702, 1723, 3128, 3268, 3306, 3389, 5432, 5060, 5900, 5938, 8080, 10000, 20000]
print («**********************************»)
print («~~~~~~~~~~~~ScannerPort~~~~~~~~~~~»)
print («**********************************»)
host = input(‘Введите имя сайта или IP адрес: ‘)
print («********************************»)
print («!Ожидайте идёт сканирование портов!»)
print («———————————«)
for port in mas:
s = socket.socket()
s.settimeout(1)
try:
s.connect((host, port))
except socket.error:
pass
else:
s.close
print (host + ‘: ‘ + str(port) + ‘ port active’)
print («———————————«)
print («!!!Сканирование завершено!!!»)

CODE: рассмотрим код частями.

import socket
import sys

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

mas = [20, 21, 22, 23, 25, 42, 43, 53, 67, 69, 80, 110, 115, 123, 137, 138, 139, 143, 161, 179, 443, 445, 514, 515, 993, 995, 1080, 1194, 1433, 1702, 1723, 3128, 3268, 3306, 3389, 5432, 5060, 5900, 5938, 8080, 10000, 20000]

Создаём список в котором перечисляем те порты.

for port in mas:
s = socket.socket()
s.settimeout(1)
try:
s.connect((host, port))
except socket.error:
pass
else:
s.close
print (host + ‘: ‘ + str(port) + ‘ порт активен’)

Основная часть кода представляет собой цикл, в котором мы по очереди пытаемся приконнектиться к портам из списка mas.
Если это не удаётся выполняется команда pass которая служит заглушкой — она ничего не делает. Если же какой то порт открыт мы
печатаем об этом сообщение.

Оператор print-выводит сообщения для каждого шага выполнения программы

print («———————————«)
print («!!!Сканирование завершено!!!»)

Запуск и выполнение программы.


Ниже на скриншоте представлен результат запуска программы при указании имени сайта и IP компьютера.

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

Ваш e-mail не будет опубликован.

______________________________________________________________________________________________________________
^ Наверх