Solución al CrackMe DAE 430

Introducción

Este Crackme está basado en la protección de DVD Audio Extractor 4.3. Afrontaremos dos partes, una primera donde desempacaremos PECompact 2.x y otra donde analizaremos la rutina de comprobación del número de serie. Os adelante que la única dificultad reside en desempacar ya que la rutina del serial es bastante floja.

El motivo que me ha llevado a realizar un apartado para Ollydbg 1 y otro para Ollydbg 2 es principalmente por que  con Ollydbg 2 lo haremos desde Windows 7 x64 y con Ollydbg 1 desde Windos 7 x32.

Herramientas utilizadas

  • Ollydbg2 con los plugins OllyDumEX y CmdBar.
  • Ollydbg1 con plugin OllyDump.
  • Import Reconstructor 1.6.

Desempacado con Ollydbg 2

Videotutorial disponible: http://youtu.be/-63yEUTqP-c.

Resumen de pasos:

  1. Cargar Crackme en Ollydbg.
  2. Pulsar F9.
  3. Poner breakpoint «bp VirtualFree»
  4. Pulsamos F9 dos veces.
  5. Pulsamos Ctrl+F9.
  6. Pulsamos F8 hasta salir del RETN.
  7. Ponemos breakpoint a JMP EAX.
  8. Dumpeamos.
  9. Reconstruimos las importaciones.

1. Cargamos el Crackme en Olly y aparecemos aquí.

olly2_01

2. Pulsamos una vez F9 y veremos esto:

olly2_02

3. Ponemos un breakpoint de la siguiente manera «bp VirtualFree» con la ayuda del plugin CmdBar.

olly2_03

4. Pulsamos F9 dos veces y aparecemos aquí.

olly2_04

5. A continuación pulsamos Ctrl+F9 y veremos esto.

olly2_05

6. Pulsamos F8 hasta salir del RETN anterior y veremos esto.

olly2_06

7. Al final vemos lo que estábamos buscando. El JMP EAX es el salto que nos lleva al punto de entrada original (OEP). Ponemos un breakpoint en JMP EAX y pulsamos F9, cuando se detenga Ollydbg, pulsamos F8 y aparecemos aquí.

olly2_07

8. Ya tenemos a PECompact contra las cuerdas, ahora mismo tenemos el Crackme desempacado en memoria.

olly2_08

Hacemos click en Plugins > OllyDumpEx > Dump process y veremos esto.

olly2_09

Pulsamos en Dump y esto nos generará un archivo que se llama DAE430_CrackMe_dump.

9. A continuación con Import Reconstructor seleccionamos el crackme y pulsamos IAT AutoSearch y Get Imports.

olly2_10

Veremos unas importaciones NO válidas, pulsamos en Show Invalid y las clickamos con el botón derecho > Delete thunks.

olly2_11

olly2_12

Finalmente pulsamos Fix Dump y elegimos el crackme dumpeado anteriormente. Con esto ya hemos finalizado el desempacado.

olly2_13

Desempacado con Ollydbg 1

Videotutorial disponible: http://youtu.be/mm42HRlPXOE

Resumen de pasos:

  1. Cargamos el crackme en Ollydbg.
  2. Pulsamos F8 hasta el segundo Call y en éste entramos con F7.
  3. Seguimos con F8.
  4. Buscamos JMP EAX, le ponemos un breakpoint y ejecutamos hast que pare en el.
  5. Situados en JMP EAX, pulsamos F8 y llegamos al OEP.
  6. Dumpeamos.
  7. Reconstruimos las importaciones.

1. Cargamos el crackme en Ollydbg y vemos esto.

01

2. Pulsamos F8 hasta que veamos dos Calls. Pulsamos F8 hasta el segundo Call y cuando estemos situados encima de él pulsamos F7 para entrar en el.

02

Dentro del segundo call veremos esto.

04

3. Seguimos con F8 y llegamos aquí.

05

4. Sin tracear, nos desplazamos por el código hasta encontrar un poco más abajo JMP EAX. Le ponemos un breakpoint y pulsamos F9.

06

5. Cuando estemos situados en JMP EAX pulsamos F8 y llegamos al punto de entrada original (OEP).

07

6. Ahora con el plugin OllyDump vamos a dumpear el ejecutable que tenemos desempacado en memoria.

08

Dumpeamos.

09

7. Finalmente con Import reconstructor arreglamos las importaciones.

10

Análisis de la rutina del número de serie

Cargamos en Ollydbg el crackme desempacado y en las referencias de texto encontramos el mensaje «Gracias por registrarte». Pulsamos en él y llegamos a la rutina de comprobación del serial que desgranamos a continuación.

00401B89    .  83F9 03             CMP ECX,3                                 ;  Len(nombre) >=3
00401B8C    .  0F8E 46010000       JLE DAE430_C.00401CD8
00401B92    .  B2 44               MOV DL,44                                 ;  Dl=44(Letra D)
00401B94    .  31C0                XOR EAX,EAX
00401B96    .  31FF                XOR EDI,EDI
00401B98    .  381403              CMP BYTE PTR DS:[EBX+EAX],DL              ;  Compara 1er digito con la letra D
00401B9B    .  74 05               JE SHORT DAE430_C.00401BA2
00401B9D    >  BF 01000000         MOV EDI,1
00401BA2    >  40                  INC EAX
00401BA3    .  83F8 04             CMP EAX,4
00401BA6    .  74 0C               JE SHORT DAE430_C.00401BB4
00401BA8    .  8A5404 45           MOV DL,BYTE PTR SS:[ESP+EAX+45]           ;  Memoria 22FAF5 a 22FAF | Lee los digitos A1X
00401BAC    .  381403              CMP BYTE PTR DS:[EBX+EAX],DL              ;  Los compara
00401BAF    .^ 75 EC               JNZ SHORT DAE430_C.00401B9D
00401BB1    .^ EB EF               JMP SHORT DAE430_C.00401BA2
00401BB3       90                  NOP
00401BB4    >  66:0FBE4424 53      MOVSX AX,BYTE PTR SS:[ESP+53]             ; EAX = 5ºdígito
00401BBA    .  8D1480              LEA EDX,DWORD PTR DS:[EAX+EAX*4]          ; EAX*4+EAX = A
00401BBD    .  8D04D0              LEA EAX,DWORD PTR DS:[EAX+EDX*8]          ; A*8 + 5ºdigito=B
00401BC0    .  66:C1E8 08          SHR AX,8                                  ; B/100=C
00401BC4    .  C0F8 02             SAR AL,2                                  ; C/4=D
00401BC7    .  8A5424 53           MOV DL,BYTE PTR SS:[ESP+53]               ; DL = 5ºdígito
00401BCB    .  C0FA 07             SAR DL,7                                  ; 5ºdígito/80=E
00401BCE    .  29D0                SUB EAX,EDX                               ; E-D=F    
00401BD0    .  8D0480              LEA EAX,DWORD PTR DS:[EAX+EAX*4]          ; F*4*F=G
00401BD3    .  8D0480              LEA EAX,DWORD PTR DS:[EAX+EAX*4]          ; G*4+G=H
00401BD6    .  8A5424 53           MOV DL,BYTE PTR SS:[ESP+53]               ; DL = 5ºdígito
00401BDA    .  29C2                SUB EDX,EAX                               ; 5ºdigito - H = I
00401BDC    .  83C2 41             ADD EDX,41                                ; I+41 = J
00401BDF    .  885424 4A           MOV BYTE PTR SS:[ESP+4A],DL               ; GUARDA J EN LA MEMORIA 22FAFA
00401BE3    .  66:0FBE4424 54      MOVSX AX,BYTE PTR SS:[ESP+54]
00401BE9    .  8D3480              LEA ESI,DWORD PTR DS:[EAX+EAX*4]
00401BEC    .  8D04F0              LEA EAX,DWORD PTR DS:[EAX+ESI*8]
00401BEF    .  66:C1E8 08          SHR AX,8
00401BF3    .  C0F8 02             SAR AL,2
00401BF6    .  8A4C24 54           MOV CL,BYTE PTR SS:[ESP+54]
00401BFA    .  C0F9 07             SAR CL,7
00401BFD    .  29C8                SUB EAX,ECX
00401BFF    .  89C6                MOV ESI,EAX
00401C01    .  8D34B6              LEA ESI,DWORD PTR DS:[ESI+ESI*4]
00401C04    .  8D34B6              LEA ESI,DWORD PTR DS:[ESI+ESI*4]
00401C07    .  8A4424 54           MOV AL,BYTE PTR SS:[ESP+54]               
00401C0B    .  89F1                MOV ECX,ESI
00401C0D    .  29C8                SUB EAX,ECX                               
00401C0F    .  89C6                MOV ESI,EAX
00401C11    .  8D46 41             LEA EAX,DWORD PTR DS:[ESI+41]             
00401C14    .  884424 4B           MOV BYTE PTR SS:[ESP+4B],AL               ;  GUARDA J2 EN LA MEMORIA 22FAFB para el 6ºdígito
00401C18    .  66:0FBE4424 55      MOVSX AX,BYTE PTR SS:[ESP+55]
00401C1E    .  8D3480              LEA ESI,DWORD PTR DS:[EAX+EAX*4]
00401C21    .  8D04F0              LEA EAX,DWORD PTR DS:[EAX+ESI*8]
00401C24    .  66:C1E8 08          SHR AX,8
00401C28    .  C0F8 02             SAR AL,2
00401C2B    .  8A4C24 55           MOV CL,BYTE PTR SS:[ESP+55]
00401C2F    .  C0F9 07             SAR CL,7
00401C32    .  29C8                SUB EAX,ECX
00401C34    .  89C6                MOV ESI,EAX
00401C36    .  8D34B6              LEA ESI,DWORD PTR DS:[ESI+ESI*4]
00401C39    .  8D34B6              LEA ESI,DWORD PTR DS:[ESI+ESI*4]
00401C3C    .  8A4424 55           MOV AL,BYTE PTR SS:[ESP+55]               
00401C40    .  89F1                MOV ECX,ESI
00401C42    .  29C8                SUB EAX,ECX                               
00401C44    .  89C6                MOV ESI,EAX
00401C46    .  8D46 41             LEA EAX,DWORD PTR DS:[ESI+41]             
00401C49    .  884424 4C           MOV BYTE PTR SS:[ESP+4C],AL               ;  GUARDA J3 EN LA MEMORIA 22FAFC para el 7ºdígito
00401C4D    .  66:0FBE4424 56      MOVSX AX,BYTE PTR SS:[ESP+56]
00401C53    .  8D3480              LEA ESI,DWORD PTR DS:[EAX+EAX*4]
00401C56    .  8D04F0              LEA EAX,DWORD PTR DS:[EAX+ESI*8]
00401C59    .  66:C1E8 08          SHR AX,8
00401C5D    .  C0F8 02             SAR AL,2
00401C60    .  8A4C24 56           MOV CL,BYTE PTR SS:[ESP+56]
00401C64    .  C0F9 07             SAR CL,7
00401C67    .  29C8                SUB EAX,ECX
00401C69    .  89C6                MOV ESI,EAX
00401C6B    .  8D34B6              LEA ESI,DWORD PTR DS:[ESI+ESI*4]
00401C6E    .  8D34B6              LEA ESI,DWORD PTR DS:[ESI+ESI*4]
00401C71    .  8A4424 56           MOV AL,BYTE PTR SS:[ESP+56]               
00401C75    .  89F1                MOV ECX,ESI
00401C77    .  29C8                SUB EAX,ECX                              
00401C79    .  89C6                MOV ESI,EAX
00401C7B    .  8D46 41             LEA EAX,DWORD PTR DS:[ESI+41]             
00401C7E    .  884424 4D           MOV BYTE PTR SS:[ESP+4D],AL               ;  GUARDA J4 EN LA MEMORIA 22FAFD para el 8ºdígito
00401C82    .  B8 08000000         MOV EAX,8
00401C87    .  381403              CMP BYTE PTR DS:[EBX+EAX],DL
00401C8A    .  74 05               JE SHORT DAE430_C.00401C91
00401C8C    >  BF 01000000         MOV EDI,1
00401C91    >  40                  INC EAX
00401C92    .  83F8 0C             CMP EAX,0C
00401C95    .  74 0D               JE SHORT DAE430_C.00401CA4
00401C97    .  8A5404 42           MOV DL,BYTE PTR SS:[ESP+EAX+42]
00401C9B    .  381403              CMP BYTE PTR DS:[EBX+EAX],DL              ;  Compara 22FAFA y siguientes con 9, 10, 11 y 12avo digito
00401C9E    .^ 75 EC               JNZ SHORT DAE430_C.00401C8C
00401CA0    .^ EB EF               JMP SHORT DAE430_C.00401C91
00401CA2    .  66:90               NOP
00401CA4    >  89F8                MOV EAX,EDI                               ; |
00401CA6    .  FEC8                DEC AL                                    ; |
00401CA8    .  74 5C               JE SHORT DAE430_C.00401D06                ; |
00401CAA    .  C74424 0C 40000000  MOV DWORD PTR SS:[ESP+C],40               ; |
00401CB2    .  C74424 08 4C004100  MOV DWORD PTR SS:[ESP+8],DAE430_C.0041004>; |ASCII "Info"
00401CBA    .  C74424 04 51004100  MOV DWORD PTR SS:[ESP+4],DAE430_C.0041005>; |ASCII "Gracias por registrarte."
00401CC2    .  C70424 00000000     MOV DWORD PTR SS:[ESP],0                  ; |
00401CC9    .  E8 EE000000         CALL <JMP.&USER32.MessageBoxA>            ; \MessageBoxA
00401CCE    .  83EC 10             SUB ESP,10
00401CD1    .  31C0                XOR EAX,EAX
00401CD3    .^ E9 F2FBFFFF         JMP DAE430_C.004018CA
00401CD8    >  C74424 0C 40000000  MOV DWORD PTR SS:[ESP+C],40               ; |
00401CE0    .  C74424 08 4C004100  MOV DWORD PTR SS:[ESP+8],DAE430_C.0041004>; |ASCII "Info"
00401CE8    .  C74424 04 6A004100  MOV DWORD PTR SS:[ESP+4],DAE430_C.0041006>; |ASCII "Nombre mínimo 4 caracteres."
00401CF0    .  C70424 00000000     MOV DWORD PTR SS:[ESP],0                  ; |
00401CF7    .  E8 C0000000         CALL <JMP.&USER32.MessageBoxA>            ; \MessageBoxA
00401CFC    .  83EC 10             SUB ESP,10
00401CFF    .  31C0                XOR EAX,EAX
00401D01    .^ E9 C4FBFFFF         JMP DAE430_C.004018CA
00401D06    >  C74424 0C 10000000  MOV DWORD PTR SS:[ESP+C],10               ; |
00401D0E    .  C74424 08 34004100  MOV DWORD PTR SS:[ESP+8],DAE430_C.0041003>; |ASCII "Error"
00401D16    .  C74424 04 3A004100  MOV DWORD PTR SS:[ESP+4],DAE430_C.0041003>; |ASCII "Registro fallido."
00401D1E    .  C70424 00000000     MOV DWORD PTR SS:[ESP],0                  ; |
00401D25    .  E8 92000000         CALL <JMP.&USER32.MessageBoxA>            ; \MessageBoxA

Resumen

- El nombre debe tener más de 3 dígitos aunque no lo usa para el número de serie.
- El serial tiene 12 dígitos dividiendose en tres partes, 111122223333.
- La primera parte 1111 es comparada directamente con DA1X.
- Segunda parte (2222), para los dígitos 5º, 6º, 7º y 8º hace lo siguiente:
dígito *4 + dígito = A
A*8 + dígito=B
B/100 = C
C/4 = D
dígito/80 = E
E-D = F    
F*4*F = G
G*4+G = H
digito - H = I
I+41 = J
GUARDA J EN LA MEMORIA 22FAFA
**Todo esto se puede resumir en dígito mod 19 + 41
- Tercera parte (3333). Finalmente compara el resultado del 5º, 6º, 7º y 8º dígitos con el 9º, 10º, 11º y 12º dígitos.

Ejemplo:

Serial = DA1X12345678
1 - (31h mod 19h) + 41h = 48h(Y)
2 - (32h mod 19h) + 41h = 41h(A)
3 - (33h mod 19h) + 41h = 42h(B)
4 - (34h mod 19h) + 41h = 43h(C)
Compara Y con 5
Compara A con 6
Compara B con 7
Compara C con 8
Luego el serial correcto sería DA1X1234YABC

Links


Hoy analizamos Copycat, un thriller psicológico de 1995 que, como muchas películas de la época, no pudo resistirse a incorporar
Warning: This challenge is still active and therefore should not be resolved using this information. Aviso: Este reto sigue en
Introducción Aquí tenemos un CrackMe diferente a lo que estamos acostumbrados, ya que en vez del típico número de serie
Warning: This challenge is still active and therefore should not be resolved using this information. Aviso: Este reto sigue en

Blooper Tech Movie XIII – Copycat

Hoy analizamos Copycat, un thriller psicológico de 1995 que, como muchas películas de la época, no pudo resistirse a incorporar elementos tecnológicos que, vistos desde una perspectiva actual, nos sacan una sonrisa. Vamos a desmontar algunos gazapos tecnológicos y curiosidades relacionadas con los sistemas informáticos que aparecen en la película.

El escritorio de tres pantallas: ¿el futuro en 1995?

La protagonista, la Dra. Helen Hudson (Sigourney Weaver), trabaja en un escritorio con tres pantallas, algo futurista para la época. En 1995, esto no era tan común como hoy en día. Para lograrlo, probablemente necesitaría tres ordenadores conectados de forma independiente, ya que los sistemas operativos y hardware de la época no solían soportar múltiples monitores en una sola máquina. Esto plantea preguntas interesantes sobre la logística de su set-up: ¿Cómo sincronizaba su trabajo entre tres PCs?

Un detalle curioso es que, en algunas tomas, se distingue la marca Compaq en los equipos. Compaq era una de las compañías líderes en la fabricación de ordenadores personales durante los 90 y conocida por sus soluciones de alta calidad. Este dato refuerza la idea de que el set-up de Helen estaba diseñado para representar lo último en tecnología de la época, aunque hoy resulte un tanto rudimentario. La elección de Compaq no es casual: en ese momento, era sinónimo de equipos potentes, usados tanto en oficinas como en entornos domésticos avanzados.

Internet y la magia de los módems

En una escena, Helen navega por internet con lo que suponemos es un módem de 28.8 kbps (o como mucho, un flamante 33.6 kbps, tecnología de vanguardia allá por 1995). Hasta ahí, vale. Sin embargo, la fluidez de su conexión sorprende: carga archivos, recibe correos y no se queda esperando con una pantalla de “Conectando…”. Pero lo mejor llega cuando, estando conectada, ¡suena el teléfono! En la realidad, esto cortaría la conexión o comunicaría, a menos que tuviera dos líneas telefónicas (algo raro en domicilios particulares de la época) o algún dispositivo milagroso que no conocemos.

¿Qué sistema operativo usa?

Aunque no se distingue claramente el sistema operativo, vemos una interfaz gráfica con ventanas y una consola de comandos. Esto podría ser un guiño a Windows 3.1 o Windows 3.11, ya maduro en esa época aunque la interfaz no termina de encajar. Sin embargo, también podría ser una mezcla ficticia para hacer que el entorno luciera “tecnológico” sin comprometerse demasiado con la realidad. Detalle curioso: en los 90, las películas solían personalizar las interfaces para no tener problemas legales.

El email como el epicentro de la tecnología

En los 90, el email era el rey. En las películas, los escritorios siempre tenían un gran icono de correo (a menudo animado, porque lo cool siempre parpadeaba). En Copycat, Helen recibe un correo con un archivo AVI de unos 30 segundos, lo cual plantea otra duda técnica: ¿Cuánto espacio ocupaba ese archivo en 1995?

Un AVI de 30 segundos probablemente tendría una resolución baja (320×240 píxeles o menos) y una tasa de compresión eficiente para la época, pero aun así podría pesar entre 2 y 5 MB, dependiendo de la calidad del audio y vídeo. Eso hubiera supuesto una odisea por email, ya que los servidores de la época limitaban los adjuntos a unos pocos cientos de KB. ¿Quizás el villano usó un protocolo privado para saltarse las restricciones?

Tomorrow.AVI

Tras recibir un inquietante archivo AVI, la protagonista llama a la policía, lo que desencadena una conversación cargada de decisiones tecnológicas cuestionables:

  • «¿Cómo le han enviado esto?» / «Consiguiendo su dirección de internet»: El archivo es descrito como enviado a través de «su dirección de internet», un término extraño para la época en la que lo habitual habría sido referirse al correo electrónico. Esto refleja un intento de sonar sofisticado sin usar los términos correctos.
  • «¿No podríamos localizarlo?»: La respuesta de los policías es que no pueden rastrear el origen del archivo «a no ser que esté conectado». Sin embargo, incluso en 1995, las cabeceras de los emails contenían suficiente información para rastrear el servidor de origen, aunque la práctica era más rudimentaria que en la actualidad. Ignorar esto parece una licencia creativa del guion o un concepto equivocado de localizar asociándolo quizá a las llamadas telefónicas.
  • «Es demasiado grande para pasarlo a disco»: Aquí surge el principal obstáculo: el archivo AVI es considerado «demasiado grande» para transferirlo a un disquete de 3,5 pulgadas (con una capacidad máxima de 1,44 MB). Aunque esto tiene sentido desde una perspectiva técnica, resulta extraño que fuera posible enviarlo por email en primer lugar, dado que los servidores de correo de la época tenían limitaciones más estrictas que un disquete. Esto sugiere una inconsistencia en la lógica tecnológica de la escena.
  • «Lo pasaremos a vídeo»: Ante la imposibilidad de transferirlo a un disquete, la solución propuesta es convertir el archivo a un formato reproducible en un dispositivo analógico (probablemente una cinta VHS) para transportarlo físicamente. Aunque esta decisión es plausible dentro de las limitaciones tecnológicas de la época, omite soluciones más digitales, como volver a enviarlo por email (¿acaso la policía no tenía correo electrónico?). Además, surge la pregunta de por qué no se recurre a los forenses técnicos de la policía (o del FBI) para analizar el disco duro, quienes, curiosamente, no aparecen en ningún momento de la película.
  • «Oh, Dios. ¿Cómo sabes todas estas cosas?» / «Malgasté mi juventud en los salones de videojuegos»: Esta frase añade un toque humorístico, pero no tiene relación alguna con las habilidades necesarias para resolver el problema en cuestión. Más bien, refuerza la desconexión entre los diálogos y las acciones tecnológicas presentadas.

Conclusión

Copycat (1995) es un buen ejemplo de cómo el cine de los 90 abordaba la tecnología con una mezcla de admiración y confusión. Desde la exageración de tener tres monitores en el escritorio de Helen hasta la torpe gestión del archivo Tomorrow.AVI, la película refleja tanto las limitaciones tecnológicas de la época como las libertades creativas de los guionistas.

En el caso del archivo AVI, los personajes deciden que no se puede gestionar digitalmente y optan por convertirlo a vídeo analógico, ignorando soluciones más simples como volver a enviarlo por correo electrónico (suponiendo que fuera posible). Este detalle, combinado con la ausencia aparente de personal técnico en la policía, subraya una desconexión entre la narrativa y las capacidades reales de la tecnología, incluso para 1995.

Aunque estos detalles pueden parecer cómicos 30 años después, forman parte del encanto de un cine que imaginaba el futuro sin comprender del todo su presente. Más que errores, son un recordatorio de cómo la tecnología ha evolucionado y de cómo nuestra percepción de ella también lo ha hecho.

Enlaces

  • Copycat [IMDb]
  • Historia de Internet [Wikipedia]
  • Correo electrónico [Wikipedia]
  • Compaq [Wikipedia]
  • Silicon Cowboys: la historia de cómo Compaq retó (y venció) a IBM y Apple [Xataka]
  • Formato de vídeo AVI [Wikipedia]
  • Analysis of video file formats in forensics (.avi example) [DiViLine]

Galería

ThisIsLegal.com – Realistic Challenge 2

Warning: This challenge is still active and therefore should not be resolved using this information.
Aviso: Este reto sigue en activo y por lo tanto no se debería resolver utilizando esta información.

Introducción

Realistic Challenge 2: You have heard about people being targeted by a new religion called Egitology. Another hacker infiltrated the group and discovered that the list of people they target is stored on the site but he doesn’t know where.

Break into the site, find the file and remove it. Also leave no evidence that you was ever there so they wont realise until its too late!

El enunciado del reto nos dice que tenemos que localizar la lista de objetivos y eliminarla sin dejar evidencias.

Analizando la seguridad de la víctima

Echamos un vistazo y vemos que tienen un Login para usuarios registrados, este será nuestro primer testeo.
Lo primero que se no viene a la cabeza con un formulario de este tipo es Inyección SQL, probamos varios métodos y tenemos suerte.
User: admin
Pass: ‘ or 1=1–‘;
 
 Vemos que hemos entrado como admin y enseguida nos llama la atención «Back up Database«. Pulsamos a ver que pasa.
 Obtenemos el hash de las claves de los usuarios Admin y SuperAdmin. Por suerte son hashes MD5. Obtenemos la clave de SuperAdmin y nos loguemos.

Solo nos queda borrar la lista de objetivos y nuestras huellas. Para ello borramos los siguientes archivos y reto superado.

Lista de objetivos: root/misc/targets
Logs: root/images/logs

Links

Solución al CrackMe Matrix de ZemoZ

Introducción

Aquí tenemos un CrackMe diferente a lo que estamos acostumbrados, ya que en vez del típico número de serie asociado a un nombre la comprobación se realiza mediante checkboxes con una matriz de 7×3. El CrackMe está realizado en Visual C++ lo que facilita en parte encontrar rápidamente la rutina de comprobación.

Comprobación

004013C5   > /8B7424 10     MOV     ESI,[DWORD SS:ESP+10]						;
004013C9   . |33FF          XOR     EDI,EDI
004013CB   > |8B86 74304000 MOV     EAX,[DWORD DS:ESI+403074]                   ;
004013D1   . |8BCB          MOV     ECX,EBX
004013D3   . |50            PUSH    EAX
004013D4   . |E8 6F020000   CALL    <JMP.&MFC42.#3092_CWnd::GetDlgItem>			; Lee el estado del checkbox
004013D9   . |8B48 20       MOV     ECX,[DWORD DS:EAX+20]
004013DC   . |6A 00         PUSH    0
004013DE   . |6A 00         PUSH    0
004013E0   . |68 F0000000   PUSH    0F0
004013E5   . |51            PUSH    ECX                                         ; 
004013E6   . |FFD5          CALL    NEAR EBP
004013E8   . |3B86 20304000 CMP     EAX,[DWORD DS:ESI+403020]					; Comprueba el estado del checkbox (1 activado 0 desactivado)
004013EE   . |75 20         JNZ     SHORT Matrix_C.00401410						; Salto a chico malo
004013F0   . |47            INC     EDI											; Incrementa contador
004013F1   . |83C6 04       ADD     ESI,4
004013F4   . |83FF 07       CMP     EDI,7										; ¿Hemos terminado de leer las columnas? ¿contador = 7?
004013F7   .^|7C D2         JL      SHORT Matrix_C.004013CB                     ; si terminan las columnas deja pasar
004013F9   . |8B4424 10     MOV     EAX,[DWORD SS:ESP+10]
004013FD   . |83C0 1C       ADD     EAX,1C										; contador de filas
00401400   . |83F8 54       CMP     EAX,54										; 3 filas = 1C+1C+1C=54
00401403   . |894424 10     MOV     [DWORD SS:ESP+10],EAX
00401407   .^\7C BC         JL      SHORT Matrix_C.004013C5						; ¿Hemos terminado de leer la fila? ¿contador = 54?
00401409   .  68 D8304000   PUSH    Matrix_C.004030D8                           ;  ASCII "Registration successful!"
0040140E   .  EB 05         JMP     SHORT Matrix_C.00401415
00401410   >  68 C8304000   PUSH    Matrix_C.004030C8                           ;  ASCII "Not registered!"

En la rutina de comprobación se ve fácil un CMP EDI,7 por lo que podemos deducir que si el creador no se ha molestado mucho la comprobación se realiza de izquierda a derecha y de arriba hacia abajo.

Orden de comprobación

Tal es así que si ponemos un breakpoint en 4013E8, podemos ir sacando el estado correcto de los checkboxes sin mucha molestia.

Resultado final

Enlaces

CanYouHack.it Mobile2 Challenge – Follow The Web (English)

Warning: This challenge is still active and therefore should not be resolved using this information.
Aviso: Este reto sigue en activo y por lo tanto no se debería resolver utilizando esta información.

Table of Contents

Intro

This crackme is for the challenge Mobile 2 of canyouhack.it.
This time you need to understand how the crackme works over the web.

Decompiling

The crackme is given again at Google Play, so the first step is to install and recover the APK for decompiling. The latter, I leave to you.
Open the victim with APK Studio and view the content of Mobile2.java
First we view one link:
http://canyouhack.it/Content/Challenges/Mobile/2/index.php
 If we go to the link, we view one string like a hash: 68a571bcf7bc9f76d43bf931f413ab2c. Umm, it’s like MD5. Go to decrypt online and we get the pass: «canyouhack.it». But if we test this password in the crackme, surprise!, nothing happens. We need to continue analyzing the code. Later we view the next interesting link:
«http://canyouhack.it/Content/Challenges/Mobile/2/submit.php?Token=» + Mobile2.token + «&Attempts=»
The program submit one token and concatenate with the number of attempts. Ok but what is the token and what is the number of attempts?
In this point we have to try with the information we already have.
Testing with the link of bottom we get “Nice try!” message.
http://canyouhack.it/Content/Challenges/Mobile/2/submit.php?Token=68a571bcf7bc9f76d43bf931f413ab2c&&Attempts=0
Testing with the link of bottom we get “Very Good, the password is Top*****!” message.
http://canyouhack.it/Content/Challenges/Mobile/2/submit.php?Token=68a571bcf7bc9f76d43bf931f413ab2c&&Attempts=1

  Links