Descubriendo la red con Python y Nmap – Parte 2
Seguimos con nuestra segunda parte de Python y Nmap, aunque no sé yo si seguir o no, todavía espero mi jamón de la 1º parte 😛
En esta segunda parte vamos a seguir aprendiendo más opciones que nos trae la librería de Python-Nmap y en la siguiente realizaremos un pequeño script que nos solucione el descubrimiento de una red para sacar los equipos vivos y no tener que ir limpiando la información sobrante 🙂
Después de realizar nuestros primeros escaneos, nos puede interesar saber qué ha realizado nmap gracias a command_line()
results = nm.scan('192.168.0.0/24') nm.command_line() u'nmap -oX - -sV 192.168.0.0/24'
Si escaneamos un rango de red gracias a all_hosts() podemos ver cuales están levantados y cuales no, el cual usaremos en el siguiente post para nuestro script que nos guardará los hosts en un fichero para facilitarnos los siguientes escaneos.
nm.all_hosts() [u'192.168.0.1', u'192.168.0.101', u'192.168.0.102']
Otra cosa muy interesante es poder pasarle los argumentos que queramos al escaneo en el parámetro arguments.
results = nm.scan('192.168.0.1', arguments="-sSV -A -n -T2"
También podemos realizar escaneos asíncronos mediante PortScannerAsync() al igual que se hacía con PortScanner() pero con un parámetro más de callback donde definimos la función de retorno.
nma = nmap.PortScannerAsync() def callback_result(host, scan_result): print '------------------' print host, scan_result nma.scan(hosts='192.168.1.0/30', arguments='-sP', callback=callback_result) while nma.still_scanning(): print("Waiting >>>") nma.wait(2)
Con esto ya podemos comenzar a hacer nuestras herramientas que nos ayudarán en nuestras labores de pentester.
En el próximo capítulo veremos como guardar los hosts en un fichero para saber las ips de una red y poder luego usarlas en otros escáneres de vulnerabilidades o de lo que nos plazca.
Sigo esperando el jamón… no digo nada y lo digo todo… que sin alimentarse uno no puede programar 😉
Happy Hacking.