Karpoff Spanish Tutor 1999-2002

Programa:

Camouflage 1.2.1


 

PROTECCION: Es Freeware
Objetivo: Como este es un programa FreeWare no hay nada que petar o ningún serial que vulnerar. No obstante tiene un punto flaco que es por lo que lo vamos a atacar
Descripcion:

Segun la filosofia de este programa, sirve para ocultar información para los ojos de desaprendidos dentro de otros ficheros, pero, como lo oculta ? Relamente utiliza ténicas de esteganografía ? Encripta la información ? Que tan seguro és ?

Dificultad: Aficionado
DOWNLOAD: hhttp://www.camouflagesoftware.com/
Herramientas: SoftIce, FC32b
CRACKER:
[Moneo]
  FECHA: 01/02/2002

 

 INTRODUCCION

 

Disclaimer

Si estas buscando cracks o serials, aqui no los vas a encontrar. Todo lo que aquí se describe es puramente didactico, lo que el usuario final realice con dicha información sólo le acontece a él. Te recomiendo que si tienes la oportunidad adquieras el programa de forma legal, ya que de esta manera contribuyes a que el programa continue desarrollandose.

El autor sólo pretende ensenyar los diferentes métodos de protección que tienen los programa, no abusando de dicha información

Overview

    These days companies are given more power to monitor emails and to examine your personal files. And with more and more malicious 'spy' software being widely used, you need to be sure that files containing sensitive information are kept safe from prying eyes. Electronic privacy is no longer guaranteed - who knows who might be intercepting your emails or scanning your hard drive without your knowledge or consent?

    Camouflage allows you to hide files by scrambling them and then attaching them to the file of your choice. This camouflaged file then looks and behaves like a normal file, and can be stored or emailed without attracting attention.

    For example, you could create a picture file that looks and behaves exactly like any other picture file but contains hidden encrypted files, or you could hide a file inside a Word document that would not attract attention if discovered. Such files can later be safely extracted.

    For additional security you can password your camouflaged file. This password will be required when extracting the files within.

    You can even camouflage files within camouflaged files.

 

 AL ATAKE

  

    Este programa se ha extendido mucho en aquellos sites que ofrecen musica en formato mp3, tanto canciones como full albums. Y muchas veces el que sube las canciones o se olvida de indicar el password o lo hace con otro que no es el que indica.

    Como este es un programa FreeWare no hay nada que petar o ningún serial que vulnerar. No obstante tiene un punto flaco que es por lo que lo vamos a atacar.

    Segun la filosofia de este programa, sirve para ocultar información para los ojos de desaprendidos dentro de otros ficheros, pero, como lo oculta ? Relamente utiliza ténicas de esteganografía ? Encripta la información ? Que tan seguro és ?

Seguridad

    Para contestar estar preguntas vamos a hacer unas cuantas pruebas tipicas de cualquier criptoanalisis. (para hacer estar pruebas es necesario tener instalado el Camouflage)

    Cogemos nuestro NOTEPAD o cualquier editor de plain-text y creamos un fichero con una cadena en su interior. Por ejemplo:

    ----------------------[FILE.TXT]
    [Moneo]
    ----------------------[FILE.TXT]

    Ahora buscamos una imagen, gif o jpg de tamanyo pequenyo (Por ejemplo: img.jpg) y lo guardamos en un directorio todo junto. Ahora con el Camouflage, camuflamos nuestro txt dentro del jpg con un password determinado: moneo. Esto nos dará un fichero pass01.jpg. Ahora repetimos los pasos, pero le cambiamos el password: mone0 y el fichero de salida pass02.jpg.

    Bien, con esto conseguimos tener dos ficheros, con el mismo contenido pero con diferente método de encriptación, ya que el password es diferente. Lo más básico que sigue es comparar los ficheros para asegurarnos que son realmente distintos. Yo personalmente he utilizado el FC32b de Plushmm & The+Q, ya que el FC del DOS no me reconocia los cambios, y cual es la sorpresa cuando vemos que apenas sólo cambias unos pequenyos bytes muy al final de los ficheros!!!.

    Con esto deducimos varias cosas:

    • No existe encriptación con password.
    • El password viaja con el fichero camuflado.
    • Nuestros ficheros son vulnerables a cualquier ataque

Ataques

    Ahora vamos a mirar con cualquier editor, el contenido de nuestro fichero camuflado, y afortunadamente descubrimos que su contenido está realmente codificado, vamos, que la sentencia [Moneo] que hemos escrito en nuestro Plain-text no puede leerse a simple vista, un voto de confianza para el programador.

    El siguiente paso es atacar el password. Para ello nos preparamos con el debugger, activamos el Camouflage y en la pantalla del password le introducimos uno erroneo a ver que dice.

    Típica ventana de error, aqui el programador la ha cagado, eso significa que de alguna forma el password es vulnerable. Llegados este punto es momento de activar el debbugger, con el típico bpx hmemcpy, haciendo varios p ret aterrizamos en la runtime de VB, ***blasfemia***, seguimos tirando hacia atras con el p ret hasta llegar al programa original CS:4188AC.

    8BD0
    8D8D64FFFFFF
    FFD3
    50
    FF15E4104000
    8D8D64FFFFFF
    51
    8D9568FFFFFF
    mov edx, eax
    lea ecx, dword ptr [ebp+FFFFFF64]
    call ebx
    push eax
    Call dword ptr [004010E4]
    lea ecx, dword ptr [ebp+FFFFFF64]
    push ecx
    lea edx, dword ptr [ebp+FFFFFF68]

    Vemos que justo debajo hay una rutina de VB, la de vbaStrCmp, esto nos va a ayudar mucho a más a encontrar donde parchear el programa. Seguimos debugando y comprobando hacia donde apunta las variables más comunes: EAX, EBX, EDX, EDI, ESI en cada uno de sus cambios, y más o menos por la linea CS:4189BD vemos como EAX apunta al password comprimido en el fichero (acordaros que las cadenas en VB son diferentes que en otros lenguajes ya que estas van seguidas en cada uno de sus caracters por un 00h, por ejemplo, [Moneo] sería 5Bh 4Dh 6Fh 6Eh 65h 6Fh 5Dh en VB nos quedaría como 5Bh 00h 4Dh 00h 6Fh 00h 6Eh 00h 65h 00h 6Fh 00h 5Dh 00h) , hemos encontrado la rutina de desencriptado!. Luego ya la miraremos, ahora vamos a buscar el parche. Seguimos traceando, hasta encontrar algun salto un tanto sospechoso y tiene que estar muy cerca. Si miramos el código, nos encontramos dos, uno en CS:418998 y otro en CS:418A13 que son muy sospechosos. El primero es sospechoso por que nos hace saltar y el segundo, por que nos lleva a un punto de programa muy lejos del actual. Si en tiempo de debugger cambiamos el primer saldo y le decimos que no salte, nos lleva al segundo y si a este le decimos que tampoco salte, nos hace pasar a la siguiente pantalla del Camouflage, como si hubiesemos introducido correctamente el password.

    :00418998 7D18
    :0041899A 68A0000000
    :0041899F 68E8964000
    :004189A4 8B8D88FEFFFF
    :004189AA 51
    :004189AB 50
    :004189AC FF1568104000
    :004189B2 8D956CFFFFFF
    :004189B8 52
    :004189B9 8D463C
    :004189BC 50
    :004189BD E86E290100
    :004189C2 8BD0
    :004189C4 8D8D64FFFFFF
    :004189CA FFD3
    :004189CC 50
    :004189CD 8B8568FFFFFF
    :004189D3 50
    :004189D4 FF15E4104000
    :004189DA 8BD8
    :004189DC F7DB
    :004189DE 1BDB
    :004189E0 F7DB
    :004189E2 F7DB
    :004189E4 8D8D68FFFFFF
    :004189EA 51
    :004189EB 8D9564FFFFFF
    :004189F1 52
    :004189F2 8D856CFFFFFF
    :004189F8 50
    :004189F9 6A03
    :004189FB FF15C0114000
    :00418A01 83C410
    :00418A04 8D8D50FFFFFF
    :00418A0A FF1550124000
    :00418A10 6685DB
    :00418A13 0F859B150000
    :00418A19 8B4DC4
    jge 004189B2
    push 000000A0
    push 004096E8
    mov ecx, dword ptr [ebp+FFFFFE88]
    push ecx
    push eax
    Call dword ptr [00401068]
    lea edx, dword ptr [ebp+FFFFFF6C]
    push edx
    lea eax, dword ptr [esi+3C]
    push eax
    call 0042B330
    mov edx, eax
    lea ecx, dword ptr [ebp+FFFFFF64]
    call ebx
    push eax
    mov eax, dword ptr [ebp+FFFFFF68]
    push eax
    Call dword ptr [004010E4]
    mov ebx, eax
    neg ebx
    sbb ebx, ebx
    neg ebx
    neg ebx
    lea ecx, dword ptr [ebp+FFFFFF68]
    push ecx
    lea edx, dword ptr [ebp+FFFFFF64]
    push edx
    lea eax, dword ptr [ebp+FFFFFF6C]
    push eax
    push 00000003
    Call dword ptr [004011C0]
    add esp, 00000010
    lea ecx, dword ptr [ebp+FFFFFF50]
    Call dword ptr [00401250]
    test bx, bx
    jne 00419FB4
    mov ecx, dword ptr [ebp-3C]

    Con estos descubrimientos ya podemos hacer un parche para esos dos jmps para que la inclusión del password en los ficheros camuflados sea inutil. Aunque podemos seguir buscando para ver si conseguimos desencriptar el password.

    En definitiva, esta es una utilidad insegura, ya que los ficheros van ocultos pero no protegidos.

 

Karpoff Spanish Tutor: Pagina dedicada a la divulgacion de informacion en Castellano, sobre Ingenieria Inversa y Programacion. Email "Colabora con tus Proyectos"
www.000webhost.com