Script para escanear la red en busca de servidores y servicios

Hace un par de días tuve la necesidad de escanear 3 redes completas, mas de 50 direcciones ip, en busca de servicios que corrieran en ellas. Obviamente, no iba a ingresar a cada servidor y hacer un netstat o revisar uno por uno que servicios tenia instalado, si para eso existe nmap!
Lo que hicste fue separar los rangos de ip en archivos distintos, para tener un orden y escanear la red en orden según los segmentos y luego hice un script que leia cada archivo y escaneaba la ip en busca de servicios, la salida del nmap la parseaba y lo guarda en un archivo separado por comas. En un principio el script mostraba todo en el stdout pero para que quedara más ordenado, preferí hacerlo en un CSV para poder abrirlo con oocalc.
El script me genera un archivo con la siguiente información:

host, IP, Servicio, Puerto, Version

··· Leer más ···

El script es el siguiente:

PRE0

El script necesita para funcionar archivos con el listado de direcciones ip. Los (o el) archivo(s) se deben llamar "ips.". En mi caso, tengo los siguientes archivos:
ips.192 ips.10 ips.172
Dentro de cada archivo hay direcciones del tipo 192.168.0.X, 10.0.0.X, 172.20.20.X...

$ sh scan.sh
Analizando ips.10 ...
-> 10.0.0.2 ...
-> 10.0.0.3 ...
-> 10.0.0.11 ...
- Host no activo
-> 10.0.0.20 ...
- Host no activo
-> 10.0.0.21 ...
- Host no activo
-> 10.0.0.70 ...
-> 10.0.0.72 ...
-> 10.0.0.73 ...
Analizando ips.172 ...
-> 172.20.20.2 ...
-> 172.20.20.3 ...
Analizando ips.192 ...
-> 192.168.0.55 ...
-> 192.168.0.101 ...

[...]

El script generará un output a un archivo llamado "Servidores.csv", el cual lo podemos encontrar en la misma ruta donde tenemos el script.

Comentarios (4)

Homero Simpson
Puede darme dinero....
Ariel
Muy bueno el script, anda de diez ;)
Jose lUIs Pereira
hola como estas que tengo que agregar para que tambien me tire el nombee del equipo, y por que en una red de maquinas win no me descubre todas las maquinas aunque si responden en un ping?
Zerial
@Jose Luis Pereira: Hola! Para hacer que te devuelva el nombre del equipo puedes usar un netbios resolver, por ejemplo: http://unixwiz.net/tools/nbtscan.html

Deja un comentario