Estoy usando nmap para buscar servidores habilitados para SSH. Esto es lo que nmap genera del escaneo:
Ejemplo de servidor deshabilitado SSH:
Nmap scan report for 70.0.0.109.rev.sfr.net (109.0.0.70) Host is up (0.15s latency). PORT STATE SERVICE 22/tcp closed sshEjemplo de servidor habilitado para SSH:
Nmap scan report for 255.0.0.109.rev.sfr.net (109.0.0.255) Host is up (0.12s latency). PORT STATE SERVICE 22/tcp filtered sshQuiero usar grep para exportar todos los servidores habilitados para SSH en un archivo. El archivo solo contendrá las direcciones IP de los servidores habilitados para SSH.
Por ejemplo:
1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4 5.5.5.5No pude encontrar el comando grep que hará esto. Solo necesito exportar las direcciones IP habilitadas para SSH a un archivo usando grep (o cualquier otro comando de Linux). Gracias, toda ayuda es apreciada. (Por cierto, estoy leyendo este escaneo nmap desde un archivo)
En primer lugar, probablemente desee pasar algún tiempo con la página de manual de nmap , que le mostrará opciones útiles como la opción -oG , que produce "salida greppable". Por ejemplo, cuando se ejecuta en mi red doméstica, así:
$ nmap -p 22 -oG - 192.168.1.0/24Obtengo una salida como esta:
Host: 192.168.1.1 (gw.house) Status: Up Host: 192.168.1.1 (gw.house) Ports: 22/closed/tcp//ssh/// Host: 192.168.1.3 () Status: Up Host: 192.168.1.3 () Ports: 22/closed/tcp//ssh/// Host: 192.168.1.20 (fileserver.house) Status: Up Host: 192.168.1.20 (fileserver.house) Ports: 22/open/tcp//ssh/// Host: 192.168.1.29 () Status: Up Host: 192.168.1.29 () Ports: 22/closed/tcp//ssh/// Host: 192.168.1.52 (laptop.house) Status: Up Host: 192.168.1.52 (laptop.house) Ports: 22/open/tcp//ssh///Si quiero una lista de direcciones IP con el puerto 22 abierto, puedo ejecutar:
$ nmap -p 22 -oG - 192.168.1.24 | grep 22/openQue me conseguiría:
Host: 192.168.1.20 (arcadia.house) Ports: 22/open/tcp//ssh/// Host: 192.168.1.52 (lkellogg-pk115wp.house) Ports: 22/open/tcp//ssh/// Y si quisiera solo la dirección IP, usaría awk :
$ nmap -p 22 -oG - 192.168.1.24 | awk '/22\/open/ {print $2}'Que me conseguiría:
192.168.1.20 192.168.1.52... que creo que es lo que estás buscando.