Cuando implementamos una restricción acerca de qué comunicaciones están permitidas y cuáles no, generalmente consideramos sólo las comunicaciones “estándar”, eso quiere decir: enviar mails por smtp, chat por irc, etc. La mayoría de los firewalls y otros dispositivos de seguridad están preparados para analizar y filtrar este tipo de protocolos, en base a los puertos y los mensajes que cada uno utiliza.
Pero, como buenos expertos en seguridad, debemos pensar: ¿Qué sucede si se utilizan otros medios?. Es decir, si se envía y recibe información utilizando canales de comunicación no convencionales. Se volvería muy difícil detectar estas actividades. A ésta práctica se la conoce como “Covert Channels” (o “Canales Encubiertos”).
Pensemos en el siguiente escenario:
Estamos conectados a internet y necesitamos enviar información importante. El problema es que, dicha conexión permite solamente visitar una lista de sitios web que no nos sirven de nada. En primer lugar, debemos analizar qué podemos hacer además de visitar esas páginas aburridas. Existen muchos protocolos necesarios para el buen funcionamiento de internet, los cuales suelen ser permitidos, porque no representan ningún riesgo (aparentemente).
Para esta prueba de concepto hemos seleccionado el protocolo ICMP, debido a que es el más utilizado por los administradores y las herramientas destinadas a comprobar conectividad, tiempos de respuesta y otros aspectos de la red. Además, los paquetes ICMP tienen la particularidad de contar en su estructura con un campo opcional, reservado para datos.
Este campo suele llenarse con datos aleatorios, para aumentar el tamaño de los paquetes y verificar los tiempos de respuesta con distintas cargas de información. Es decir, tenemos un campo que permite llevar datos y que, como se espera que sean datos aleatorios sin importancia, no suelen ser comprobados por los dispositivos de seguridad… 😉
La siguiente pregunta a responder es: “¿Cómo podemos utilizar este campo para enviar información?”. La forma más entretenida y educativa para hacer esto es crear nuestra propia herramienta que nos permita enviar paquetes ICMP personalizados. Para programarla, vamos a utilizar Scapy, una librería del lenguaje de programación Python, muy fácil de utilizar, que nos permite construir paquetes de red.
En la próxima entrega de este artículo, analizaremos la forma más simple de escribir esta herramienta, con código fuente incluído.
Para más información:
ICMP: http://es.wikipedia.org/wiki/Internet_Control_Message_Protocol
Python: http://www.python.org
Scapy: http://www.secdev.org/projects/scapy/
¡Nos vemos en la próxima!
Fabian Portantier
www.portantier.com
[…] Fuente Category : Guías Tags : escuela, fabian, guias, hacking, portantier 0 Comm facebook Twitter del.icio.us digg stumbleupon Related Posts Escuela de Hacking […]
Contestado en el otro post.
salu2!
hola, si conoces una libreria alternativa a Scapy para C++ o Java por favor decimela, gracias!
[…] Buenos Aires y presentó sus nuevos productos y socios de negocio. Y como cierre de la semana, Fabián Portantier comenzaba sus clases en la Escuela de Hacking de RedUSERS con Covert Channels par… y 2. A full con la industra argentina, anunciamos la disponibilidad del Nokia N8, el smartphone de […]
Hola Rodrigo, excelente pregunta!
Para tomar los mensajes ICMP podemos utilizar el programa que aparece en la 2da parte de este artículo. Aunque también podemos tomarlos con cualquier capturador de tráfico como tcpdump o ngrep.
Y puede hacerse con cualquier sistema operativo.
salu2!
Fabian, lo que no entiendo es una cosa, supongamos que hacemos el proceso de desmembrar un mensaje, encapsularlo en paquetes ICMP y mandarlo a un host en particular a la red, burlando asi firewalls, etc etc. Ese host destino? que programa deberia usar para poder guardar y reconstruir esos mensajes ICMP? cuando normalmente los mensajes ICMP nunca suben a la camada de aplicacion y normalmente son respondidos ya en la camada de red….
Sólo es posible bajo alguna distro de linux?
Esperamos mas contenidos como estos!!!! 🙂
Gas, muchísimas gracias por tus comentarios! Este tipo de respuesta nos motiva muchísimo a escribir contenidos!
salu2!
Bueno, arrancamos muy bien! Fabián cumple lo que promete: volver a las raíces en cuanto al muchas veces malinterpretado “hacking”.
Si bien no sé programar -apenas entiendo los fundamentos-, ni entiendo muy profundamente sobre redes, está muy bien explicado todo en el artículo para que lo entienda cualquiera.
La idea es simple: utilizar algo que existe para otra función y darle una vuelta de tuerca para lograr algo que necesitamos hacer, pero lo tenemos restringido.
Muy interesante.
Y si bien no tengo los conocimientos para poner algo de lo que se muestre acá en práctica, aprendo igual. Y eso es lo importante.
¡Saludos y gracias!
Gracias x tu sugerencia. En el caso de estos artículos es complicado, porque son temas que se explican mejor en texto y código que en un video con dibujitos y voces. Pero lo vamos a tener en cuenta.
salu2!
Muy interesante esta seccion.. Pinta para culto….jeje
Es que tengo problemas con el teclado. Se me chispoteó la “L”.
He de responsabilizarme por la omisión de dicho caracter y el no haber hecho una revisión exhaustiva del texto escrito.
Aún así, el tipo escribe como el ort….
Muy bueno pero te recomendaría que lo hagas en video, no sé si viste los que hace Lynda.com están muy buenos.
Lo voy a agregar a favoritos para leer después cuando tenga mas tiempo 😀
escriba bien o mal tiene razon :P, aunke en la actualidad existen cursos de seguridad informatica, pero la informacion que hay en internet es muy escasa, si pudieran recomendar alguna pagina, blog, sitio, libro!! cualkier cosa q tenga de estos temas, seria genial!
“jeroglíficos” no “jerogíficos”
Ya que te vas a dedicar a ofender a las otras personas, por lo menos podrías escribir bien,Macho.
Lo que deberías aprender es a escribir, macho. Son jerogíficos tus palabras. No las he encontrado ni en el Diccionario de la Real Academia Española.
Sería bueno que hicieras de nuevo la primaria.
Es un consejo.
Es muy interesant el tema d seguridad.Hasta hace un par d años existìa esta orientaciòn,pero desapareciò,con lo cual conseguir buena y fidedigna informaciòn se complica.En la POWER PC han salido artìculos del tema y espero q no solo sigan saliendo y enviando correos como èste,sino tambien mencionen sitos dond c pueda seguir aprendiendo mas q nada los FUNDAMENTOS d esta apasionant actividad.
Coincido con vos en que se hizo corto, el tema es q la 2da parte del artículo tiene todo el código y se hacía muy largo armar una sólo.
Con respecto a lo que decís de la vulnerabilidad, el objetivo es poder enviar información sin que sea detectada por filtros como firewalls, IPS, etc. No hay nada que explotar.
salu2!
iba re interesante y lo cortaste rapido, ni siquiera diste uan pista de que tipo de vulnerabildiad ibas a hablar, dudo que podas hacer desbordamiento con paquete ICMP, pero seguramente el truco debe ser meter un caracter raro que proboque un crash