Python-Nmap es un mapeador de red que es excepcionalmente vital para manejar la auditoría de seguridad y descubrir la red. Existe como un proyecto de código abierto; por lo tanto, está disponible de forma gratuita.
Todos los sistemas operativos principales son compatibles con Python-Nmap. Sin embargo, los paquetes binarios solo están disponibles para Windows, Linux y Mac OS X. Nmap es esencial en las tareas de escaneo de puertos al manipular los resultados del escaneo de Nmap mediante programación. Aquí vamos a ver cómo instalar la biblioteca python-nmap en Linux.
Las características críticas de Nmap en las que vale la pena sumergirse incluyen:
- Detección de sistema operativo: esto implica identificar el sistema operativo host, así como las características de hardware del dispositivo de red.
- Escaneo de puertos : Nmap puede contar y enumerar el objetivo completo y los puertos abiertos
- Interacción programable con el objetivo : en Nmap, podemos escribir scripts que lleven a cabo operaciones en los dispositivos de red con Nmap Scripting Engine combinado con los lenguajes de programación Lua.
- Detección de versión : podemos establecer el número de versión de la aplicación y el nombre de la aplicación interrogando a los servicios de red ubicados en los dispositivos remotos.
- Host Discovery : este es el concepto cuando queremos encontrar los hosts en una red en particular. Por ejemplo, cuando queremos saber si determinados puertos están abiertos. O cuando hacen requests ICMP. Además, Nmap también puede enumerar hosts que responden a TCP.
Hay dos formas variadas de probar los métodos Nmap:
Método 1: el primer enfoque es escribir scripts en python y ejecutarlos en la terminal usando el siguiente comando.
root@gfg:~# python script_name.py
# script_name.py import nmap nmap =nmap.PortScanner() host = '127.0.0.1' nmap.scan(host, '1-10') print(nmap.command_line())
Método 2: el segundo enfoque consiste en probar los métodos de Nmap en una interfaz de línea de comandos. Para lograr esto, abra la terminal y ejecute el comando «python» para obtener una interfaz como la que se muestra a continuación.
Instalación de Nmap en Ubuntu (Debian):
Ejecute el siguiente comando
root@gfg:~# sudo apt-get install nmap
Instalación de Python-Nmap en Ubuntu (Debian):
También necesitamos el módulo de python llamado python-nmap. Es responsable del descubrimiento de hosts y servicios dentro de la red de computadoras. Lo hace analizando las respuestas de los hosts identificados después de inicializar el envío de paquetes específicos a estos hosts.
Hay dos formas de instalar python-nmap. El primero implica la instalación en la terminal, mientras que el segundo implica descargar la biblioteca python-nmap y realizar una instalación manual.
Método 1: Instalar Python-Nmap a través de la terminal
Por lo que ejecutaremos el siguiente comando:
root@gfg:~# pip install python-nmap
Método 2: Instalación manual de Python-Nmap
En este segundo enfoque, enumeraremos todos los pasos necesarios para descargar la biblioteca python-nmap hasta que esté lista para usar.
Paso 1: descargue la biblioteca python-nmap usando wget de la siguiente manera.
root@gfg:~# wget http://xael.org/norman/python/python-nmap/python-nmap-0.1.4.tar.gz
Paso 2: Usa tar para extraer el contenido
root@gfg:~# tar xf python-nmap-0.1.4.tar.gz
Paso 3: cambie el directorio a los contenidos extraídos
root@gfg:~# cd python-nmap-0.1.4
Paso 4: Instalación de Python-Nmap
root@gfg:~# python setup.py install
Paso 5: Confirme que Python-Nmap se instaló correctamente y está listo para usar.
root@gfg:~# python
También necesitamos un entorno virtual para separar preocupaciones entre los diferentes módulos y diferenciar los otros proyectos. Esto es importante si decide escribir secuencias de comandos de Python y ejecutarlas en lugar de la interfaz de línea de comandos.
El siguiente comando ayudará en la creación de un entorno virtual
python -m venv my_virtual_environment_name
Prueba de Nmap en la interfaz de línea de comandos
Abra la terminal presionando Ctrl + Alt + T en el teclado. Luego, escribe la palabra python y presiona enter en tu teclado
root@gfg:~# python
Para probar los diversos comandos de Nmap, primero importaremos el módulo Nmap usando el siguiente comando.
>>> import nmap
A continuación, necesitamos instanciar el escáner de puertos de Nmap de la siguiente manera
>>> nmap =nmap.PortScanner() >>> host = '127.0.0.1'
Lo que sigue es configurar tanto el puerto como el rango de host para escanear como se muestra a continuación:
>>> nmap.scan(host, '1-10')
A continuación, podemos imprimir el comando command_line utilizado para el escaneo como se muestra
>>> print(nmap.command_line())
Usando Nmap para obtener el nombre de host de 127.0.0.1
>>> nmap['127.0.0.1'].hostname() 'localhost' >>>
Si queremos obtener información de escaneo en el Nmap, haga lo siguiente:
>>> print nmap.scaninfo()
Los resultados serán como:
{'tcp': {'services': '1-10', 'method': 'connect'}}
Para escanear cada host, necesitamos ejecutar los siguientes comandos
>>> for host in nmap.all_hosts(): ... print('Host : %s (%s)' % (host, nmap[host].hostname())) ... print('State : %s' % nmap[host].state())
Del mismo modo, también podemos escanear todos los protocolos. Devuelve el protocolo para la red específica que se está escaneando.
>>> nmap['127.0.0.1'].all_protocols()
El resultado en nuestro caso fue:
[tcp]
Obtenga el estado de un host específico de la siguiente manera
>>> nmap['127.0.0.1'].state()
Se indicará si el host está activo o inactivo. En nuestro caso,
'up'
El método Keys() es responsable de mostrar información sobre todos los puertos activos mientras proporciona el rango. Lo siguiente es cómo usar el método keys().
>>> nmap['127.0.0.1']['tcp'].keys() [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>>
Validar la información del puerto de un puerto dado. Por ejemplo, para 20 en el host dado es el siguiente
>>> nmap['127.0.0.1'].has_tcp(20) False >>>
Publicación traducida automáticamente
Artículo escrito por humphreykibet y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA