
Artículo · Ingeniería Inversa
Parcheando el software Wavepad del CTF
Introducción
Comenzaremos analizar un software de edición de voz, logre conocerlo por un CTFs que estuve y requería distorsionar la voz para obtener la bandera, es un software TRIAL que dura 14 días, de lo cual pensé, necesito este software para resolver CTFS a futuro así que me puse analizarlo y se pudo parchar, manos a la obra.
Información de la víctima
|
Víctima |
WavePad |
|
URL |
www.nch.com.au/components/es/wpsetup.exe |
|
Protección |
Ninguna |
|
Dificultad |
Fácil |
|
Herramientas |
RDG Packer Detector y X32DBG |
|
Objetivos |
Crear parche |
|
Reverser |
Lior |
|
Lugar / Fecha |
19/12/17 |
|
Teams: |
CrackSLatinoS – PeruCrackers |
Atacando el software Wavepad
Antes de todo debemos saber en dónde se instaló la aplicación y crear un backup, por medidas de seguridad si alteramos un byte erróneo. Ver Figura 1.
Fig. 1 Generando Backup.
Vamos a ver cuáles son las limitaciones del software al no tener la licencia. Observamos en los cuadros amarillos que nos muestra que no tenemos licencia y que tenemos 14 días de prueba. Ver Figura 2.
Fig. 2 Ver cuadros amarillos.
Luego ver si tiene alguna medida de seguridad o si se encuentra empaquetado, para ello usaremos RDG Packer (http://www.rdgsoft.net/), es muy útil, ya que nos muestra que se desarrolló en Microsoft Visual C++ 8,0 y que no se encuentra empaquetado. Ver Figura 3.
Figura 3. Analizando la medida de protección y desarrollo.
Uno de los procedimientos es ponernos en el peor de los casos es decir que debemos caducar el software para ellos adelantamos la fecha en mi caso lo adelante 2 meses, Ver Figura 4.
Fig. 4 Adelantamos la fecha.
Procedamos a ejecutar el software y ver que nos muestra que el software caduco y que debemos comprar el software en el cuadro amarillo. Ver Figura 5.
Fig. 5 Caduco el software
En este caso no vamos a realizar una validación por serial, ya que requiere más análisis, ya que debemos ver si realiza una validación online. Ver Figura 6.
Fig. 6 Validación por serial.
Tener en cuenta que cuando depuren el software deben caer en este BreakPoint de Wavepad.exe, para lo que no estén en este BreakPoint deben presionar F9 o play (Cuadro amarillo), para poder llegar al BP adecuado. Ver Figura 7.
Fig. 7 Debemos llegar a este punto.
Vamos a buscar las cadenas de texto o string de la aplicación, como les comente tener en cuenta que debemos estar en el BreakPoint Wavepad.exe, ya que si no llegamos a este BP, buscara la cadena de texto de otras aplicaciones o dll. Ver Figura 8.
Fig. 8 Buscando string de wavepad.
Recordar que la palabra clave se obtuvo en la obtención de información (Ver Figura 5), debemos buscar la palabra demo, para ello x32dbg lo filtra y nos muestra una cadena peculiar (flecha roja), con dirección de memoria 01502309, doble clic en el texto de la flecha roja. Ver Figura 9.
Fig. 9 Buscando palabra clave Demo.
Llegaremos a la dirección 01502309 de lo cual vemos líneas más arriba los famosos saltos je con dirección 015022F2, de lo cual agregamos un BreakPoint y luego le damos Play o f9. Ver Figura 10.
Fig. 10 Veras el salto en donde no deseamos ejecutar el Bad Boy (Chico Malo)
Nota: Quizás cuando realice PLAY o presione F9, no llegue al Salto para ello deberán retroceder y presionar F9 o play hasta llegar al BreakPoint que agregamos. Ver Figura 11.
Fig. 11 Botón para retroceder.
Cuando lleguen al BreakPoint tener en cuenta que por defecto no se realizara el salto y procederá a mostrarnos que el BAD BOY, indicándonos que compremos el software o ingresamos el serial, para evitar esto necesitamos forzar el salto para ello debemos cambiar el salto JE o JMP, este salto evitara si o si el BAD BOY, seleccione la línea a modificar y luego presiones la barra espaciadora de su teclado, le mostrara el código de la línea seleccionada y deberá modificar por JMP. Ver Figura 12.
Fig. 12 Cambios realizados JE por JMP.
Luego procedemos a presionar F9 o PLAY y se ejecutó todo el software sin mostrarnos, sin embargo nos aparece la tediosa ventanita que no tenemos la licencia. Ver Figura 13.
Fig. 13 Cuadro amarillo y rojo nos muestra que no tenemos licencia.
Pasaremos a generar nuestro parche, vamos a realizar clic secundario luego clic en Parches. Ver Figura 14.
Fig. 14 Generando nuestro Parche.
Haga clic en Aplicar parche, luego lo guardamos con el nombre de wavepadpatch.exe, y guardar. Ver Figura 15.
Fig. 15 Guardando nuestros cambios y generando nuestro patch.
Pasaremos a ejecutar la aplicación y obtenemos el software funcional. Ver Figura 16.
Fig. 16 Funciona: D
Conclusión
- Este método es la más básica que debemos conocer, buscando el string o la cadena de texto.
- No presenta la seguridad o empaquetamiento de la aplicación.
- Se puede cambiar más saltos en el string para que nos aparezca que tengamos los registros.
Saludos: Bueno saludo a Omar Jacobo de Backtrack Academy por publicar los artículos, que últimamente estuve flojo porque estuve en tres CTFs muy interesantes, otro saludo a Davicorm por enseñarme los tips, a Nox por los consejos aunque pocos XD, a Apuromafo por los tutos y ayuda en ctfs, a Softdat por los videos tutoriales en Youtube, y saludo Abel por su primer video de reversing.
¿Quieres aprender estas técnicas en profundidad?
Continúa tu ruta con Pentesting .

Escrito por
Rafael PeruCrackersEstudiante de la ingenieria Inversa usando las herramientas de Ollydbg y el actual IDA PRO, actualmente me encuentro investigando sobre Creacion de Exploit, con animo de ayudar a las personas que les interesa el mundo del reversing, :)


