=-[ 0x10 ]-==================================================================
=-[ NetSearch Ezine #7 ]-====================================================
=-[ Explotando .as .rar y .zip  ]-===========================================
=-[ por DuHCke ]-============================================================

DuHCKe :

[No me hago responsable de lo que puedas hacer con esta informacion, que es
solo con fines educativos y/o cientificos, no es mi intencion descubrir lo
descubierto pero cuando escribi esto no tenia consciencia de que
estuviera publicado]

//////////////////
/  0. Indice     /
//////////////////


0. Indice
1. Prologo
2. Empecemos la accion con el WinZip.
3. Ok?, ahora con el WinAce, estara protegido? :P.
4. Y que tal con el WinRar?.
5. Bueno, ahora pues ciao.

//////////////////
/  1. Prologo    /
//////////////////

Hola, al fin me decidi a escribir este articulo, ustedes saben que esto de
escritor es como dificilito :P.


Todo empezo cuando una vez no tenia nada, solo una PC sin nada de Internet,
una Pentium II sobre Windows 98 :,( , Entonces me dije por que no escarbar
este coco?. Buscando y buscando me dedique contra los .zip, luego de un
tiempo, les di a .ace y .rar, y aqui esta esta triste historia ;P

Tratare de mostrar todos los intentos fallidos como los exitosos, exibiendo
asi posibilidades para que tal vez ensayando con otros compresores
resulten vulnerables.

Este articulo no es que sea para personas experimentados ni nada, solo
espero que les agrade, y que miren que pueden hacer con todo esto.

No! mas chachara y manos a la obra...


////////////////////////////////////////////
/  2. Empecemos la accion con el WinZip.   /
////////////////////////////////////////////

Si y ahi estaba yo... mirando unos bugs CGI, y veia muchos que se
escapaban del arbol con \..\..\.. mmm.... ok ok pero entonces muchas cosas
diferentes a servers http, ftp, telenet, etc. pueden ser vulnerables, daba
la casualidad que estos bugs los estaba viendo en el WinZip :P, entoces
claro a probar con el WinZip se dijo...

Comprimi una carpeta entera, esta contenia una subcarpeta y esta un archivo,
asi:

file.zip
  I
  I-carpeta         _
     I             I
     I-Sub_carpeta I archivo.exe //este puede ser un backdoor o un saludito
                   I_            //poco amistoso, por eso considero estas
                                 //vulnerabilidades delicadas, pero cuales?
                                 //pues sigue leyendo ;P

Ok, entonces que tal si "Sub_carpeta" se llamara "..\..\..\.." ?, entonces a
probar pues; abri el "file.zip" con un editor hexagecimal y en todas partes
donde dijera "Sub_carpeta" las reemplazaria por "..\..\..\..", hay que
tener en cuenta que "Sub_carpeta" debe tener el mismo numero de caracteres
que "..\..\..\.." para reemplazar solo lo necesario y no ir a daar el
archivo.

Listo, ahora si, habro el WinZip miro las carpetas y ahi estaba
"..\..\..\..", entonces trate de descomprimir el contenido total en una
carpeta, mmmm... eureka, miro el C:\ y ahi estaba lindo, el archivo.exe.

Les comento que esto fue probado en WinZip 7.0, ahora en el WinZip 8.0 se
muestra un mensaje de precaucion preguntando que si desea descomprimir en
carpetas con "..", pero si el usuario no sabe nada de ingles y es lentejo,
pues ara click en YES, como de costumbre : ).

Bien, ahora que me gano con tener el archivo.exe en C:\ si la usuario no
lo ejecuta?, pues les tengo una solucion, si "Sub_carpeta" le pongo un 
nombre
mas largo asi: 
"xxTxxTxxTxxTxxTxxTwindowsTAllUsersTMenuIn~1TProgra~1TInicio",
solo queda cambiar las "x" por "." y las "T" por "\" quedando asi:

"xxTxxTxxTxxTxxTxxTwindowsTAllUsersTMenuIn~1TProgra~1TInicio"
"..\..\..\..\..\..\windows\Allusers\Menuin~1\Progra~1\Inicio"

mmmm... el unico problemita es la tilde en la "u" de "Menu", que 
posiblemente
quede en la otra PC a la que se envie el "file.zip" como un caracter raro,
suponiendo que no fuera asi, el usuario cuando reinicie estara infectado,
o lo que sea, sin quedar "archivo.exe" en "Inicio" de "programas"
ya que fue guardado en otra carpeta (dentro de ALL Users) donde se ejecutan
por defecto archivos para todos los usuarios de la PC sobre Windows 98 : ),
delicado el asuntito este no?.

Si, pero si la carpeta de Windows 98 se llama "mywindows", o algo diferente
entonces no funcionaria?, pues para esto habria otra solucion:

Si junto con "archivo.exe" meto a "win.bat", dejando a "Sub_carpeta" como
"../../../.." de tal manera que queden los dos en C:\ al ser descomprimidos,
entonces "win.bat" se ejecutara cuando reinicie la PC y utilizamos la
variable %windir% asi:

<++> ace_rar_zip/win.bat
@echo off
copy archivo.exe %windir%\Allusers\Menuin~1\Progra~1\Inicio > nul
rem ahora hay que iniciar win98 por que despues de correr win.bat para.
cd %windir%
win

<-->

Bien, ahora ya tenemos un usuario infectado, muchos diran... mas facil
reemplazo el "autoexec.bat" y ya, pues no me parece viable, por que puede
alterar muchas cosas en el arranque que lo aran muy sospechoso.

Probablemente tu dirias :

Si, si claro, no suees, he hecho todo esto y cuando habro el WinZip, todos
los archivos se ven y hasta la capeta con el nombre "../../../..", tu crees
que el usuario descomprimira .exe? estas loco.

R// Pues, ese detalle no lo he podido arreglar :(, tal ves si mandas un
    archivo con muchos .jpg que empiecen por "a" y tus archivos raros
    empiecen por "z" quedan muy abajo y posiblemente no se vea nada, y el 
tio
    decida descomprimir todo primero, para asi ver todo mejor, y ya quedara
    infectado :P

-ojo- Pero pero pero pero ... lee lo de los .ace de WinAce mas abajo, que 
ahi
      si quedan totalmente ocultos a los ojos y a todo ]:)

Imagina todas las posibilidades, se puede poner un backdoor en VBS, como el
"DraZler Passive Trojan v1.1.2" que esta en el articulo 0x07 de ns004, y 
todo
lo que se te ocurra. En especial con los .ace : )



///////////////////////////////////////////////////////
/ 3. Ok?, ahora con el WinAce, estara protegido? :P   /
///////////////////////////////////////////////////////

[Todo lo expuesto a continuacion fue testeado en WinAce Archiver v2.03]

Inicialmente, queria poner solo esto del WinAce, por que es totalmente
invisible, mientras que en el WinZip y el WinRar (abajo) es visible; pero tu
sabes que siempre hay ciegos por hay sueltos :P. Ademas como ultimo recurso
quedarian bien ;)

Pero sera tan facil como en el WinZip? --- pues lee ---

OK, me dije... sera muy facil; simplemente reemplazo donde este 
"Sub_carpeta"
por "..\..\..\.." como lo he hecho con el WinZip y listo.

Te recuerdo el esquema :

file.ace
  I
  I-carpeta         _
     I             I
     I-Sub_carpeta I archivo.exe
                   I_


Pero SORPRESA! :( el WinAce al abrir el "file.ace" dice:

    X  Archive is broken  // el archivo esta roto : (

Luego de este mensaje no me dejaba ni siquiera ver su contenido.
Si claro ya lo parcharon, no intentare mas me voy a dormir ... pero rendirme
en el primer intento?. Pues no : )

Ahora si que me anime y lo exploto por que lo exploto :P, se me ocurrio
que probablemente no este parchado contra carpetas "..", sino que tuviera
una especie de proteccion para evitar que los archivos sean editados fuera
de WinAce como lo hice con el editor hexagecimal.

Miraremos algo, comprimire las mismas carpetas todo exactamente igual en dos
archivos .ace diferentes pero con el mismo nombre, y me encuentro que
comparando byte a byte son diferentes en varios lugares... entonces hice un
tercer archivo, jummmm diferentes los tres en lugares especificos.

Esto me da como sospecha de que utiliza proteccion para ser editado, ahora
intentare cambiar "Sub_carpeta" por "Sub_Qarpeta", solo cambio la "c" por la
"Q", intento abrir el archivo y lo mismo, no se deja con el mismo Error que
antes.

Bueno, mas que comprobado, o escribe el nombre de la carpeta cifrado o
esta protegido con algun XOR de todo el "file.ace" o utiliza un checksum
CRC para comprobar la integridad de fichero o algo similar.

La solucion seria lograr que el WinAce se comprimiera por propia voluntad 
con
"..\..\..\.." de una vez, pero como? si los nombres de las carpetas no 
pueden
tener "\", :) , se me ilumino el coco, pues saco el SoftICE (debugger) y
justo cuando llame al string de "Sub_carpeta" lo cambio por "..\..\..\..",
asi el WinAce lo arreglaria para mi, jeje pero primero intentare otras
cositas que si me funcionan nada de SoftICE y todo mas sencillo.

Se me ocurre que si logro insertar una carpeta llamada "..\..\..\.." con 
todo
el permiso del WinAce, el lo arreglaria y lo cifraria a su manera para mi,
entonces abro el "file.ace" sin hacerle ningun cambio, todo normalmente,
aparece "carpeta", entro en ella y aparece "Sub_carpeta", dentro de esta 
esta
"archivo.exe",  y arriba dice algo como:

C:\file.ace#carpeta\Sub_carpeta

Noto que siempre esta una carpetita llamada ".." con una flecha hacia arriba
para subir de nivel, de carpeta en carpeta. (Esta sera de interes para
mas adelante asi que no la olvides ).

Le agrego a la linea que aparece arriba esto "\NuevoDir", le doy enter
quedando asi:

C:\file.ace#carpeta\Sub_carpeta\NuevoDir

Pero que paso? desaparecio archivo.exe, claro se creo una nueva carpeta
llamada "NuevoDir", que si la dejo vacia desaparesera solita como humo. 
Listo
ojala funcione esta vez ... le quito "\NuevoDir" y pongo "\..\.."
quedando :

C:\file.ace#carpeta\Sub_carpeta\..\..

ehhh?, funciono? desaparecio todo, le agrego un archivo llamado 
"newfile.exe"
con [Add] y lo agrega normalmente, como si nada pasara : ). Ahora cierro y
habro de nuevo a "file.ace" para asegurarme de que no salga ningun Error, xD
bueno al menos abrio sin problemas, entro hasta "Sub_carpeta" y con que me
encuentro?, pues esta "archivo.exe" que siempre habia estado ahi, pero
con la diferencia que esta ves ya no estaba la carpeta ".." con la flechita
dibujada.. estaba toda amarillita y solo amarilla... mmm.. creo que esa es 
la
carpeta que pude crear con el nombre de ".." xD y parece la que antes estaba
con flecha, asi que esta muy poco sospechosa.. intento hacerle doble click y
sube de nivel XXXXDD, el WinAce tambien se engao solito :P cree que es la
de subir nivel, y sube como si nada, cosa que la hace menos sospechosa.

Pero vamos, y como sabemos que no es la misma que antes?, la de la flecha?

R//Pues probando, entonces descomprimamos todo en alguna parte, y si aparece
como por arte de magia el archivo "newfile.exe" dos niveles mas arriba en el
arbol de carpetas entonces lo logramos xD. Si :P, exactamente dos niveles 
mas
arriba en el arbol de carpetas :D.

Y tu me diras :

Bueno pero aun no esta perfecto, eso de la flechita, cuando entra al
principio ella se ve, luego entra a Sub_carpeta y ya no se ve y asi
susesivamente, aunque con el doble click suba de nivel como si nada, esta
sospechoso ese grafiquito, a mi me haria sospechar mucho.

R//Pues le tengo la solucion, comprimamos un archivo cualquiera, por ejemplo
   que el esquema este asi :
             _
            I
            I miprog.c
   file.ace-I pamela.jpg
            I loquesea.txt
            I_

   Listo, pero con el detalle que esta ves a la linea donde dice el path le
   agregamos esto asi:

   C:\file.ace#..\..\..\..\..

   luego de darle enter, y con [Add] agregamos a "archivo.exe", cerramos y
   volvemos a abrir y tarantaran!, si mi doctor, abrimos el archivo y de
   principio aparece sin la flechita que nos jodia tanto, la lista de
   archivos perfecta, asi el usuario no se percata que ahi estaba esa flecha
   que nos molestaba xD, el usuario le da doble click a ".." y sube de nivel
   otra vez como si nada pasara... esta vez si podre decir :
   "flawless victory" ;P.

Jeje y un amigo que me decia, "esos Alemanes son muy precavidos programando,
apuesto a que no podra contra los .ace con el mismo bugcito del WinZip" y
miren, al final resulto mas facil de lo que se podia uno imaginar, sin
editores hexagecimales ni ggers ni nada por el estilo.

Para usar este bug, he dicho varias formas en la seccion de los .zip 
(arriba)
pero aun asi quedan muchas posibilidades, imaginen que se generara algun
virus tipo Melliza que se reparta, los usuarios por curiosidad mirarian el
archivo .ace y si ven fotos pues las descomprimen para mirarlas posiblemente
en ese caso ya quedarian infectados y asi a toda la libreta de direcciones,
ademas quien desconfia de un .ace, .zip o .rar de un amigo? con fotos? pues
nadie, entonces cuidado pues.

Bueno, sigamos con el WinRar aunque no es tan potente como el de los .ace
seria bueno echarle una ojeadita...


//////////////////////////////////////
/    4. Y que tal con el WinRar?.    /
//////////////////////////////////////


[ Pruebas hechas en WinRar 2.80 (en espaol) ]

Listo continuemos pues con este a ver que resavios tiene xD.
Comprimimos la misma carpeta con el esquema inicial para probar el primer
tiro como lo de los WinZips.

Otra vez aqui esta :

file.rar
  I
  I-carpeta         _
     I             I
     I-Sub_carpeta I archivo.exe
                   I_

OK, reempalzamos lo mismo que antes con el editor hexagecimal, donde diga
"Sub_carperta" ponemos "..\..\..\.." si el mismo cuento.

Guardamos, habrimos a "file.rar" con el WinRar y se queda calladito xD, pero
no se dio cuenta de nada? no lo creo, entonces probemos a descomprimir.

Ups!, descomprimiendo me encuentro con estos mensajes, con icono de Warning
y todo :

<!> WinRar: Mensajes de diagnostico

Mensaje
------------------------------------------------------------------
<!> file.rar: El encabezado "carpeta\..\..\..\.." esta corrupto.
<!> file.rar: El encabezado "carpeta\..\..\..\..\archivo.exe" esta corrupto.

Jeje, me pillaron :P, vastante delatador ese mensajecito no?, parece que
tambien tiene protecion, para evitar archivos rotos como lo hacia el WinAce,
mmmm... me pregunto que tan roto estara "archivo.exe", jejeje miren nada 
mas,
miro en C:\ y ahi estaba muy lindo el, "archivo.exe" vivito y coleando, a
pesar de todos los mensajes de Error lo descomprime en C:\ saliendoce del
arbol : ).

Si si, pero lo vas a dejar asi tan delatador, con ese mundo de mensajes?.

R//Pues eso si lo vamos a solucionar a continuacion... sigue sigue...


Listo ahora vamos contra esos mensajes, viendo que "archivo.exe" estaba
intacto, entonces el problema era algo leve que el WinRar arreglaria para
nosotros. Antes de usar la mano dura, pues si "file.rar" esta roto, entonces
usaremos la opcion que dice "Reparar archivo" del menu "Comandos" desde el
mismo WinRar. Cuando esta reparando, salen los mismos mensajes que vimos
arriba en "Mensajes de diagnostico", a todos click en [Si], al final esto
genera un archivo llamdo "_reconst.rar", este es nuestro nuevo archivo ya
reparado. Ok, ahora abrimos este ultimo, no sale ningun mensaje de error ni
nadita : ), luego descomprimamos y veamos...

Eehh? sin novedad? :D, esta vez no puso ningun Error ni mensajes que me
delaten, entonces todo bien.

Claro, pero no podia ser perfecto, el WinRar siempre habia tenido una
carptetita llamada ".." para subir de nivel, pero esta vez no se dejo
engaar como engaamos al WinAce, abro a "file.rar" luego entro en 
"carpeta",
y ahi estaba, dos veces la dichosa "..", el WinAce al darse cuenta que tenia
dos ".." mostraba solo una por fortuna, pero ahora el WinRar muestra todito 
:

".." ---> la que viene por defecto.
".." ---> la nuestra : (

Le damos doble click a la nuestra y aparece ".." dos veces hasta que 
llegamos
a "archivo.exe", esto quiere decir que para el WinRar todo quedaria asi:

file.rar
   I
   I-carpeta
      I
      I-..
         I
         I-..    --> Los tres directorios de "..\..\..\.." todos visibles.
            I
            I-..   _
              I   I
              I-..Iarchivo.exe
                  I_


Si, se ve todo, pero si mandaramos algo grande, con varias carpetas, y 
varias
SubCarpetas de tal manera que el usuario se vea tentado a descomprimir todo
de un solo tiro para verlo completo con mas facilidad, pero por ahi en una 
de
esas SubCarpetas bien adentro, alguien metio los "..\..\.." que quiso, y
entonces cae el probrecito, sin darce cuenta de nada ]:).

Asi, que a movernos o aprovecharnos ;P de los compresores que estan como
peligrocitos, y mirar nuevas posibilidades que este tipo de bug no creo que
sea el unico contra ellos xD.


//////////////////////////////////
/   5. Bueno, ahora pues ciao.   /
//////////////////////////////////

Quedaria decir que en la actualidad hasta los archivos mas insospechados han
sido utilizados para ejecutar codigo no deseado y desarrollar ataques muy
delicados donde se puede perder o fugar informacion, siendo esta de mayor
cuidado debido al uso que se le pueda dar.

Un saludo a mi COLOMBIA "tierra querida".

Comentarios, informacion, recomendaciones, demandas, etc, etc, sobre
temas relacionados con este articulo o temas interesantes a:

duhcke@hotmail.com

Ciao,

       DuHCKe.



