Рубрики
Без рубрики

Модуль Python Nmap Полностью объяснен с помощью 8 программ

Чтобы узнать о целевой информации, такой как открытые порты, версия ОС, состояние, используемые протоколы, мы можем использовать модуль python nmap. Вы можете скачать nmap python

Автор оригинала: Team Python Pool.

Модуль Python Nmap Полностью объяснен с помощью 8 программ

Network Mapper или Nmap-это модуль в python, который используется для создания сканера открытых портов. Он более известен как ножной отпечаток или разведывательный инструмент. Разведка в терминах этического взлома означает поиск информации о цели. Цель может быть представлена в виде веб-сайта или IP-адреса. Мы проведем эту разведку с помощью модуля python nmap.

Информацией может быть название используемой операционной системы или характеристики сетевых устройств. Но основное использование Nmap – это разработка сканера открытых портов. Сканер открытых портов используется для сканирования того, какие все порты открыты и какие все порты закрыты.

Что такое Nmap в Python?

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

Мы сделаем все это с помощью python. Хотя существует инструмент GUI, самое интересное происходит только при использовании командной строки или скриптов python.

Синтаксис Python Nmap –

Чтобы использовать модуль nmap в python, нам сначала нужно установить href=”https://nmap.org/download.html”>онлайн-инструмент. После его установки нам нужно установить модуль nmap с помощью pip install python-nmap. href=”https://nmap.org/download.html”>онлайн-инструмент. После его установки нам нужно установить модуль nmap с помощью pip install python-nmap.

Обратите внимание, что мы не можем нацеливаться на какой-либо веб-сайт или IP-адрес, поскольку это незаконно, поэтому мы будем использовать локальный хост, т. е. 127.0.0.1

Операции, выполняемые с помощью Nmap Python

1. SYN-ACK Сканирование с использованием nmap python-

Когда мы хотим узнать о состоянии порта без установления полного соединения, мы выполняем SYN-сканирование. Это возможно путем отправки синхронных пакетов на каждый порт целевого хоста (для трехстороннего квитирования). Если целевой хост-сервер отвечает SYN/ACK (синхронизация подтверждена), это означает, что порт открыт. Мы сделаем программу для этого типа сканирования.

2. UDP-Сканирование С Использованием Nmap –

Пакет пользовательских дейтаграмм-это протокол без подключения для потоковой передачи видео или аудио. Он <сильный>быстрый, но <сильный>ненадежный. Мы выполняем UDP-сканирование, когда хотим найти открытые или уязвимые UDP-порты. Процесс познания состояния в основном такой же, как и выше. Существует четыре типа состояний, основанных на ответах.

Если мы получаем ответ, то состояние “ОТКРЫТО”.

Ответа нет , значит, состояние “ОТКРЫТО|ФИЛЬТР”

Для ‘ICMP port unreachable error (type 3, code 3)’, то состояние “закрыто”.

И если мы получаем ” Другие недостижимые ошибки ICMP (тип 3, код 1, 2, 9, 10 или 13)”, это означает, что состояние “ФИЛЬТРУЕТСЯ”.

3. ВСЕСТОРОННЕЕ Сканирование С Использованием Nmap Python-

Это сканирование выполняет большую тяжелую работу по сбору информации. Даже если рукопожатие невозможно с первой попытки, он будет продолжать пытаться, и если он добьется успеха, он попытается узнать о версии операционной системы и другой соответствующей информации.

4. Регулярное Сканирование С Помощью Nmap –

Обычное сканирование пытается найти 1000 наиболее распространенных сканирований и использует эхо-запрос ICMP для обнаружения хоста.

5. ОБНАРУЖЕНИЕ ОС С Помощью Nmap Python

Используя nmap, мы можем определить, на какой ОС работает цель, и обслуживать detection для устройств. Это возможно с помощью метода отпечатков пальцев стека TCP/IP. В нашей программе мы получаем много результатов, когда пытаемся обнаружить ОС, но мы покажем вам только соответствующую информацию.

6. Множественный Диапазон IP-Адресов С Использованием Nmap Python

Довольно часто мы хотим проверить службы нескольких хостов, поэтому в nmap у нас есть возможность предоставить диапазон ip-адресов для сканирования.

7. Ping Scan Сканирование С Помощью Nmap

Пингинг означает сканирование, активен ли хост в сети или нет. Чтобы проверить наличие более чем одного хоста, мы выполняем ping sweep (также известную как ICMP sweep).

8. Python nmap Асинхронный С Использованием Nmap

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

Программа Для использования Функциональных Возможностей в Python Nmap

import nmap
.PortScanner()

("""\nPlease enter the type of scan you want to run
                1)SYN ACK Scan
                2)UDP Scan
                3)Comprehensive Scan
                4)Regular Scan
                5. OS Detection
                6. Multiple IP inputs
                7. Ping Scan\n""")
print("You have selected option: ", response)

# If user's input is 1, perform a SYN/ACK scan
if response:
    print("Nmap Version: ", scanner.nmap_version())
    # Here, v is used for verbose, which means if selected it will give extra information
    # 1-1024 means the port number we want to search on
    #-sS means perform a TCP SYN connect scan, it send the SYN packets to the host
    scanner.scan(ip_addr,'1-1024', '-v -sS')
    print(scanner.scaninfo())
    # state() tells if target is up or down
    print("Ip Status: ", scanner[ip_addr].state())
    # all_protocols() tells which protocols are enabled like TCP UDP etc
    print("protocols:",scanner[ip_addr].all_protocols())
    print("Open Ports: ", scanner[ip_addr]['tcp'].keys())
    
# If user's input is 2, perform a UDP Scan   
elif response:
    # Here, v is used for verbose, which means if selected it will give #extra information
    # 1-1024 means the port number we want to search on
    #-sU means perform a UDP SYN connect scan, it send the SYN packets to #the host
    print("Nmap Version: ", scanner.nmap_version())
    scanner.scan(ip_addr, '1-1024', '-v -sU')
    print(scanner.scaninfo())
    # state() tells if target is up or down
    print("Ip Status: ", scanner[ip_addr].state())
    # all_protocols() tells which protocols are enabled like TCP UDP etc
    print("protocols:",scanner[ip_addr].all_protocols())
    print("Open Ports: ", scanner[ip_addr]['udp'].keys())
    
# If user's input is 3, perform a Comprehensive scan
elif response:
    print("Nmap Version: ", scanner.nmap_version())
    # sS for SYN scan, sv probe open ports to determine what service and version they are running on
    # O determine OS type, A tells Nmap to make an effort in identifying the target OS
    scanner.scan(ip_addr, '1-1024', '-v -sS -sV -sC -A -O')
    print(scanner.scaninfo())
    print("Ip Status: ", scanner[ip_addr].state())
    print(scanner[ip_addr].all_protocols())
    print("Open Ports: ", scanner[ip_addr]['tcp'].keys())
    
# If user's input is 4, perform a Regular Scan
elif response:
    # Works on default arguments
    scanner.scan(ip_addr)
    print(scanner.scaninfo())
    print("Ip Status: ", scanner[ip_addr].state())
    print(scanner[ip_addr].all_protocols())
    print("Open Ports: ", scanner[ip_addr]['tcp'].keys())
    
elif response:
    print(scanner.scan("127.0.0.1",)['scan']['127.0.0.1']['osmatch'][1])

elif response:
   ()
    print("Nmap Version: ", scanner.nmap_version())
    # Here, v is used for verbose, which means if selected it will give extra information
    # 1-1024 means the port number we want to search on
    #-sS means perform a TCP SYN connect scan, it send the SYN packets to the host
    scanner.scan(ip_addr,'1-1024', '-v -sS')
    print(scanner.scaninfo())
    # state() tells if target is up or down
    print("Ip Status: ", scanner[ip_addr].state())
    # all_protocols() tells which protocols are enabled like TCP UDP etc
    print("protocols:",scanner[ip_addr].all_protocols())
    print("Open Ports: ", scanner[ip_addr]['tcp'].keys())
    
elif response: 
   ,)
    hosts_list = [(x, scanner[x]['status']['state']) for x in scanner.all_hosts()]
    for host, status in hosts_list:
        print('{0}:{1}'.format(host, status))
    
else:
    print("Please choose a number from the options above")

Выход-

Приведем все возможные числа (1-4) одно за другим.

Please enter the type of scan you want to run
                1)SYN ACK Scan
                2)UDP Scan
                3)Comprehensive Scan
                4)Regular Scan
1
You have selected option:  1
Nmap Version:  (7, 80)
{'tcp': {'method': 'syn', 'services': '1-1024'}}
Ip Status:  up
protocols: ['tcp']
Open Ports:  dict_keys([135, 137, 445])
Please enter the type of scan you want to run
                1)SYN ACK Scan
                2)UDP Scan
                3)Comprehensive Scan
                4)Regular Scan
2
You have selected option:  2
Nmap Version:  (7, 80)
{'udp': {'method': 'udp', 'services': '1-1024'}}
Ip Status:  up
protocols: ['udp']
Open Ports:  dict_keys([137, 500])
Please enter the type of scan you want to run
                1)SYN ACK Scan
                2)UDP Scan
                3)Comprehensive Scan
                4)Regular Scan
3
You have selected option:  3
Nmap Version:  (7, 80)
{'tcp': {'method': 'syn', 'services': '1-1024'}}
Ip Status:  up
['tcp']
Open Ports:  dict_keys([135, 137, 445])
python nmap
python nmap
Please enter the type of scan you want to run
1)SYN ACK Scan
2)UDP Scan
3)Comprehensive Scan
4)Regular Scan
5)OS Detection
6)Multiple IP inputs
7) Ping Scan

5
{'name': 'Microsoft Windows 10 1703', 'accuracy': '93', 'line': '69394', 'osclass': [{'type': 'general purpose', 'vendor': 'Microsoft', 'osfamily': 'Windows', 'osgen': '10', 'accuracy': '93', 'cpe': ['cpe:/o:microsoft:windows_10:1703']}]}
Please enter the type of scan you want to run
1)SYN ACK Scan
2)UDP Scan
3)Comprehensive Scan
4)Regular Scan
5)OS Detection
6)Multiple IP inputs
7) Ping Scan

6
Please enter the type of scan you want to run
1)SYN ACK Scan
2)UDP Scan
3)Comprehensive Scan
4)Regular Scan
5)OS Detection
6)Multiple IP inputs
7) Ping Scan

7
192.168.1.0:up 
192.168.1.1:up 
192.168.1.10:up 
192.168.1.100:up 
192.168.1.101:up 
192.168.1.102:up
nmap python
nmap python

Надо Читать

  • Как преобразовать строку в нижний регистр в
  • Как вычислить Квадратный корень
  • Пользовательский ввод | Функция ввода () | Ввод с клавиатуры
  • Лучшая книга для изучения Python

Вывод

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

Попробуйте запустить программы на вашей стороне и дайте нам знать, если у вас есть какие-либо вопросы.

Счастливого кодирования!