Usando Nmap con Python
En python podemos hacer uso de nmap a través de la libreria  python-nmap la cual nos permite manipular facilmente los resultados de  un escaneo, ademas, puede ser una herramienta perfecta para  administradores de sistemas o consultores de seguridad informática a la  hora de automatizar procesos de penetration testing.
La ultima versión de python-nmap es la 0.3.2 y puede ser descargada desde: http://xael.org/norman/python/python-nmap/python-nmap-0.3.2.tar.gz para proceder con la instalación descomprimimos el paquete descargado,  saltamos al nuevo directorio y ejecutamos el comando de instalación   #python setup.py install
Ahora python-nmap es un modulo python que podemos invocar desde nuestros scripts o desde la terminal interactiva, por ejemplo.
Una vez hayamos comprobado que la instalación ha sido  correcta podemos empezar a hackear el planeta, o por lo menos a  escanearlo, para ello debemos antes que nada hacer una instanciación de  la clase PortScanner(), así podremos acceder al método mas importante:  scan. Una buena practica para entender como trabaja una función, método u  objeto es usar la función help(), o dir() para saber las  funciones/métodos disponibles en un modulo u objeto
ahora, si ejecutamos help(escaneo.scan) tendremos:
el método recibe tres argumentos el host(s) victima, los  puertos y los argumentos, además al final agrega como deben ser enviados  los parámetros (todos deben ser string), un ejemplo verdadero sería:
el resultado del escaneo es diccionario de estrafalaria  proporción  que contiene la misma información que devolvería un escaneo  hecho con Nmap directamente.
A los “values” como es lógico se accede a través de sus  “keys”, sin embargo hacerlo en este diccionario sería titanico debido a  su tamaño, lo que podemos hacer es listar con dir() los métodos  disponibles en el  “value” IP de el diccionario que devuelve el escaneo
con el método tcp() y pasando el valor numérico del puerto  que queremos consultar obtendremos versión del mismo ademas servidor y  estado
también podemos volver al objeto que instanciamos con la clase PortScanner() y probar sus métodos
Si desean hacer algo mas complejo todo es cuestión de  probar la variedad de métodos disponibles e integrar otras  librerías/módulos
#HappyCoding #HappyHacking