Informática e Internet


Hace ya unas semanas que hice una primera introducción a esta téctica, y en este post, pretendo ampliarla, empezando con algunos ejemplos, y viendo algunas cositas mas…

Para empezar, en el anterior post, comente una primera teoria, pero veamos un primer ejemplo ilustrativo:

Tomemos como ejemplo un demonio sshd escuchando en el puerto 22/TCP.
Elegimos como secuencia de barrido la sucesión 43, 6540 y 82. El puerto
22 se abrirá si, y solo si, un usuario inicializa conexiones TCP hacia
los puertos 43, 6540 y 82 en ese orden exacto. En caso contrario el
usuario recibirá como respuesta un RST/ACK cuando intenta comenzar una
conexión hacia el puerto 22.

Como podeis ver en el ejemplo ( que es tal cual el que recibi), hablan de un demonio (o servicio) que “escucha” un puerto en concreto, pero que si antes no se ha iniciado una conexión con los puertos adecuados, este puerto original permanece “ofuscado”, y el cliente recibira RST/ACK (para los que no conozcan, es un cierre de conexión), ya que segun el protocolo tcp/ip, se requiere, antes de iniciar ninguna transmisión de datos, la negociación de una conexión entre el cliente y servidor.

Bien, una vez que se ha realizado la conexión a los puertos adecuados, se podrá iniciar la conexión con el servicio ofrecido, pero que problemas existen?

Desde el punto de vista de la seguridad (algo que sabes, algo que eres, algo que tienes), esta técnica, se podría encuadrar en el primer grupo, algo que sabes, ya que sabes una cierta combinación para hacer algo. Pero un atacante con experiencia, que intentase acceder a un sistema que ha ocultado el acceso usando port knocking? si dicho atacante, fuese capaz de escuchar tráfico, bien en el lado cliente o bien en el lado servidor, sería capaz de encontrar la secuencia de conexión sin mucho problema, por eso insistire en que esta técnica de manera aislada no sirve de nada, pero en conjunto con otras técnicas de autentificación puede resultar muy últil.

Y para terminar con esta entrega, veremos un par de consideraciones de seguridad:

Si un atacante pensara resolver el problema por fuerza bruta, intentando conectarse a todo el rango de puertos, mediante combinaciones de tres en tres (suponiendo tres el numero de puertos de la combinación) la cantidad de paquetes necesarios sería tan elevada que sería muy facilmente detectable, pero si elevamos la cantidad de puertos, la complejidad del problema se dispara exponencialmente.

Otro problema viene dado por los ataques de denegación de servicio, ya que entre que un cliente (de los de verdad) se conecta a cada uno de los puertos, hay un lapso de tiempo que puede ser aprovechado por un atacante para que construyendo un paquete adecuado, tire por tierra el intento de conexión del cliente de verdad, y os dejo la pregunta en el aire, como haria esto?

Y antes de acabar, dos preguntitas para que reflexioneis sobre el tema:

¿Qué ocurre si un atacante consigue la secuencia de puertos (y suponemos que no hay más medidas de seguridad por detras)? ¿Cómo se puede resolver este problema? ¿Qué tienen que ver aquí los mutantes?

Desde el punto de vista de un sistema para detectar intentos de intrusión por scaneo de puertos, el port knocking le es indistinguible de un scaneo de puertos normal y corriente. ¿Que pasaría con los ficheros de logs del sistema de detección?

Reflexionar sobre ello y en la 3º y última entrega veremos aplicaciones de esta técnica y una conclusión final de este tema.

Enlaces: Port Knocking (I)

bueno antes de continuar con la serie de port knocking, os voy a comentar acerca de un tema que suele ser complejo cuando menos, la conversion de archivos de un formato a otro.

Normalmente tener un archivo con unos datos y pasarlos a otro formato suele requerir de alguna aplicación para realizarlo, por ejmplo para pasar de word a pdf, hay que instalar pluggins en el word o bien imprimir en la impresora denominada acrobat distiller, o para convertir de wav a mp3 hacen falta programas que no suelen ser libres y requieren codecs.

Pero hace algun tiempo leí por ahi que existian unas direcciones de correo a las que enviabas un adjunto y te lo convertian a otros formatos, lo probe pero no obtuve un resultado adecuado ya que estaban aun en fase beta.

Hoy he recibido un correo de la propia web donde lo ofertaban y debe ser que ya lo estan poniendo en marcha, os dejo el mail para que si alguno quiere probar que lo haga, yo aun no me he puesto, pero lo hare en breve…

Koolwire will convert your files for free and within seconds.
Send an e-mail attaching your files and Koolwire will convert them and send them back:

From word, ppt, excel to PDF: pdf@koolwire.com
From PDF to Word: doc@koolwire.com
From WAV to MP3: mp3@koolwire.com
From MP3 to WAV: wav@koolwire.com

If your files are bigger than 10 MB, never mind and try our web conversion procedure from koolwire.com

Check us out!

The Koolwire team

Bueno esta en ingles pero paso de traducirlo, os las apañais que es bastante intuitivo.

Este post está mas enfocado a aquellos que tienen un cierto conocimiento de redes, ya que de lo que hoy voy a hablar se trata de ocultación o más bien ofuscación de puertos en redes tcp/ip.

El otro día recibí en un mail de un boletín de seguridad de Hispasec, esta interesante técnica de “seguridad” que sin ser muy buena por si sola, combinada con otras medidas, puede ser muy efectiva.

Y puesto que es algo un poco largo, lo iré haciendo en varios artículos.

Bien, empezamos.

Para hacer una analogía os preguntare, alguno/a cuando erais pequeños no habéis tenido una cabaña, una casa club (no de alterne) o no habéis querido que entren a vuestro cuarto sin que antes hagan una combinación de golpes en la puerta, o una melodía?

En la antigüedad, cuando se reunían ciertos grupos perseguidos, habitualmente ponían una cierta combinación de golpes en la puerta para que se le pidiera una identificación, ya que si el que llamaba no empleaba dicha combinación, nadie respondía y parecería que el lugar estaba vacío, si por el contrario se conocía la combinación, alguien se asomaba y le requería una contraseña.

Bien, la técnica de port knocking se basa en esto mismo, pero trasladado a los puertos empleados por los servidores en internet.

Vamos a suponer que estamos diseñando una aplicación para un cliente, en la cual queremos que solo ese cliente pueda acceder, pero que si alguien intenta hacer un ataque contra ese servidor, y hace un scaneo de puertos, no le aparezca como activo (cerrado).

Aplicar port knocking a esta situación es sencilla, basta con que la aplicación cliente abra conexión con una secuencia de puertos establecida (combinación de golpes a la puerta), si la secuencia es válida, el servidor pasará a abrir el puerto de trabajo, mientras que sino lo es, no hará nada.

Una vez se ha establecido la conexión con el puerto de trabajo, lo normal es que se pida una identificación al cliente para comprobar su autenticidad, ya sea vía usuario-password, tarjeta u otros métodos.

Pero es esta técnica infalible? como ya dije antes, no! pero como saltarse esta barrera lo veremos en la próxima entrega (quizá la semana que viene, o la siguiente, según me de y me lo permitan mis examenes).

Mientras os animo a que penséis y no busquéis la solución en la red, ya que sino no desarrollareis vuestro pensamiento.

Hace unos cuantos años, alla por el 2001 existia una aplicación llamada AzraSMS que no era mas que un programita que se dedicaba a mandar mensajes a moviles.

Por aquel entonces los sms eran un servicio más que ofrecian las operadoras pero que la gente no utilizaba demasiado, por lo que las operadoras lo ofrecian de manera gratuita en sus paginas web y asi de paso hacian promocion del servicio y te ponian publicidad de la propia operadora o de otros anunciantes.

El caso es que el programita este, te evitaba tener que acceder a la web de la operadora, podias seleccionar entre las distintas operadoras, y apenas ocupaba espacio, y lo mejor de todo, funcionaba muy bien.

Cuando las operadoras empezaron a olerse que el servicio triunfaba, requirieron de pass y usuario para poder enviar los mensajes, por lo que el programa se fue renovando, hasta llamarse WinSMS y soportaba los usuarios para cada una de las web que daban el servicio.

A fin de cuentas, este programa simplemente le enviaba a la web los datos de la conexion y era la propia web la que enviaba el mensaje.

Pero mas tarde las operadoras caparon el servicio, retiraron las webs o las hicieron de pago, con usuarios cifrados por https y se jodio el invento, WinSMS cayo en desuso y muchos no habreis conocido un programa tan bueno como ese.

Sin embargo, hoy, me he enterado de que a traves de una web se puede volver a mandar mensajes gratis, la verdad es que esta muy bien, yo ya he mandado un par esta mañana.

Os aconsejo que lo probeis y ya me contareis.

http://www.smsanonimo.com/

P.D: lo mejor de todo, es que es totalmente anonimo, por lo que podras tambien gastar una broma a algun amiguete tuyo….

Un compañero de clase, me ha pasado desde su blog un meme curioso, acerca de como comence a usar internet… hace ya bastantes años… pero para saber mas, toca leerse el meme.

¿En qué año comenzaste a utilizar Internet?

Fue hace unos 9 años, estaba en 1º de bachillerato, o 4 de la eso, no lo recuerdo con total claridad, y salio la promocion de telefonica a traves de lo que se conocia como teleline (que lo anunciaba un primate llamado aurelio), lo pintaban todo super facil de instalar pero la realidad es que era bastante complicado, cuando el instalador no te configuraba bien los dns, te fallaba el loggin, y tras innumerables llamadas a un 902, conseguias dar con un operador, te decia todo lo contrario de lo que te habia dicho el anterior, incluso osaba decirte: -Pero quien te ha dicho que lo configurases asi?.

En fin, que cuando porfin consegui tener configurado el acceso, mi modem de 33,6 kb no daba para mucho asi que era bastante desesperante, hasta que consegui un us robotics que era la creme de la creme, de 56 kb… ufff que tiempos!

Antes de eso habia visto infovia y alguna otra linea con rdsi en la empresa de mi padre, pero lo de infovia no me termino a mi de convencer, asi que espere a un acceso más “universal”.

¿Qué tipo de conexión tenías y cuánto te costaba?

Pues como ya he dicho, 33,6 kb eran la cifra que tenia, no era gran cosa pero es lo que habia, mas tarde vinieron los 56 kb, el precio por hora no lo recuerdo exactamente, pero valia lo mismo que una llamada local, no era excesivamente caro, al cabo de un par de años, sacaron las tarifas planas, y como me lo tenia que pagar yo pero no tenia cuenta en el banco, pues me decante por una modalidad de unas tarjetas prepago, que venian con un codigo, las compraba al lado de donde iba a hacer el modulo, en bravo murillo o por ahi, no recuerdo exactamente, y valian 39 euros (vaya robo, pero por aquel entonces ya me conectaba a diario mucho tiempo)

¿Cuántas horas navegabas y qué hacías? (chatear, buscar noticias, etc)

Pues como la mayoria, al principio no navegaba mucho, un poco despues de venir de clase, y otro rato por la noche, y si necesitaban el telefono tenia que desconectarme, ya que era como una llamada de telefono y se quedaba ocupada y no podia nadie llamar ni recibir llamadas. Solia jugar al starcraft por battlenet, buscas información sobre cracks, hacking, underground y chats, y solia usar mucho los servidores de news.

Con el tiempo empece a pasar mucho tiempo en los chats, al principio usaba el irc, y luego el chat de olé, pagina que compro terra al tiempo, en ese chat conoci a un par de chicas muy majas, pero la cosa no fue a mas…

en menor medida lo usaba para trabajar, pero si compartia practicas y trabajos para clase y usaba el email con mis compañeros.

¿Qué buscador utilizabas y cuándo conociste Google?

solia usar o yahoo o altavista, eran de lo mejor por aquel entonces, luego empece a oir hablar de google, que si era muy potente que si mucha rapidez y muchos datos, no recuerdo el año exacto, pero seria por el 2000 o 2001 cuando empece a usarlo, hoy por hoy me seria casi imposible trabajar sin google (mail, docs, calendar, maps, y el buscador of course)

¿Recuerdas las páginas que visitabas?

la que mas hecho de menos era barcelonetapower.com (creo que era .com) una pagina de temas un poco underground, en la cual podias aprender a fabricar explosivos caseros, pastillas de farmacos para vender en las discos hasta ver tonterias, con el tiempo empece a usar otras como islatortuga, hastalavista, crackmanworld y alguna mas de cracks para juegos, cuando por fin consegui adsl, las paginas con e-links copaban mis favoritos, ahora la mayoria de estas paginas estan cerradas o bien por motivos legales o bien porque abandonaron los proyectos que tenian…

Ahora paso este meme a ale, txetxu, isa, y hugo.

Que bonitos recuerdos me ha traido este meme, cuanto tiempo ha pasado y que rapido, madre mia… parece mentira que hace nada me hacia llamar chemi16 en un chat, y ligoteaba con cualquiera que tuviera un nick femenino y ahora lo unico que hago es buscar frikadas e investigar para los proyectos que tengo entremanos….

Mucho se ha hablado de los pantallazo azules durante los ultimos años, con windows 95, 98 y Me eran recurrentes y no habia dia en el que no tuvieramos uno de ellos, luego con windows 2000 y xp se mejoro la cosa, y ahora con vista y 2003 server aseguraban que se habian acabado.

Bueno pues no, eso si, ahora el pantallazo no es por un fallo de acceso a una libreria o al kernel, es por un volcado de memoria fisica.

Debo añadir tambien que el sistema operativo se estaba ejecutando sobre una maquina virtual (con virtual pc 2004, de microsoft) por lo que el fallo quiza venga de ahi, al dejar la maquina en suspension, yo en mi casa con mi windows 2003 nunca he tenido uno, y con xp tampoco pero bueno, os dejo aki la prueba del delito:

el pantallazo

Un desbordamiento de memoria es una forma de sobrepasar la memoria que hay reservada para un dato, hablando en términos de informática. Cuando un programador hace un programa, no se lia a escribir código todo secuencia, lo normal es utilizar pequeñas funciones que estructuran ese código y lo hacen más legible.

A estas pequeñas funciones se les pueden enviar datos para que hagan algo con ellos, de forma que cuando un programa tiene que ejecutar una funcion se guarda la direccion de retorno (una direccion de memoria en la cual continuará el flujo normal del programa), una vez en la función esos datos deben ser comprobados para que se pueda asegurar que son los correctos. Pero muchas veces los programadores olvidamos hacer esta comprobación, entonces alguien que quiera atacar nuestra aplicación podrá hacer que ese dato que se enviaba sea modificado de forma que el programa tome un comportamiento distinto al que le habiamos dado.

Por ejemplo, supongamos que nuestra funcion se encarga de sumar dos numeros, dichos numeros no pueden ser negativos… solo sumamos números positivos, si alguien inyecta un dato erroneo, por ejemplo un numero negativo, lo que hariamos ya no es sumar sino restar…
Esto puede parecer una tonteria, pero cuando hablamos de en vez de una simple suma, que el atacante inyecte otros tipos de codigos, podría ser muy peligroso.

De hecho este tipo de ataques funcionan porque cuando el atacante inyecta algo en uno de esos datos, se asegura de inyectar lo suficiente como para machacar la dirección de retorno y poner una dirección que al propio atacante le interese, por ejemplo la de un virus, troyano, etc… de ahi que lo llamado buffer overflow sea tan peligroso… en ocasiones te tumba el sistema, en otras ocasiones se produce robo de información.

Esto siempre ha atraido mi curiosidad, no se como se hacen todas estas cosas, pero entiendo el concepto (aunque no lo haya explicado tan claramente como desearia). Sobre todo porque hoy, visitando barrapunto encontre una serie de enlaces en un comentario en el cual hablaban de algunas medidas de proteccion que tiene windows vista (y otros sistemas) para protegerse contra estos ataques.

La protección contra Desbordamientos de Buffer en Windows Vista (I de IV)

La protección contra Desbordamientos de Buffer en Windows Vista (II de IV)

La protección contra Desbordamientos de Buffer en Windows Vista (III de IV)

La protección contra Desbordamientos de Buffer en Windows Vista (IV de IV)

Todo esto no lo he escrito yo ni mucho menos, lo he sacado de: vista-tecnica

Página siguiente »