El script pasa la red y mascara de la red que se va a analizar, se define unos puertos de los cuales se quiere saber si están abiertos y se usa la librería nmap con unos argumentos para detectar los host de la red.
A continuación
#! /usr/bin/env python2. 7#seimporta python-nmap import nmap #Deipcalc se importa IP y Networkfrom ipcalc import IP, Network#Se crea la instancia de nmap para escanear puertosescanear =nmap . PortScanner ( )#Se defineuna tupla conlos puertos puertos = ("21","22","25","53","80")#Se definelos argumentosque nmap va autilizar argumentos = "-sS -sV -O"#Se crea la función escaneo donde se le pasa los host y puertos.def Escaneo( host, puertos ):#Se hace un recorrido por puertofor puerto inpuertos :try :#Se verifica que el puerto esté abierto en el host#Si lo está se muestra, si no se continua con el siguiente puerto.escanear . scan( host, puerto , argumentos )if escanear [ host] ['tcp '] [int ( puerto )] ['state'] == "open":( "Host: %s, Puerto: %s,abierto " %( host, puerto ))except KeyError:pass if __name__== " __main__":import sys try :#Escaneo( hosts, puertos )#Se recorre los host de la red, y se llama a la función escaneo que evalua que puertos están abiertos#encada host.for x in Network( '192.168.52.0/24'):host =str( x)Escaneo ( host, puertos )except KeyboardInterrupt:sys . exit( )
El resultado de ejecutar el script es el siguiente:
Host: 192.168.52.2
Host: 192.168.52.2
Host: 192.168.52.9
Host: 192.168.52.9
Host: 192.168.52.17
Host: 192.168.52.17
Host: 192.168.52.33
Host: 192.168.52.33
Host: 192.168.52.65
Host: 192.168.52.65
...
No hay comentarios:
Publicar un comentario