He encontrado esta página sobre herramientas de seguridad para linux
http://www.linuxalbacete.org/articulos/hs/hs.htm
De ella y alguna otra que luego citaré saco lo que voy a escribir sobre nmap: escaner de puertos abiertos.
También se citan otras utilidades que dejo para otro momento:
portsentry: detector de escaners.
queso: para averiguar el sistema operativo de un host remoto.
Nessus: con nessus se puede comprobar los ataques que sufre nuestro sistema.
nmap es muy sencillo de utilizar con tan solo escribir:
nmap host (el nombre del host será el host del que queramos descubrir los puertos que tiene abiertos)
Ejemplo:
nmap localhost
1 Starting nmap V. 2.54BETA30 ( www.insecure.org/nmap/ )
2 Interesting ports on localhost (127.0.0.1):
3 (The 1545 ports scanned but not shown below are in state: closed)
4 Port State Service
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
80/tcp open http
110/tcp open pop-3
443/tcp open https
5 Nmap run completed—1 IP address (1 host up) scanned in 78 seconds
Los números en negrita no aparecen en la pantalla de información de nmap, solamente se utilizan para dar una explicación:
1 Versión de nmap y página web junto con la fecha y la hora actual.
2 En la segunda línea aparecerá el nombre del sistema y la ip utilizada por el sistema que estemos comprobando.
3 El número de puertos escaneados, esta línea suele terminar con la palabra “closed“, que indica que los puertos cerrados no se muestran. Si aparece la palabra “filtered“, es que hemos intentado averigurar los puertos abiertos en un host, que actua con un cortafuegos.
4 Apartir de aquí aparecerán los puertos, la clase de protocolos que utilizan su estado y el tipo de servicio que suministran.
5 Y en la última línea vemos información sobre cuántos host hemos realizado el escaner.
Si queremos hacer un escaner sobre una red al completo, el comando nmap sería:
nmap 192.168.0.0/24
Y nos aparecerían los host conectados a esa red, cada uno con los puertos que tuviera abiertos y la última línea nos mostraría el número de hosts sobre los que nmap ha actuado.
Parámetros que se le pueden añadir a nmap para que dé más iformación:
nmap -O localhost
startrek:/home/foo# nmap -O localhost
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2005-06-09 21:55 CEST
Interesting ports on gnuLinEx (127.0.0.1):
(The 1653 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
9/tcp open discard
13/tcp open daytime
37/tcp open time
111/tcp open rpcbind
119/tcp open nntp
631/tcp open ipp
761/tcp open kpasswd
815/tcp open unknown
6969/tcp open acmsoda
10000/tcp open snet-sensor-mgmt
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X
OS details: Linux 2.5.25 – 2.6.3 or Gentoo 1.2 Linux 2.4.19 rc1-rc7), Linux 2.6.3 – 2.6.8
Uptime 0.134 days (since Thu Jun 9 18:42:32 2005)
Nmap finished: 1 IP address (1 host up) scanned in 2.954 seconds
Para utilizar el comando nmap -O lo he tenido que escribir como superusuario, no me dejaba como usuario normal, porque no tenía los suficientes privilegios. Las líneas últimas nos muestran los detalles del sistema operativo que estamos escaneando. En mi caso un linux con kernel 2.6 y la hora en la que comencé la sesión actual.
Si nmap no puede averigurar el sistema operativo se puede utilizar la herramienta mencionada arriba: queso (es decir, qué sistema operativo tienes?) En otro momento le echaremos un vistazo a queso.
Sigamos con nmap.
Ahora queremos averiguar los host de nuestra red que están funcionando y para ello emplearemos la herramienta ping, bien conocida por todos los que se dedican a esto de las redes, pero combinada con nmap. Así
nmap sP 192.168.0.1255
La s minúscula tras el guión, es decir el parámetro -s le indica a nmap la acción de pasar desapercibido, en modo silencioso “stealth”, y la P que mande un ping a todos los equipos que hay en una red, desde el 1 al 255. Y así se nos mostrarán todos los host encendidos, que son los únicos que nos responderán.
Si utilizamos nmap sin el parámetro -s, normalmente los host registrarán nuestro escanéo. Hay diferentes parámetros para hacer que nuestro escanéo envíe paquetes TCP sin determinados testigos o “flags” que nos reconozcan, se puede averigurar más en la página de manual de nmap.
También podemos utilizar el parámetro -D, que nos permitirá esconder la identidad desde el host que estamos mandando el escanéo, haciendo creer que somos otros host del que realmente somos. El comando completo sería:
#nmap -p 25,53 -PO -D 112.12.12.12,111.11.11.11 192.168.0.1
Con estos parámetros nmap realizaría un escanéo sobre los puertos 25(SMTP) y el 53(DNS) que nos diría el sistema operativo y con el parámetro -D el host escaneado pensaría que se lo manda el host 112.12.12.12 y el host 111.11.11.11
Para trabajar con nmap se puede utilizar la consola, pero también hay una versión en el entorno de KDE, que nos permite trabajar con él en modo gráfico. Aquí lo podéis encontrar: http://pages.infinit.net/rewind/
Todo esto lo he sacado de la página maestrosdelweb. Se puede consultar también la página de Linuxalbacete, donde se pueden encontrar más herramientas de seguridad de linux, como he dicho antes.
Y en softonic podéis bajar la versión para windows.
Supongo que tendrá las mismas utilidades que la de linux, pero no la he probado.