Lejos de buscar explotar vulnerabilidades asociadas a determinado sistema operativo para conseguir acceso a un equipo conectado a la red me gustaría dejar constancia de cómo conseguir dicha información.
El motivo es que esta mañana hemos perdido una hora a la caza y captura de un «ventanuco» díscolo en el instituto que tenía activado el servicio DHCP y que cada vez que se conecta provoca fallos espúreos en la subred de profesores.
Procedimiento a seguir
Una vez que contamos con la dirección IP del equipo cuyo sistema operativo queremos conocer bastará hacer uso de nuestro querido nmap ejecutando desde la terminal un
sudo nmap -O NN.NN.NN.NN
donde
- NN.NN.NN.NN es la dirección IP del equipo cuyo sistema operativo deseamos conocer.
Así de sencillo y así de fácil pero la verdad es que resulta de utilidad a la hora de discernir el sistema operativo que se encuentra ejecutándose en cada máquina evitando paseos innecesarios por los pasillos ni molestar a los compañeros mientras trabajan.
Pregunta de trivial
Lo mismo cuando termine de escribir este artículo me ponga a buscar la solución y, con un poco de suerte, puede que la encuentre y todo pero, no me resisto a pediros ayuda.
¿Alguien sabe cómo detectar los servicios que ofrece determinada máquina a partir de la IP de la misma?
La idea es no tener que visitar los distintos equipos «sospechosos» de estar ofreciendo el servicio DHCP (que entra en conflicto con el servidor «oficial») y poder descartarlos cómodamente desde el sillón del departamento.
Imagino que la respuesta podría ir en base al puerto utilizado por DHCP y la comprobación de puertos abiertos en las máquinas remotas pero si alguien puede confirmarlo y/o desmentirlo se lo agradecería enormemente.
Voy a investigar un rato, si encuentro la respuesta (y os interesa) prometo publicar un post sobre el tema.
Hola,
Lo que describes se puede hacer con nmap, de hecho, esa es su función.
– Identifica puertos abiertos en una computadora objetivo.
– Determina qué servicios está ejecutando la misma.
Si has de hacerlo en Windows, puedes usar la herramienta gratuita de Radmin, Advanced Port Scanner v1.3.
http://www.radmin.es/download/utilities.php
Recuerda que por que un servidor tenga el puerto 22 abierto, no quiere decir que tenga un servidor de ssh, por ahí puede tener un servidor de correo, http o voz.
Es una mala práctica asociar números de puerto a servicios, lo mejor es asegurarse por si la máquina que estás «espiando» no es «standard».
Saludos
Me gustaMe gusta
Hola,
Lo que describes se puede hacer con nmap, de hecho, esa es su función.
– Identifica puertos abiertos en una computadora objetivo.
– Determina qué servicios está ejecutando la misma.
Si has de hacerlo en Windows, puedes usar la herramienta gratuita de Radmin, Advanced Port Scanner v1.3.
http://www.radmin.es/download/utilities.php
Recuerda que por que un servidor tenga el puerto 22 abierto, no quiere decir que tenga un servidor de ssh, por ahí puede tener un servidor de correo, http o voz.
Es una mala práctica asociar números de puerto a servicios, lo mejor es asegurarse por si la máquina que estás «espiando» no es «standard».
Me gustaMe gusta
Toda la razón del mundo compañero (tanto por la sugerencia en el uso de nmap como por la afirmación de que determinado servicio no tiene por que estar ligado a un puerto fijo)
No obstante, y más en «mundo ventanuco» (por la tendencia de los «administradores» de estas máquinas a usar el siguiente, siguiente en las instalaciones) suele ser práctica habitual encontrar una correspondencia directa entre servicio y puerto.
Tendré en cuenta que es una «condición necesaria pero no suficiente» y me aseguraré convenientemente del tema.
¿Conocemos alguna herramienta que automáticamente te diga el servicio que «escucha» en cada puerto? (preferiblemente para Linux que ya no tengo, ni quiero, «ventanuco»)
Me gustaMe gusta
No se si no nos entendemos…
Si lo que quieres es una lista de puertos abiertos de una máquina, junto con los servicios que está usando en cada puerto, la herramienta es nmap.
El funcionamiento supongo que será como el de la mayoría:
nmap -options ip_remota
Con esto obtendrás algo parecido a esto:
Bash$ nmap 192.168.0.2
Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2004-10-20 02:13 CEST
Interesting ports on 192.168.0.2:
(The 1654 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
9/tcp open discard
13/tcp open daytime
22/tcp open ssh
37/tcp open time
80/tcp open http
349/tcp filtered mftp
6000/tcp open X11
Nmap run completed — 1 IP address (1 host up) scanned in 2.529 seconds
creo que queda bastante claro)
Si eres más de los de entorno gráfico(no lo probé, pero parece bueno):
apt-get install nmapfe
Y si así no te convence, siempre puedes(en este caso) espiar la red con Wireshark mientras haces una petición dhcp en la red(si te llega un dhcpoffer con una ip que no corresponde al servidor, ya tienes el «topo»).
Pd: Vigila con las máquinas virtuales que hay mucho listo que hace pruebas 😉
Saludos
Me gustaMe gusta
Perfectamente compañero.
Simplemente se me fué la pinza pues no recordaba la salida de nMap (no se encuentra entre las herramientas del día a día y mi cabeza no anda fina últimamente 😦 )
Muchas gracias por las molestias que te has tomado y disculpa el «despistazo»
Me gustaMe gusta
De nada hombre, también hay que colaborar un poco de vez en cuando,que aprendo mucho leyendo el blog 😉 .
Saludos
Me gustaMe gusta
Pues si el nivel de la «audiencia» es como el tuyo me van a empezar a temblar las piernas 😉
Visto el control que tienes sobre redes te «fichaba» ahora mismo para publicar artículos sobre el tema en el blog jejejeje
Me gustaMe gusta
nmap también permite escanear rangos, así puedes escanear todas las máquinas del instituto
Me gustaMe gusta
Si a eso unimos que admite indicar el puerto que me interesa escanear ( para agilizar el proceso y a riesto de que @Surrealist se nos pueda enfadar por asumir puerto UDP 67=DHCP 😉 ) sería una buena forma de tratar de localizar la dichosa máquina.
Gracias @lorquiana
Me gustaMe gusta
Si necesitas algo sólo has de pedirlo, aunque el tema de blogs en general no me llama.
Si aquí aprendemos todos, yo no sabía que iba por el 67 UDP 😀
Saludos
Me gustaMe gusta
Según Moco$oft (no digo que sean ellos los que han establecido ESTE estándar) así debería ser. Por si te hace ilusión la solicitud de los clientes es a través del UDP 68 😛
Por cierto… gracias por el ofrecimiento sobre todo teniendo en cuenta tu adversión a la publicación (una pena teniendo en cuenta tu valía 😉 )
Me gustaMe gusta
Yo para evitarme problemas, si tengo dudas sobre un protocolo intento buscar el RFC(Request For Comments).
En este caso, nos interesa el RFC2131(Dynamic Host Configuration Protocol), del que extraigo:
«DHCP messages from a client to a server are sent to the ‘DHCP server’ port (67), and DHCP messages from a server to a client are sent to the ‘DHCP client’ port(68).»
Y ya de paso que lo he mirado….
– Web oficial RFC: http://www.rfc-editor.org/
– Web RFC español: http://www.rfc-es.org/index.php
Saludos
Me gustaMe gusta
Lo dicho, eres un «crack» (y, aunque no te lo creas, es complicado que yo diga esas cosas).
Gracias por la bibliografía detallada de DHCP y el consejo sobre el uso de RFC para futuras investigaciones.
Me gustaMe gusta
al hilo de las ip’s les recomiendo
apt-get install ipcalc
Me gustaMe gusta
En mi instituto pasa exactamente igual, debe de haber por ahí alguna máquina corriendo un servidor dhcp que sirve ip’s y máscaras erróneas por dhcp que no tienen salida a internet. Y es más evidente cuando a veces sirve el dhcp bueno y coges red y otras veces el dhcp malo y no coges red. Debe tener en cuenta que quizás no sea una máquina en particular sino alguno de los switchs o de los routers de las aulas. No se, no conozco muy bien la topología de los instituos andaluces, como alumno no me han dejado cotillear demasiado.
Me gustaMe gusta
esta entrada ya es algo antigüa pero aún así me anímo a comentar:
la opción del nMap que buscas es -sV para saber los servicios que corren en una ip determinada….
#nmap -sV -PO -p xxx nnn.nnn.nnn.nnn
donde:
nnn.nnn.nnn.nnn es la ip
xxx el puerto deseado
ejemplo… tomaré la web miarroba.com:
#nmap -sV -PO -p 80 miarroba.com
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd
como podemos ver tiene un servidor Apache corriendo en el puerto 80
más información: $nmap –help
Me gustaMe gusta
Dice el refrán que nunca es tarde si la dicha es buena 😉
Gracias @Akino
Me gustaMe gusta