Formato de salida Nmap ip: puerto

Necesito cargar la lista de IP del archivo, escanearla y crear un formato de salida como ip:port. Intenté esto:

nmap -iL mylistwithip.txt -p 80,21 -oG -PS 80,21 | awk '/open/{print $2}' >` output.txt

pero me da solo "abrir" y eso es todo.

Si bien solo necesito puertos abiertos de la lista de direcciones IP, por ejemplo:

192.168.2.1
192.168.2.2
192.168.2.3

después de escanear puertos, muestra output.txt:

192.168.2.1:80
192.168.2.1:21
192.168.2.3:80

(solo direcciones IP escaneadas con puertos abiertos)

preguntado el 08 de febrero de 14 a las 12:02

3 Respuestas

Prueba este awk oneliner:

nmap -Pn -oG - 192.168.1.1 | awk '/open/{ s = $2; for (i = 5; i <= NF-4; i++) s = substr($i,1,length($i)-4) "\n"; split(s, a, "/"); print $2 ":" a[1]}'

Respondido 22 Jul 17, 19:07

pruebe una solución más con solo awk.

nmap -vv -iL file  | awk -F'[ /]' '/Discovered open port/{print $NF":"$4}'

Respondido 22 Jul 17, 20:07

Truco rápido y feo para lograr eso:

nmap -vv -iL mylistwithip.txt  | grep "Discovered open port" | awk {'print $6":"$4'} | awk -F/ {'print $1'} > output.txt

Con -vv la salida incluye líneas como

Discovered open port 22/tcp on 192.168.2.1
Discovered open port 80/tcp on 192.168.2.1
Discovered open port 22/tcp on 192.168.2.107
Discovered open port 80/tcp on 192.168.2.107

Primero awk selecciona los campos "dirección IP" y "número de puerto/protocolo", y el segundo corta "/protocolo".

Esto probablemente se romperá en alguna actualización futura de nmap. Utilizando -sG (salida greppable) sería una mejor idea.

Respondido 08 Feb 14, 12:02

Creo que es una sobredosis de grep y awk aquí. Esto también se puede hacer con un solo comando awk, lo agregué aquí. - RavinderSingh13

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.