Archive for Marzo, 2006

CÓMO esnifar tramas de red

Marzo 25th, 2006

Para esnifar tramas de red se necesita inevitablemente estar conectado al mismo segmento de red que la víctima, luego dependiendo de la configuración de la red serán necesarias unas herramientas u otras.

Si el elemento que une todas las máquinas de la subred es un hub, cualquier otro aparato que no separe colisiones de red, o no tenga ningún algoritmo de control de flujo, no tenemos que hacer ningún paso adicional. Si lo que tenemos en medio es un router no hay nada que hacer, ya que un router jamás nos va a enviar tramas que no sean para nosotros (a menos que le saturemos o suplantemos la IP de la puerta de enlace, pero esa ya es otra historia). Si por el contrario tenemos un switch o un bridge, tendremos que hacer unos sencillos pasos previos antes de empezar a capturar el trafico.

Necesitaremos tener instalado primero las utilidades “dsniff” (apt-get install dsniff en sistemas Debian o derivados). Entre todas las utilidades que proporciona este paquete (os aconsejo que las echeis un vistazo) viene la que nos interesa: arpspoof, un envenenador de ARP.
El mecanismo es sencillo, necesitamos hacer creer a la máquina víctima (o a la subred entera) que nosotros somos la puerta de enlace para que nos envíe sus tramas. La manera más sencilla de hacer esto es decirle a nuestra víctima que la dirección MAC de la puerta de enlace es ahora la dirección MAC de nuestra tarjeta de red. Los paquetes IP seguirán intactos y tendrán la misma dirección IP destino (la IP de la puerta de enlace), pero los recibiremos nosotros porque vamos a engañar a el nivel de enlace de la víctima. (Para comprender todo esto hace falta contar con unos conocimientos previos de redes y sus arquitecturas).
Esto lo podemos conseguir enviando respuestas ARP no solicitadas a la dirección de la víctima indicando este cambio en la topología de la red. Por ejemplo, si ejecutamos (como root):

$ arpspoof -t «ip_victima» «ip_puerta_enlace»

empezará a enviar repetidamente respuestas ARP con nuestra MAC a esa dirección. La víctima procesará ese mensaje aunque no haya preguntado por ello, ya que el protocolo IP está diseñado para cambiar la topología de la red al vuelo y puede tratarse de un cambio real del que me conviene ser informado. El envenamiento afortunadamente es temporal (tarde o temprano se dará cuenta del engaño) y además cuando paremos el arpspoof (con CTRL-C), antes de terminar, amablemente enviará unas respuestas ARP con las direcciones correctas para dejar todo como estaba.

A partir de este momento recibiremos todo el tráfico de la máquina de la víctima y podremos capturarlo. Por desgracia, nuestro querido sistema operativo tiene la política por defecto de descartar todos los paquetes que no sean para nosotros (después de capturarlos evidentemente) para evitar ataques de denegación de servicio, y provocaremos a la víctima la sensación de que se ha interrumpido la conexión. Necesitamos entonces que Linux envíe a la puerta de enlace real todos los paquetes ajenos que recibamos. Esto lo conseguimos modificando un parámetro de configuración como root (no vale con sudo):

$ echo “1″ > /proc/sys/net/ipv4/ip_forward

Para dejarlo como estaba simplemente cambiamos el “1″ por un “0″, aunque de todas formas cuando reiniciemos nuestra máquina automáticamente se restablece al valor por defecto.

Una vez salvado este escollo, explico como capturar y analizar las tramas recibidas.
Mi utilidad favorita para capturas y analizar las tramas es Ethereal, con ella se pueden establecer opciones de captura de tráfico y facilita el análisis mediante su interfaz gráfica. Para lanzarlo ejecutamos (como root o con sudo):

$ ethereal

Dentro seleccionamos el menú “Capture” y luego “Options…” (o usamos el atajo de teclado Ctrl+K) . En la pantalla que nos aparece seleccionamos la interfaz de red que queremos usar (eth0 normalmente), nos aseguramos de que esté marcada la opción “Capture packets in promiscuous mode” para que la tarjeta de red no ignore los paquetes que no vayan dirigidos a nuestra máquina, y por último podemos elegir filtros de captura que nos pueden simplificar mucho la vida. Dependiendo del nivel de trafico de la red a la que estemos conectados, puede que lleguemos a capturar hasta 1000 paquetes por segundo, lo que provoca que nos podamos volver locos cuando los analicemos más tarde. Normalmente la mayor parte del trafico no nos interesa, como pueden ser paquetes de ICMP o del algoritmo Spanning Tree que usan los routers Cisco. Si pinchamos en el botón “Capture Filter” tendremos más ayuda sobre como crear filtros que se ajusten a lo que queremos. Por ejemplo, si quisiéramos ver todos los paquetes que envía y recibe la máquina 163.117.11.186 pero que no sean de tipo ARP escribiríamos: “not arp and host 163.117.11.186“, o si queremos capturar solo el trafico HTTP excepto el de esa máquina pondríamos: “tcp port http and not host 163.117.11.186“. Jugando con las opciones de “Display Options“, podemos mostrar directamente los paquetes según se van recibiendo. No suele ser aconsejable porque introduce bastante retraso en el proceso y puede provocar que perdamos algunos paquetes, pero muchas veces es la mejor opción. Marcando “Update list of packets in real time” y “Hide capture info dialog” veremos los paquetes capturados en tiempo real. Es muy importante que al rato o cuando encontremos lo que busquemos seleccionemos “Stop” dentro de “Capture” o pulsemos en el botón adecuado de la barra de herramientas. También podemos poner límites de tiempo o tamaño en la captura cambiando los parámetros en “Stop Capture…“.
Las combinaciones son muy numerosas e incluso podemos utilizar expresiones regulares si solo queremos recibir paquetes que contengan un determinado formato de texto. Es conveniente probar varias combinaciones hasta hacernos con el control de las más importantes.
Una vez hemos terminado de configurar las opciones de captura pulsamos sobre “Start” y comenzará a analizar todos los paquetes que reciba por la interfaz de red. En la nueva ventana que aparece podemos ver la cantidad de paquetes que se han recibido, y que más tarde podremos ver, separados por protocolo. Solo aparecen los que hayan cumplido los filtros de captura que hayamos puesto antes. Más de 1000 paquetes pueden ser demasiados si no se sabe bien lo que estamos buscando.

Cuando lo consideremos oportuno pulsamos en “Detener” (o pare solo al llegar al límite de captura que hayamos puesto) y podremos ver en una lista todos los paquetes que hemos capturado. Por cada paquete aparece en cada columna la IP origen, la IP destino, el protocolo que contiene y una breve descripción de su contenido. Por ejemplo para un paquete HTTP aparecerá la cabecera de petición o de respuesta. Normalmente y a menos que seamos unos hachas o busquemos cosas raras, solo nos interesarán los paquetes asociados a los protocolo de más alto nivel, como HTTP, FTP o MSNMS (Microsoft Messenger). Aquellas comunicaciones que vayan cifradas por SSL (por ejemplo HTTPS) nos estarán directamente vetadas y podemos ignorarlas directamente.

Para los paquetes capturados también podemos aplicar filtros de visualización para únicamente ver los que nos interesan. Por desgracia, los filtros de visualización son radicalmente distintos a los usados para la captura. En el botón “Filter” tenemos algunos predefinidos y si pulsamos en “Expression…” podemos construirnos nuestro propio filtro personalizado seleccionando unas pocas opciones. Por ejemplo, si sólo queremos ver las peticiones POST de HTTP pondríamos “http.request.method contains “POST”“.

Podríamos ahora ir paquete por paquete viendo su contenido en binario o viendo el valor de cada campo de sus cabeceras, pero afortunadamente Ethereal nos proporciona la opción de seguir la pista a una conexión TCP junto con todos los paquetes que hayan intercambiado (gracias a que cada paquete tiene un identificador único para cada conexión y un orden). Si sacamos el menú contextual sobre uno de los paquetes que pertenezcan a la conexión (por ejemplo la petición o la respuesta de un mensaje HTTP) aparecerá la opción “Follow TCP stream…“. De esta forma podremos ver en una nueva ventana todo el texto intercambiado en ambas direcciones (un color por cada dirección), cabeceras, contenido en ASCII, etc.
Recordad siempre darle a “Limpiar” despues de seguir una conexión TCP, ya que Ethereal crea por defecto un filtro de visualización para que solo muestre los paquetes asociados a dicha conexión, y puede dar la sensación de que hemos perdido el resto.

Proximamente como utilizar todo esto para fines “educativos” o “poco éticos” segun se mire.

Posted in Frikadas | 3 Comments »

Desconocida (I)

Marzo 21st, 2006

Zoe sabía que algo no iba bien. Había llamado a Naira como otras muchas mañanas, pero esta vez no pudo hablar con ella. Alguien había levantado el auricular pero nadie contestó al otro lado. Le pareció oir una respiración pero en cuanto empezó a hablar y preguntar, la línea se colgó.

Por un momento pensó en volver a llamar, pero atribuyó lo que había pasasdo a una mezcla entre un error en las íneas telefónicas y su imaginación, y lo dejó pasar. Además, la llamada no era tan importante.

Solía llamarla dos o tres veces por semana y se había convertido en una rutina. Casi nunca se contaban nada especial, pero representaba un respiro a media mañna y una excusa para mantener esa extraña relación. Zoe y Naira nunca se habían visto en persona desde que se conocieron hace ya casi año y medio.

La primera vez que hablaron fue de forma totalmente fortuita. Zoe trabajaba en el departamento de atención al cliente de LinkCortex, una conocida emperesa de telecomunicaciones. En aquel momento había más de veinte personas trabajando allí y la casualidad quiso que fuera precisamente ella quien atendiera aquella llamada.

La llamada provenía de una mujer, era difícil deducir su edad sólo por la voz, pero no parecía ni muy mayor ni extremadamente joven. Lo primero que le llamó la atenció a Zoe fue la calma y serenidad con la que interlocutora le experesaba su queja. Normalmente todas las llamadas que se atendían allí eran de gente muy enfurecida, que no sólo se conformaba con expresar su disconformidad sobre algún servicio, sino que muchas solían descargar de manera personal parte de su odio reprimido sobre el desconocido que le estaba atendiendo. Afortunadamente todos ellos habían recibido un cursillo especial para soportar esas situaciones.

Aquella inusitada serenidad le había alegrado la mañana a Zoe. Se agradecían aquellos respiros fuera el momento que fuera. Registró la incidencia en su ordenador como cualquier otra y pasó el aviso a quien correspondía.

Todo hubiera quedado en una simple reseña si no hubiese ocurrido lo que ocurrió a continuación. A los pocos minutos de aquella llamada, Zoe recibió otra. Todos los operarios podían ver el número de teléfono desde el cual se originaba la llamada por motivos de seguridad y para que una persona no provoque avisos de incidencia sobre otras líneas que no fueran suyas.

El número de teléfono de aquella nueva llamada le resultaba conocido. Contestó y casi dió un respingo sobre la silla cuando empezó a oir gritos y jaleo al otro lado. Los gritos provenían de un hombre con una voz bastante grave. Hablaba tan deprisa y en un tono tan alto que le era imposible entender nada de lo que decía, pero suponía que no eran precisamente halagos. Zoe le pidió que se calmara y que volviera a repetir todo pero más despacio. Entre tantos gritos pudo distinguir claramente a una mujer sollozando. El hombre habló un poco más despacio pero insuficiente para poder saber exactamente que quería. Solo entendió algunas palabras sueltas como “incompetencia”, “estúpida”, “inútil” y “mujer”. Después de aquello colgó.

Zoe se quedó perpleja. En los cursillos no la habían preparado para esas situaciones tan extremas. No sabía como reaccionar. ¿Debía llamar al servicio de emergencias? ¿o estaba sacando las cosas de su contexto?

Volvió a mirar la pantalla donde aparece el número de teléfono entrante, y comprobó con estupor como las dos últimas llamadas provenían del mismo número.

Posted in Relatos | 3 Comments »

Yo soy el cuerpo

Marzo 18th, 2006

Uno de los mayores complejos que tiene la gente, tanto un friki informático como cualquier otra persona, es su cuerpo. La sociedad nos ha impuesto sibilinamente unos cánones de “belleza” prácticamente imposibles de seguir si no estás predispuesto genéticamente. Continuamente por televisión nos bombardean con productos para “aumentar nuestra belleza”, “adelgazar”, “sentirnos mejor”, etc, con el mensaje subliminal de que tal y como somos ahora no estamos bien. Si uno no es lo suficientemente maduro para soportar semejantes engaños, al final acaban haciendo mella en nuestra personalidad.

Aunque no le hagamos caso a lo que pueda decir la televisión, sin darnos cuenta nos han implantado la idea de “su molde físico”. Se empieza por criticar partes de nuestro propio cuerpo que no se ajustan a “los cuerpos danone” y finalmente se acaba por menospreciarse a sí mismo: que levante la mano el que no haya pensado alguna vez que una persona del sexo contrario “es demasiado buena” para nosotros.

Nos han hecho olvidar lo que nos define como seres humanos: No tenemos un cuerpo, Somos el cuerpo (aunque no sea del deseo :P). Si rechazamos nuestro aspecto físico, nos rechazamos a nosotros mismos como personas. Cada persona es única, y eso nos convierte en especiales. Durante el transcurso de toda la historia de la humanidad hasta la actualidad en la hay más de 6 mil millones de humanos, nunca ha habido y nunca habrá alguien como nosotros, con nuestra nariz, nuestras orejas, ojos y demás zonas del cuerpo. Y lo más importante y nos hace realmente distinguibles: nuestra personalidad, forjada a través de las experiencias de la vida que nadie más ha percibido de la misma manera.

Que no se nos olvide: Quiérete a tí mismo.

Posted in Reflexiones | 1 Comment »

Desconocida (Prólogo)

Marzo 18th, 2006

Allí estaba yo, de pie, quieto, y con la mirada perdida. Quería pensar y reaccionar, pero no podía. Estaba totalmente paralizado. Aún podía sentir como la sangre me escurría por las manos. Recorría lentamente la mano para formar gotas en las puntas de los dedos y finalmente caer. Aún estaba caliente.

Las imágenes de cómo había ocurrido todo me pasaban por la cabeza, como si estuviera viendo una película en la sala de un cine y no pudiera irme. Las mismas escenas pasaban cada vez más rápidas, sin perder ningún detalle pero perdiendo su sentido. La imaginación me la estaba jugando y empezaba a distorsionar los hechos que había visto.

Estaba completamente absorto cuando sonó el teléfono. Tuvo que sonar varias veces hasta que salí del trance y comprendí que tenía que cogerlo. El teléfono era uno de esos antiguos, con marcador de botones pero timbre mecánico. El sonido repetitivo martilleaba mis oídos y fui lo más rápido que podía. Los segundos se hicieron interminables hasta que descolgué.

Al coger el auricular pude notar como la sangre lo enbadurnaba.

Me lleve al aparato al oído muy lentamente pero no dije nada. Aún estaba mudo por el shock.

Por el altavoz oí una voz femenina. Me resultaba familiar pero no entendía nada de lo que decía. En un alarde de ingenio, no se me ocurrió otra cosa que colgar con la misma calma con la que lo había cogido. Gran parte del teléfono estaba manchado ahora de un rojo oscuro.

Posted in Relatos | No Comments »

Mis zonas erróneas

Marzo 18th, 2006

Quiero ser feliz.
Quiero que los que me rodean sean felices conmigo.
Quiero sentirme bien conmigo mismo.
Quiero…

Quiero tantas cosas y afortunadamente conseguir todas ellas está en mis manos. Este blog va a ser completamente personal. Pondré mis reflexiones sobre cosas que me ocurren y veo ocurrir, pequeños relatos que escriba en aburridas horas de clase o cualquier otra cosa que se me pase por la cabeza. Todo desde mi particular y único punto de vista, porque nadie más va a ver el mundo como yo lo veo.

Tantos años he querido mantenerme a un lado de la sociedad, pasar completamente desapercibido y dar la espalda a esta cruel sociedad. El caldo de cultivo perfecto para convertirme en una persona bastante insociable y encontrar en la informática mi vía de escape perfecta. Y, por desgracia, lo he conseguido. Después de todo este tiempo me he dado cuenta de mi error. Ahora cuando necesito relacionarme con el resto del mundo me he visto incapaz de hacerlo.

Mediante este blog voy a relatar mi carrera hacia la integración social y espero que además, consiga que las personas que me lean no cometan los mismos errores que yo.

Porque no es fácil ser un friki informático hoy en dia…

Posted in Reflexiones | 4 Comments »


Marzo 2006
L M M J V S D
    Abr »
 12345
6789101112
13141516171819
20212223242526
2728293031