Создание скрипта Python Nmap для сканирования портов

Скрипт Python Nmap сканирование портов

В этой статье мы напишем Python-скрипт, который использует Nmap для сканирования портов, получения информации о работающих службах на конкретных портах и многое другое.

Еще по теме: Использование Nmap NSE для поиска уязвимостей

Создание скрипта Python Nmap для сканирования портов

Для начала вам нужно установить Nmap (в зависимости от вашей операционной системы). Если используете Kali Linux, нет необходимости устанавливать его, так как он уже предустановлен.

Лично я не столкнулся с проблемами установки на Windows. Просто не забудьте также установить Npcap.

После установки Nmap, установите библиотеку для Python:

Она позволяет выполнять сканирование сети.

Создайте новый файл Python с именем nmap_port_scanner.py и импортируйте следующее:

Чтобы получить хост из аргументов командной строки, будем использовать встроенный модуль sys:

Далее инициализируем сканер портов Nmap и начнаем сканирование цели:

После завершения сканирования, выводим некоторую статистику сканирования и эквивалентную команду с использованием Nmap:

Далее извлекаем все целевые хосты и проходим по ним:

Для каждого отсканированного хоста извлекаем имя хоста, IP-адрес и MAC-адреса, а также данные о вендоре.

Теперь давайте получим открытые порты TCP и UDP:

Отлично, мы можем получить открытые TCP-порты с помощью метода all_tcp(). Затем перебираем все открытые порты и выводим различную информацию, такую как используемая служба, ее версия, и многое другое. Вы можете сделать то же самое для портов UDP.

Результат сканирования моей домашней локальной сети:

Например, мой домашний роутер имеет множество данных для извлечения, на нем открыт порт FTP с использованием vsftpd версии 2.0.8 или более поздней. Также используется Dropbear sshd версии 2012.55 или Portable SDK for UPnP devices версии 1.6.19 на порту 1900, а также много других портов.

Для подключенных устройств обнаружено 3 машины, я смог получить IP и MAC-адреса на большинстве из них, и даже обнаружил, что 192.168.1.109 слушает PostgreSQL сервер на порту 5432.

Можете ознакомиться с официальной документацией python-nmap.

ПОЛЕЗНЫЕ ССЫЛКИ:

Ban32

Хакер-самоучка, который может взломать тостер и настроить его на отправку вам утреннего приветствия в коде Морзе.

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