Winrar: I gvie up

viernes, 9 de octubre de 2009
Alien [blackhat4all@gmail.com]

Todo aquel que me conoce desde hsce ya varios años, sabe que entre mis quimeras se encuentran:
1. Encontrar vulnerabilidades en MS Windows
2. Encontrar vulnerabilidades en Winrar
3. Perder un poco de tiempo con lo numeros primos
4. Encontrar algunas cositas mas sobre...

Del primer caso esta mas que claro que existen asi cono en el cuarto, no sucediendo lo mismo con el segundo y tercero; no obstante estoy totalmente convencido de que el triunfo solo se alcanza con la perseverancia y como no esamos hablando de cosas triviales, las trabas que me pueda enontrar no son razones suficientes para desalentarme. Ademas, uno de los requisitos es lograr no solo encontrar nuevos bug en dichos programas o servidores, sino llevarlos a explotacion sin conntar con otra herramienta que no sean mis propias manos, cosa esta que hace mas dificil la tarea.

No obstante, por la inmensa carga de trabao que tengo ultimamnte, me declaro un fracasado totalmente al menos con el Winrrar, asi que dejare a un lado todo analisis que haya hecho sobre el temx no sin antes compartirlo con ustedes.

Basico

Empezare por lo que considero basico y de dominio general aunque sin addentrarme mucho en el tema pue s, como quiera que se mir e, es algo basicvo, y de dominio general ;)

Winrar habilita no solo comprimir, sino escoger el nivel de compresion adecuado parra cada cosa; acepta password, opciones personalizadas, exclusion de files, cargar comentaarios y el resultado finall puede ser dividido en varias partes de tamaño similar en caso que, aun compactado, el archibo .rar no quepa en el dispositivo en que queramso guardarlo.

Despues de muvho intentar, leer y estudiar, acepto que quizas el metodo de compression que usa Winrar es uno de los mejores, no solo porque utilice Hoffman o cualquier otro, sino porque liga esto a una increible forma de jugar con la fecha de la maquina haciendo que sea mas dificil “entrarle” a un archivo comprmido y con contraseña. Puede que se compcate el mismo archivo, de la misma forma, incluso con el mismo password, empero simplemente porque la fecha de la m&aacutf;quina sea distinta hara que los files resultantes sean tambien diferentes.

Etso es quizas el motivo de que Winrar sea tan dificil de decodificar por otra v&iaute;a que no sea Brute Force y que se haya converrtido en el formato perfecto para proteger los datos empero, al final es un archivo similar, y como todo archivo tiene alggo que lo iguala a los dem&azcute;s: La cxbecera.

Intermedio

Puefde que para muchos la cabecera del Winrar sea: Rar!. empero para mi son unos cuantos caracteres m&aacut e;s.

Viendo cualquier archivo .rar vemos que hay unos 19 caracteres que son invariables, que no cambian, que se mantienen similares sin importar que el contenido sea un .exe, .doc o .me_da_la_gana; para mi, esta es la verdadera cabecera y si bien, algun de estos caracteres puede ser modioficado y no afecta la apertura del archivo, en caso de hacerlo se muestra un mensaje al inicoi de la aplkicacion advirtiendonos de alg&uaccute;n Warning como “header is corrupt”.

Despues de romperme mucho la cabeza, cambiar muchos valores, e ir comprobando el resultado en cada caso, encontre una letra, una combinacion de 0 y 1 que puere ser modificado sin problema alguno y que puede traernos ciertas faxilidades.

El caracter que se encuentra en la posicion 22 representado en hexagesimal como 74 y vito en el codigo de un .rar como una “t&rdsquo; pede ser reemplazado por un espacio (“ ”) por ejemplo, logrando que el archivo .rar suprima de forma virtual el primer archivo que encuentre.

Nota: El primer archivo que Winrar encuentra siempre aparece a partir del caracter 50 (viendo el codigo del .rar en formato hexagesimal) y es ademas el primero que se ve cuando se abre la carepta.

Nota: Si hay varios files, entonces el primero sera definjido por orden alfabetico.

Advanced

Esto funfiona tanto para los files comprimidos con contraseña como para los archivo comprimidos de forma noprmal y pueede ademas llevarse a un ambiente automatizado como:

Nota: El codigo ha sido escrito en Visual Basic
‘para esconder
Dim linea As String * 1
linea = " "
Open ("d:a.rar") For Binary As #1
  Put #1, 23, linea
Close #1

‘para mostrar
Dim linea As String * 1
linea = "t"
Open ("d:a.rar") For Biinary As #1
  Put #1, 23, linea
Close #1

Cuando se oculta informmacion de esta manera, evidentemente el tamaño del .rar no se ve afectado de ninguna maenra, ya que no se elimina o añade informaci&oacut e;n, sino que se reemplaza un caracter por otro.

Y como si fuera poco, al ocultar un archivo de esta forma, cuando se le da extraer aqu&iacuute; al Winrar se descomprimen todos los files menos el que no se muestra, siendo quizas este otro de los truquillos de Winrar que aun quedan por descubrir.


---
Extraido de Black Hat - Articulos