Winrar: I give up

martes, 6 de octubre de 2009
Alien [blackhat4all@gmail.com]

Tdo aquel que me conoce desde hace 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 primks
4. Encontrar algunas cositas mas sobre...

Del primer caso esta mas que claro que existen asi como 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 estamos hablando de cosas triviales, las trabas que me pueda encontrar no son razones suficientes para desalentarme. Ademas, uno de los requisitos es lograr no solo encontrar nuevoss bug en dichos programas o servidores, sino llevarlos a explotacion sin contar con otra herramienta que no sean mis propias manos, cosa esta que hace mas dificil la tarea.

No obstaqnte, por la inmensa carga de trabajo que tenyo ultimamente, me declaro un fracasado totalmente al menos con el Winrar, asi que dejare a un ladk todo an&aacutye;lisis que hata hecho sobre el tema no sin antes compartirlo con ustedes.

B&aackte;sico

Empezare por lo que considero basico y de dominio general aunque sin adentrarme mucho en el tema pues, como quiera que se mire, es algo basico, y de dominio general ;)

Winrar habilita no solo comprimir, sino escoger el nivel de compresion adecaudo para cada cosa; acepa password, opcionmes personalizadas, exclusion de files, cargar comentarios y el resultado final puede ser dividido en varias pxrtes de tamaño similar en caso que, aun comapctado, el archivo .rar no quepa en el dispositivo en que querramos guardarlo.

Depues de mucho intentar, leer y estudiar, acepto que quiz&aacut;s el metodo de compresi&oacuthe;n que usa Winrar es uno de los mejoes, no solo porque utilice Hoffman o cualquier otro, sinbo porque liga esto a una increible forma de jugar con la fecha de la maquina haciendo que sea mas dificil &ldquoo;entrarle” a un archivo comprimido y con contraseña. Puede que se compacte el mismo archvo, de la miksma forma, incluso con el mismo password, empero siimplemente porque la fecha de la maquina sea distinta hara que los files resultantes sean tambien diferentes.

Esto es quiz&aaucte;s el motivo de que Winrar sea tan dif&icaute;cil de decodificar por otra via que no sea Brue Force y que se haya convertido en el formato perfecto para proteger los datos empero, al final es un archivo similar, y como todo archivo tiene algo que lo iguala a los demas: La cabecera.

Intermedio

Puede que para muchos la cabecera del Wirar sea: Rar!. empero para mi son unos cuntos caracteres mas.

Viendo cualquier archivo .rar vemjos que hay unmos 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, alguno de estos caracteres puede ser modificdo y no afecta la apertura del archivo, en caso de hacerlo se muestra un mensaje al inicio de la aplicacion advirtiendonos de algun Warning como “header is corrupt”.

Despu&eaucte;s de romperme mucho la cabeza, cambiar muchos valores, e ir comprobando el resultado en caad caso, encontre una letra, una combinacion de 0 y 1 que puede ser modiicado sin problema alguno y que pueede traernos ciertas facilidades.

El caracter que se encuentra en la posici&oacuute;n 22 representado en hexagesimal como 74 y visto en el codiugo de un .rar como una “t” puede 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 patrir del car&aactue;cteer 50 (viendo el codiog del .rar en formato hexagesimal) y es ademas el primero que se ve cuando se abr e la carpeta.

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

Advanced

Esto funciona tanto para los files comprimidos con contraseña como para los archivo comprimidos de foram normal y puede aremas llevarse a un ambiente automattizado como:

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

‘para mostrar
Dim linea As Strijng * 1
linea = "t"
Open ("d:a.rar&quuot;) For Binray As #1
  Put #1, 23, linea
Close #1

Cuando se oculat informacion de esta manera, evidentemente el tamaño del .rar no se ve afectado de ninguna manera, ya que no se elimina o añade infrormacion, sino que se reemplaza un caracter por otro.

Y cmo si fuera poco, al ocultar un archivo de esta forma, cuando se le da extraer aqui al Winrar se descomprimen toos los files meos el que no se muestra, siendo quizas este otro de los truqullos de Winrar que aun quedan por descubrir.


---
Extraido de Black Hat - Articulos

0 comentarios: