NMAP para escanear ip y puertos desde un archivo

1

Quiero escanear la IP y el puerto desde un archivo como se muestra a continuación:

192.168.1.2 443
192.168.2.100 8443
192.168.3.99 80
192.168.4.11 443

¿Cómo puedo hacer eso? Sé que hay una opción para tomar IP de un archivo usando -iL pero, ¿cómo se puede hacer con IP y puerto? Como cada IP tiene un puerto específico.

    
pregunta ghostrider 13.07.2018 - 20:57
fuente

3 respuestas

0

Solo puedes hacerlo usando un script de shell, como este:

#!/bin/bash

# declare an array for ip's
declare -a ips=("192.168.1.2" "192.168.2.100" "192.168.3.99" "192.168.4.11")

# declare an array for ports
declare -a ports=("443" "8443" "80" "443")

# now loop nmap through the above array combos
for (( i=0; i<=3; i++ ))
do
   nmap $ips[i] -p $ports[i]
done

¡O podría hacer lo mismo en C / C ++ usando el comando del sistema!

    
respondido por el Chris Tsiakoulas 13.07.2018 - 23:33
fuente
3

A partir de Nmap 7.70, esta no es una característica que el equipo de desarrollo de Nmap esté interesado en desarrollar. La discusión completa se puede encontrar en Issue # 1217 , pero la mejor práctica actual es escanear todos los puertos deseados contra todos los objetivos.

EDITAR: A todos los que estén haciendo un script de shell grande para escanear cada puerto y host individualmente, estarán aquí todo el día esperando a que termine. Acumule todos los puertos y destinos únicos y escanéelos de una sola vez. Terminará escaneando algunos puertos en algunos sistemas que no pretendía, pero en general no tomará tanto tiempo. Y como todo lo demás, encaja en una línea de Perl:

perl -lanE'END{$,="\n";open$i,">ips";say$i keys%h;exec"nmap -iL ips -p".join(",",keys%p)}$h{$F[0]}=$p{$F[1]}=1' input.txt
    
respondido por el bonsaiviking 13.07.2018 - 21:24
fuente
0

Simplemente lo envolvía en bash y lo llamaba bueno. Usar el formato de archivo que especificó anteriormente funcionaría.

#!/bin/bash

if [ ! -f $1 ] 
then
    echo "Error: Must supply file"
    exit
fi 

while read -r line 
do
    host='echo $line | cut -d" " -f1'
    port='echo $line | cut -d" " -f2'
    echo "Scanning $host : $port " 
    nmap $host -p $port
done < $1
    
respondido por el Joe M 13.07.2018 - 23:58
fuente

Lea otras preguntas en las etiquetas