The Path of the Samurai – Time to stop 4a Beer!

Buenas Haxors!

Hoy estrenamos una nueva opción …. Conejos en directo! desde HACK AND BEERS Bilbao! (comenzara a las 19:00)

La andanza ha sido larga hace ya casi un año lleno de sueños y mucho miedo atravesé medio país con una idea en la cabeza… «QUIERO SER HACKER»  y no vale intentarlo. En mi maletero muchos sueños ideas e ilusiones, algunas reales, otras que fueron simples espejismos y otras que de sorpresa llegaron y se quedaron.

Hoy tras el trabajo de casi un año entero en el que he visto que con ganas sacrificio y esfuerzo se logran cosas que crees inalcanzables por fin, doy mi primera Hack & Beers en la ciudad mas especial del mundo Bilbao, de la que sali siendo un «don nadie» que venia nada mas y nada menos del mundo financiero y que por pasion por este mundo se acerco a la puerta del avion y salto sin saber si habla un paracaidas.

Pero surprise! cuando crees que ya nada te puede sorprender … cuando crees que ya has hecho las cosas de la lista TO DO y I WOULD LIKE TO DO aparece @ruthlegal esperando en el hall de un hotel en medio de la Honey y en esas me propone:

– Oye ! a ti no te tenia fichado ¿De Bilbao?! Madre mía! ya sabes, en Enero das una charla Hack And Beers…
_What?
– Si si en Bilbao vete pensando de que vas a hablar!

Y bueno hasta ahi sensiNebu…. ahora vamos a lo que nos ocupa, hacking del bueno y algo mas técnico .

Siendo para mi algo tan especial y sabiendo que iban a acudir tanto mi familia como amigos de toda la vida… decidí hacer algo especial… y es lo que os traigo.

Tras llevar todo este tiempo trabajando con trafico de datos en redes, viendo RFCs , protocolos raros y demás gaitas me di cuenta de que todos los protocolos tienen una parte de carga util, un espacio definible por un usuario y que dependiendo del protocolo puede permitir la transmisión de datos sin ser filtrado por los sistemas de seguridad de la empresa (Hay veces que dejo aflorar al pobre «esbirro» y sus malas ideas).

Si, algunos os preguntareis … tio yo pienso en la pizza que me voy a merendar o en ,mira, si tiro metasploit a eso igual peta… pero creo que hay que mirar mas alla e intentar forzar los limites del conocimiento que tenemos y proponernos retos a nosotros mismos con el unico fin de mejorar .

Por ello encontre algunos trabajos que estaban relacionados incluso herramientas que tunelizan conexiones como ICMPtunnel o Iodine en casos de DNS… pero seamos serios, si alguno de sistemas se dedica por friquismo a mirar el trafico¿no creéis que esto daria e cante? tanto paquetito ICMP o DNS o del protocolo que sea?

 

Vale esto tiene un nombre y es «Canales encubiertos» es el aprovechamiento de un protocolo para transportar información de forma que no se espera y es mas si lo que estas haciendo es enviar eso fuera también hablamos de «Exfiltracion de datos»… ya que esto es la fuga digital e incontrolada de datos desde dentro de la empresa ¿Digno de una buena peli de espias?

Entonces se me ocurrió pensar como un espía… como, alguien que quiere enviar datos fuera de una red que esta securizada, ¿como hacerlo sin levantar grandes sospechas? Y para ello abrí wireshark y observe atentamente lo que ocurría… DNS, algun ICMPHTTP muchos protocolos de diferente índole algunos que conocía otros no… pero una cosa clara… ninguno enviaba un churramen continuo , aquello parecía mas una ciudad muy concurrida en la que gente diferente conversaba entre si.

Así que con esa idea en la cabeza nació Gryphon…

 

¿Que es Gryphon?
Gryphon es un script hecho en python junto con scapy (como no) que aprovecha esos huecos en los protocolos para adherir la información que nosotros queramos encaminada a un objetivo y que por el camino pase inadvertida . ¿Genial no? Pero creo que por mucho que lo explique una imagen vale mas que mil palabras.

¿Vale has hablado de protocolos pero cuales?
Ahi es donde surgio el reto. Todo lo que me había encontrado hasta ese momento generaba un canal pero en un solo protocolo. Yo no queria hacer un tunel y que todo mi trafico pasara por  el mismo protocolo sino que de alguna manera pudiera ser modular y que cada cual se pudiera hacer sus «addons» para añadir nuevos protocolos que no estuvieran . Aparte, como bien he dicho necesitaba hacerlo de tal manera que el mensaje saliera sin necesidad de ir solo por un mismo protocolo sino que fuera alternandolos para no levantar sospechas. Y me hice este esquema:

¿Y si el mensaje es muy largo?

En este caso lo vamos a fraccionar permitiendo que solo 12 caracteres pasen al contenido del Load junto con mas informacion que vamos a detallar a continuacion.

¿Como hare que el lado receptor sepa cuales son los paquetes importantes?
Esto vi un ejemplo en un codigo por internet y me gusto la idea, simplemente añadir una cabecera en la parte LOAD del paquete para poder reconocerlos. Aparte de esa parte de cabecera… hay que cerciorarse de que el paquete llega en condiciones al objetivo por lo que añadiremos como parte de esa cabecera la numeracion de paquete y numero total de paquetes. Por lo tanto nos quedaria algo asi en el LOAD:

 

¿Que mas se nos ocurre?
Claro! si el trafico va en plano… menuda castaña no? estaríamos mandando cosas pero alguien algo espabilado que mirara el contenido del paquete vería  el contenido de esas comunicaciones… y seamos serios eso gracia 0. Se trata de hacer bien las cosas así que ¿por que no meter un el texto codificado? y ya de puestos… por que no complicarlo un poco y ponerle doble codificación para ocultar el contenido real?Si fuera algo de uso real habría que currarse un cifrado pero como se trata de una POC  con ponerlo algo ilegible nos vale por lo que uso base64 . Por ello decidí hacerlo de esta manera:

 

Vale hasta ahí las ideas que tenia en mente que pese a parecer sencillas no distan de tener cierta complejidad a la hora de llevar a cabo de reunir todas y ponerlas en orden con el fin de que todo funcione.

Esta es la presentación que se vera en directo durante la charla:

 

Y lo importante tras toda esta brasa, el código, que esta vez os paso por GITHUB para que podáis descargarlo (si, eso de hacer git clone del repositorio de uno mismo hace hasta ilu).

¿Como funciona?

Es bastante sencillo. Al entrar os pedirá unos datos básicos , Interfaz, Ip (en este caso vale como destino en caso de ir a enviar y como origen en caso de querer recibir) y lo que llamo KEY que no es mas que la cabecera de identificación. A partir de ahi ya se despliegan las 2 opciones  principales listas para ser disparadas : el envidador de datos encubiertos y el analizador de paquetes con el que se pueden recoger.

 

Por lo demás no me queda mas que despedirme:

  • Si estáis viéndolo en directo gracias, sin vuestro apoyo todo lo que ocurre alrededor de todos los «conejos» no seria posible gracias a todos los que nos leéis, nos paráis en las con o nos dais palabras de animo estamos aquí intentando darlo todo.
  • A los que habéis venido a verlo en directo MIL GRACIAS esto como  bien he dicho para mi era algo especial y me ha encantado compartirlo con vosotros, espero veros en las próximas H&B y por que no que seáis vosotros los que nos deleitéis con algo nuevo y novedoso o de propia cosecha.
  • A mi familia y amigos… sin ellos esto no seria posible así que Gracias!(Emoticone con ojos corazón)#nosinmifamilia, #nosinmisamigos
  • Y por fin #nuncasinlosconejos

 

Asi que tras esto solo queda decir SALUD! y esta va por todos vosotros!

Gracias de corazón! Y joder si me emociono al final creo que es lógico… no solo soy un técnico sino que nunca voy a dejar de lado mi lado humano y hay veces que mirar atrás me emociona y aun me descoloca.

Sin mas historias,un abrazo y hasta la próxima…(quien dijo algo de los DNS¿?)

 

 

2 comentarios en «The Path of the Samurai – Time to stop 4a Beer!»

  1. buenas . soy un novato en todo esto estoy haciendo un curso de grado medio y tengo que hacer un trabajo de seguridad informatica y quisiera basarlo en tu programa que me parece muy interesante y siempre y cuando con tu permiso.
    tengo una duda de principiante gorda.
    yo arranco mi sistema linux hago un git clone https://github.com/nebu73/Gryphon.git
    vale que hago con eso necesitaria algun interprete de phyton para hacerlo funcionar o como lo hago funcionar.
    perdon de ante mano si esta duda tan basica te ofende y muchas gracias.^^

    1. Buenas!

      Nah no te preocupes jajajja solo faltaba! gracias por pasarte por el post! . En principio haces un GIT CLONE y después no tienes que usar el interprete de python aunque evidentemente necesitas tener Python instalado y scapy tambien. Con hacer PYTHON GRYPHON.PY en la shell deberia de abrirse ya el programilla sin problema. y de ahi ya empiezas a juguetear. De todas maneras esto ha sido una POC que poco a poco cuando vaya sacando tiempo ire modificando y mejorando.

      Lo dicho cualquier duda para eso estamos!

      salu2

Los comentarios están cerrados.