SHODAN

miércoles, 27 de julio de 2011

SHODAN es un buscador muy de moda últimamente en los medios sobre seguridad informática.

SHODAN no es buscador convencional ya que con él podremos buscar máquinas en Internet que corran determinado software específico.


SHODAN no indexa por contenido, no es un buscador de palabras en documentos web, sino un buscador de banners. Realiza peticiones a algunos puertos comunes y almacena la información devuelta en las cabeceras para dicho servicio por el servidor, información que a menudo indica o identifica el software que nos atiende y otras cosas más.

Igual que podemos buscar vulnerabilidades y servidores a través de los contenidos web que se presentan con otros buscadores como Google, SHODAN nos permite hacerlo de una manera más eficiente y con más posibilidades a través de la búsqueda de servicios, muchos de los cuales no deberían estar conectados a Internet.

Con SHODAN podemos buscar cualquier tipo de software en hardware que se nos ocurra. 

- SISTEMAS SCADA

Los sistemas SCADA son aplicaciones software construidas para gestionar y procesar los datos desde una computadora de los dispositivos de planta, como controladores, sensores, actuadores, registradores... Son aplicaciones que están presentes tanto en plantas de producción como laboratorios.
El software brinda una interfaz gráfica que muestra el comportamiento del proceso en tiempo real. Podemos buscar desde servidores corriendo LabView en España hasta PLCs muy específicos y utilizados como los de Siemens.
Buscando sistemas SCADA se pueden encontrar desde paneles de control de potabilizadoras de agua pasando por un panel de control que controla una sauna de varios pisos. Cosas que no deberían estar siquiera conectadas a Internet.
Un caso curioso que leí hace tiempo fue el de un ordenador controlando un ciclotrón.






- CASAS DOMÓTICAS:

Buscando Cortexa se obtienen un montón de servidores web de control de casas domóticas con el usuario y contraseña admin/cortexa dejados por defecto, donde se pueden controlar las luces, las cortinas y ver cámaras en interiores y exteriores de casas. 
Aunque Cortexa es lo más buscado en SHODAN con respecto a casas domóticas, se puede buscar por más software también de domótica, y buscar en sus manuales el usuario y contraseña.




- CÁMARAS IP:

Se pueden buscar y ver un montón de camaras ip de muchos lugares, incluidos establecimientos comerciales, e interiores de viviendas y oficinas. 
Basta una búsqueda por ip camera o webcam, el módelo de la cámara suele ser devuelto en las cabeceras http, y luego se puede buscar el usuario y contraseña por defecto para ese modelo con Google e ir probando si no la han cambiado. La "gracia" de esto está en restringir la búsqueda por zonas, o por rangos de IP conocidos (de tu centro académico por ejemplo).







- SERVIDORES SIP Y TERMINALES VoIP:

Es increible la cantidad de terminales VoIP y servidores SIP que podemos encontrar con SHODAN, un artículo más completo sobre ataques VoIP con SHODAN aquí: http://www.elladodelmal.com/2010/05/shodan-y-ataques-telefonia-voip.html


- DECODIFICADORES:

Podemos buscar decodificadores y ver la televisión gratis en nuestro ordenador, incluidos todos los canales de pago, o apuntar la configuración para meterla en nuestro decodificador: http://www.shodanhq.com/?q=enigma2+server o http://www.shodanhq.com/?q=dreambox.





Estas son algunas de las búsquedas mas populares realizadas en SHODAN, sin contar las que buscan routers y determinados servidores webs. Mas el propio buscador tiene un apartado de búsquedas populares.
SHODAN suele ser utilizado también para realizar estadísticas, por ejemplo cuantos servidores están corriendo un determinado software del cual conocemos alguna vulnerabilidad.

Por supuesto conviene no entrar a interfaces de sistemas para los que obviamente no deberíamos estar autorizados, y conviene mucho menos jugar con estos interfaces. Más allá de los delitos en los que se puede incurrir está la responsabilidad y consecuencias de realizar estas acciones para nosotros mismos y para los demás.


Esteganografía

domingo, 10 de julio de 2011

La esteganografía es la disciplina en la que se estudian y aplican técnicas que permiten el ocultamiento de mensajes u objetos de modo que no se perciba su existencia (Wikipedia). Mientras que la criptografía intenta hacer ilegible el mensaje excepto para aquel que tiene que leerlo, la esteganografía intenta ocultar su existencia.

A lo largo de la historia ha habido trucos realmente ingeniosos para hacer trasladar un mensaje al destinatario de forma oculta, en esta entrada nos centraremos en algunas de las técnicas más usadas para ocultar información digital.
La esteganografía y el estegoanálisis conforman todo un estudio de técnicas más o menos sofisticadas y para hablar de ellas en profundidad se necesitaría entrar en ámbitos como la estadística. Esta entrada aspira a ser solo un esbozo general y además yo no soy especialista.

Técnica sustitutiva LSB
Empezaremos hablando sobre técnicas sustitutivas LSB (Least singnificant bit) en ficheros, que consiste en modificar el bit menos significativo de los bytes que conforman la secuencia de bytes de un fichero. Por ejemplo, si el mensaje a ocultar consiste en una cadena de caracteres codificada en n bytes, podemos ocultar el mensaje en un fichero de imagen RGB modificando los bits menos significativo de cada octeto en el rojo de un pixel por los bits del mensaje.

Veamos un ejemplo muy concreto obtenido de una práctica que realicé en la universidad:
Tenemos un fichero mp3, y queremos ocultar un mensaje en él. El proceso de ocultación consiste en ir cambiando el bit de menos peso de cada byte del fichero de audio por un bit del mensaje, hasta que se haya ocultado todo el mensaje. Es decir, para todos los caracteres del mensaje a ocultar, se irá cogiendo bit a bit, empezando siempre por el de mayor peso, y se irán incrustando como el bit de menos peso en el correspondiente byte del fichero de audio:

- Los primeros 2048 bytes del fichero de audio corresponden a la cabecera de un fichero mp3, la cabecera contiente información sobre el tamaño, tipo de fichero... Estos primeros 2048 bytes no se alteran y pasan directamente al fichero resultante.
- Los dos primeros bytes a ocultar, aunque no forman parte, propiamente hablando, del mensaje, indicarán el nº total de bytes del mensaje que se va a ocultar.
- Para todos los caracteres del mensaje de texto, se irán tomando grupos de dos bits, que sustituirán a los dos bits de menos peso del correspondientes byte del fichero de audio y se dejará el siguiente byte de éste sin modificar.
Este proceso se repetirá hasta ocultar todos los bits del fichero que contiene el mensaje. Es decir, cada byte de texto se ocultará en 8 bytes del fichero de audio, pero de éstos, sólo 4 ocultarán bytes y los otros 4 permanecerán sin alterar.

En la siguiente figura se muestra gráficamente el proceso:



Para obtener el mensaje se irán obteniendo, de dos en dos bits, los bits ocultos según el método anterior y se reconstruirá el mensaje, que se irá almacenando en el fichero resultante.

He subido los ficheros fuente escritos en C y compilados con GCC al siguiente enlace para quien quiera echarlos un vistazo o probarlos http://www.megaupload.com/?d=H54D1W4.

Alterar los bits menos significativos de los bytes que conforman un pixel o un mp3 no es detectable por la vista ni el oído humano respectivamente, cualquiera puede hacer la prueba con los programas que he subido.
La detección de técnicas sustitutivas consisten en algorítmicos estadísticos que usan estimadores y test basados en distribuciones para estudiar frecuencias en los valores de los bytes. Cuanto menos sea la información a ocultar y se hayan elegido de manera más aleatoria los bits a modificar, más difícil es la detección. De hecho, los programas actuales de estegoanálisis funcionan bastante mal.

Esteganografía de red
Consiste en ocultar información a nivel de protocolo de comunicación, algunos de los cuales permiten introducir cierta redundancia, que nos facilitan la elaboración de un canal secreto.

Uno de los algoritmos esteganográficos puede ser la manipulación de los campos sobrantes en las cabeceras del paquete. Con frecuencia no todos los campos en la cabecera de un protocolo son necesarios a lo largo de toda la transmisión, como por ejemplo el campo de FLAGS (banderas) del protocolo TCP. Incluso se puede ocultar información en los campos obligatorios para hacer más difícil su detección.

Una técnica muy útil que además permite enviar datos a redes protegidas es la siguiente:
El destinatario se encuentra en una red protegida y puede recibir solamente datos de cierto servidor, pero no establecer conexión con el remitente. El remitente puede enviar el paquete con números IP falsos poniendo como dirección de origen la del destinatario, y números falsos como puertos de origen y de destino, y oculta el mensaje a enviar en el segmento SYN.
Envía este paquete a un servidor que responde con el segmento SYN/RST o SYN/ACK junto con los datos modificados contenidos en un segmento SYN aumentado en uno a la dirección falsa de origen, que es como hemos dicho la dirección del destinatario, y este recibe el paquete y descifra el mensaje.

Un programa sencillo que nos permite ocultar información en protocolos de comunicación es la aplicación covert_tcp, creada por Craig H. Rowland.