lunes, 25 de marzo de 2013

ReDuH - Tuneles de datos dentro y fuera de redes


La herramietna que voy a presentar a continuacion lleva el nombre de reDuh y le pertenece a Sensepost. Esta herramienta fue presentada ya hace algunos años en la conferencia de BlaCkHaT.Pues vamos a darle una gran presentación.
 
ReDuh es el realidad una herramienta que se puede utilizar para crear un especie de circuito a travez del protocolo TCP. Consta de dos piezas de codigo fundamentales. La primera pieza esta hecha con destino al servidor que vamos a atacar, se encuentran en versiones php, jsp y aspx, la cual se ejecutar en el servidor comprometido, que puede conectarse a hosts detrás de dicho servidor trivial. La segunda pieza es un cliente java que sera lanzara desde nuestra central para establecer el túnel.




Una vez que hemos logrado subir el archivo al servidor (victima-trivial).Ahora solo falta hacer una llamada de activacion por parte del cliente, osea nosotros. La llamada debe ser de la siguiente forma.


# java -jar reDuhClient.jar http://victima/reDuh.php


Para hacerlo un poco mas sencillo, vamos hacerlo con dibujitos..... ^_^......El siguiente ejemplo voy a "pedir prestado" de la página de los creadores de reDuh"....^_^
Imaginemos que nuestro pequeño amigo tiene acceso al servidor ubunt00.victima.com, de la cual vamos a subir primero una shell para posterior subir nuestro reDuh (Primera pieza - servidor)

Pero nuestro amiguito quiere tener una conexion RDP (Remote Desktop Protocolo - Es un protocolo que permite la comunicación en la ejecución de una aplicación entre un terminal y un servidor Windows.) al servidor term_serv.victima.com, la cual la podemos ver en la web pero se encuentra detras del firewall.(Problema??)



Pero como todos sabemos que por el firewall. ( Puerto 80, como pueden observar en la imagen) nos permite transitar tráfico HTTP.Y como tenemos conocimiento de la famosisima escala OSI (De la cual fue uno de mis primertos post.) donde nos menciona de que los protocolos pueden trabajan dualmente.

Bueno a continuación nuestro amiguito va a subir el reDuh en el servidor (victima-trivial)
 
A continuacion va a tener que correr reDuhClient en su maquina.

 # java -jar reDuhClient.jar http://ubunt00.victim.com/uploads/reDuh.jsp


Despues de haber ejecutado el reDuhClient vamos a tener una conexion con el puerto 1010 (por defecto.)
Una vez logrado esto ya todo se pone muy sencillo...(Aunque fue sencillo lo anterior). Ahora vamos a crear el túnel, para poder lograrlo vamos a hacerlo la siguiente forma :


[createTunnel]1234:term-serv.victim.com:3289 


Pero donde ingresamos eso.?.Sencillo...Supongo que han escuchado de Netcat.



Pues Netcat es una herramienta que nos permite hacer negociaciones TCP/UDP en un HOST, asociar una shell a un puerto en concreto y forzar conexiones UDP/TCP.Abrimos nuestro Netcat.


$ ncat term-serv.victim.com 1010


Despues de que se haya ejecutado la petición, creamos nuestro túnel : 
 

[createTunnel]1234:term-serv.victim.com:3289 

  
Hasta este punto ya tenemos un túnel entre nuestro puerto 1234 y el puerto 3289 de nuestra víctima. Para conseguir a nuestra verdadera victima vamos a conectar nuestro cliente de SSH favorito a nuestro puerto local 1234 y todo el trafico va a ser de una cierta forma encapsulado por el prococolo HTTP (Mencione anteriormente que los protocolos pueden trabajan dualmente).En la imagen posterior podemos observar el libre transito de trafico de TCP entre ubunt00.victim.com y term-serv.victim.com.


Para finalizar vamos hacer unas pequeñas conclusiones :
 
Detras de todo esto que ocurre realemente?

  • ReDuh primero empieza a escuchar por el puerto 1234 y envia un mensaje HTTP a /uploads/reDuh.jsp, que abre un socket a term-serv.victim.com:3380 (La funciones de envio de socket es innato tambien de netcat.)
  • Todo el trafico enviado localmente por el puerto 1234 se codifica y envuelto en la petición HTTPS(camuflado)  y se envía a /uploads/reDuh.jsp
  • Todo el tráfico de term-serv.victim.com:3380 a la JSP, es enviado a una cola donde espera , para posteriormente ser enviado de nuevo a reDhClient cuando este lo solicite.









3 comentarios:

  1. con esto bo , se hace un bypass al wireshark ?

    ResponderEliminar
  2. En post de Wireshark escribe sobre que es una herramienta movible, la posición depende de donde quieren que se genere la alarma. En el ejemplo nterior debemos conocer donde se encuentra para poder hacerle un bypass, pero en ciertas posiciones si es posible.

    ResponderEliminar
  3. usted quiere participar en un proyecto acerca de un backdoor advanzado en metasploit por favor mandeme su skype para compartir conocimiento

    -no crear archivos temporales en el sistema
    -no crear nuevos procesos todo en memoria
    -bypass antivirus ovio es muy facil

    estamos buscando a un usuario que pueda configurar la conexion deame su skype parce...

    ResponderEliminar