This page looks best with JavaScript enabled

Atacando al atacante - Remote Buffer Overflow

 ·   ·   4 min read

Buenas a todos! , contribuyendo a la serie “Atacando al atacante” me parecio interesante escribir un articulo sobre los Remote Buffer Overflow en softwares de administraci√≥n remota (RAT), de esta manera comentaremos como atraves de este tipo de vulnerabilidades damos la vuelta a la tortilla, pasando de ser la v√≠ctima a ser el atacante.

[+] Teoria

Antes de comenzar con el articulo explicaremos por encima un poco de teoria, ¬ŅQu√© es un remote buffer overflow?

Seg√ļn wikipedia, un buffer overflow o desbordamiento de b√ļfer es un ataque dise√Īado para activar la ejecuci√≥n de c√≥digo arbitrario en un software cuando enviamos a este mayor tama√Īo de datos del que puede recibir.

Aunque su definición parece muy sencilla su complejidad es mucho mayor, ya que se necesita un conocimiento exhaustivo de la arquitectura del programa y del procesador entre otras cosas.

Con el prefijo “remote” damos a entender que el ataque puede ser producido desde fuera de la red y sin necesidad de tener acceso previo al sistema vulnerable.De esta manera, podriamos usar este fallo para bloquear un servidor o ejecutar c√≥digo arbitrario mediante el env√≠o de paquetes TCP y as√≠ conseguir una sesi√≥n remota.

Cabe decir que existen 3 tipos de desbordamientos :
   · Desbordamiento de buffer en stack/en la pila
   · Desbordamiento de heap memory
   · Desbordamiento en segmento de datos

En esta situación nosotros explotaremos un desbordamiento en el heap memory, machacando el header de espacio libre.

[+] Entorno

Una vez hemos asentado un poco los conocimientos te√≥ricos vamos a lo realmente interesante…

Voy a recrear un entorno en el que somos infectados por un troyano(Poison Ivy) y aprovechando una vulnerabilidad de desbordamiento de b√ļfer remoto abrimos una sesi√≥n meterpreter en la PC de nuestro presunto atacante, de esta manera pasamos de ser la v√≠ctima a ser el atacante en cuesti√≥n de minutos.

El entorno ser√° el siguiente :

- Mi maquina real (ArchLinux), desde donde crearé la sesión remota
- Maquina Virtual (Windows XP) que actuará tanto de víctima como de atacante

En mi virtual XP tengo descargada la √ļltima versi√≥n de Poison Ivy (2.3.2), como ando falto de recursos mi maquina virtual ser√° tanto el atacante que tiene abierto el “Cliente” desde donde monitoriza las PC’s infectadas, como la v√≠ctima que ejecutar√° el “server.exe” infectado.
 
[+] Prueba de Concepto

Desde el punto de vista del atacante:
(El atacante debe correr el cliente sobre un XP o un W7 32 bits, de lo contrario el desbordamiento se producirá pero no se ejecutaría el código albitrario y no conseguiriamos una sesión meterpreter en el sistema)

El atacante generaria el servidor que nos infectaría :

[+] Un peque√Īo detallito extra √ļtil para la victima que m√°s tarde se volver√° atacante

Aprovecho para aclarar que el exploit que lanzaremos desde metaesploit, lanza la contrase√Īa por defecto “admin” codificada en un shellcode :

Si el presunto atacante cambiar√° esa contrase√Īa por otra, la victima podr√≠a abrir el server.exe con un editor hexadecimal y visualizarla, de esta manera la v√≠ctima solo tendria que cambiar el shellcode con valor “admin” por un shellcode con el valor de la contrase√Īa para que el exploit fuese lanzado con √©xito:

Desde el punto de vista de la víctima:
(La víctima no podría lanzar el exploit para dar la vuelta a la tortilla hasta haberse infectado por el presunto atacante)

Nosotros, siendo conocedores de que el archivo que el presunto atacante nos ha pasado es bastante sospechoso, lo ejecutamos y confirmamos nuestra sospecha :

Una vez confirmamos que estamos infectados y que el atacante esta a la escucha, damos la vuelta a la tortilla antes de que se nos queme (como buenos cocineros), así que comenzamos la intercepción :

Empezamos a atacar al “atacante”, abrimos metaesploit y usamos “exploit/windows/misc/poisonivy_bof” :

al escribir “check”, metaesploit comprueba si el objetivo/target es vulnerable sin llegar a lanzar el exploit, ahora que sabemos que no ha saltado ning√ļn error vamos a lanzar el exploit para conseguir nuestra sesi√≥n meterpreter :

Como podeis ver hemos obtenido una sesi√≥n meterpreter, por lo que hemos pasado de ser la “inofensiva” v√≠ctima sometida, a ser el atacante.

[+] Thanks to…

Agradecimientos a Himanen por darme la posibilidad de confirmar el PoC en un entorno real y probar así la eficacia del method.

Ya con esto quiero dar fin al articulo, nada m√°s esperar que os halla resultado de ayuda.

Saludos, Sanko.

Share on
Support the author with

Avatar
WRITTEN BY