sábado, 18 de febrero de 2012

Método RIT el inmortal


Que España se va a la mierda ya es un hecho, pero que nosotros nos hundamos con ella... ¡agarrate y rema majete!
Si en algo nos diferenciamos del resto de mortales, es que la curiosidad nos roba tiempo de sueño, familia, amigos y tanta dedicación, no debería... ¡no se equivoquen! ¡debé de estar recompensada! Lástima que nos conformemos TAN SOLO con conseguir aquello que nos intriga detrás de la pantalla, apartándonos de todo lo que nos rodea... ¡Oye te cedo mi vida! ¡luego no me pidas la visa...! ¡claro!

Y después de todo el tiempo perdido en actualizar nuestros Service Packs personales, se convierte en la mayoría de los casos, en algo innecesario. Tan innecesario como que viejas glorias como la que vengo a mostrar, en 2012 siguen traducciéndose en catastróficas pérdidas monetarias a empresas y demás usuarios.

Hablo del Método RIT. La primera vez que escuché sobre este método para indetectar malware, venía de la mano de Octalh, el cual se basa simplemente en cambiar el flujo normal de la aplicación (en nuestro caso un malware), mediante saltos en sus direcciones de memoria, apuntando a las nuevas posiciones de las instrucciones.

¿Para qué queremos cambiar el flujo? ¡Muy simple! Las firmas antivirus, contienen listas enormes con fragmentos de código de malwares detectados, que al scannear un ejecutable malicioso, alertan de encontrar dicho patrón, detectandolos y eliminándo el malware. La forma más certera de modificar la cadena, es cercándola mediante aplicaciones como Signature Zero por Thor o el conocido AVFucker, desarrollado por Sr_Sombrero y debuggeando la aplicación para su posterior modificación.

Para hacer un salto a otra posición donde copiar nuestro código, nos será necesario buscar o crear un hueco en el ejecutable. La herramienta Topo, en la que aparece Garfield en el icono (un gato) ¡por la cará!... se encarga de facilitar este trabajo. Así que elegí el STUB de un Crypter programado por M3N3G@TT1 y Topo buscó un lugar donde agregar esos 90 NOPs.


La dirección de memoria donde se hizo el hueco, es 0041168E. Dato importante, el cual deberemos de apuntar para agregar nuestras instrucciones. Utilizaremos OllyDbg para el resto de trabajo, pero sin asustarnos demasiado, ya que jugaremos más con la lógica que con el ensamblador. Así que arrastraremos nuestro malware al programa.


Buscaré el segundo NOP, así que sumaré uno a la dirección de Topo 0041168F... me gusta ser organizado y demostrar que también sé sumar. ;)
Presionaremos (Control+G) para llevar a cabo nuestra búsqueda.


¡Ahí tenemos nuestro hueco!


Pensemos que ya tenemos las firmas acorraladas, así sabremos que zona del ejecutable modificar... ¡Qué coño! ¡a mi me gusta la aventura! Así que antes de ir a por las firmas, pegaré los saltos a suerte. Modificaré a ojo una retahíla de instrucciones MOV y un XOR, seleccionaré todo el código apuntando siempre la dirección de la primera instrucción 004040C5 y la de debajo de la selección, 0040410A. Procederemos con el Binary Copy.


De vuelta a los NOPs, seleccionamos todos, ya que son muchas instrucciones y si nos pasamos, posiblemente pisen código ejecutable de las siguientes direcciones. Haremos un Binary Paste.


Para que este código sea utilizado por la aplicación, deberemos de colocar los saltos. Iremos al primer NOP debajo de las instrucciones agregadas y pegaremos un salto con la instrucción JMP a la dirección 0040410A. Deberemos de hacer doble clic para editar la instrucción.


Quedará así de hot. ;)


Si presionamos la tecla Enter sobre la instrucción de salto, nos llevará hasta su dirección real, para pegar este último salto, al inicio del código. Subiremos hasta el inicio 004040C5, doble clic de nuevo sobre el MOV, y "JMP 0041168F" sin comillas.


Otra de las cosas que me gustaría agregar al método, sería la de suprimir el espacio de código inservible por NOPs, de tal forma que el ejecutable además de quedar con una modificación mayor, podrá ser utilizado para mover más código. Seleccionaremos sin machacar las instrucciones útiles y las llenaremos de NOPs.


Botón derecho, y llevaremos todas las modificaciones hasta el ejecutable, aunque yo soy más metódico y me gusta mover las direcciones modificadas seleccionando una a una.


Haremos un guardado del archivo sobre la ventana ejecutable.


Y por curiosidad, echaré un vistazo con Mod Viewer al ejecutable.


Para los scanneos, recomiendo sin lugar a dudas la herramienta web para análisis de malware codeada por DSR!, compañero de administración en el foro de indetectables... groso como dicen allá.

Así que aplicando RIT, edición hexadecimal (tan solo en strings no comprometedoras) y un método que se me ocurrió para las firmas en APIS, que ya comentaré en el blog, pasó de ser detectado desde 21 de 37 antivirus, a tan solo 6 de 37, que por falta de tiempo, no dedicaré a buscar sus firmas. Compartiré el STUB con fines de aprendizaje y por si quieren limpiar los que quedan. Avira, desaparece con mi anterior Método BugDLL, pero aparecen nuevos.



Probado en WindowsXP SP2, WindowsXP SP3, Windows7 32-bits y Windows7 64-bits,.

10 comentarios:

  1. recuerdo cuando leí por primera vez este métodos en las revistas hackxcrack :) Saludos!

    ResponderEliminar
  2. En Hackxcrack número 28:
    https://rs11l32.rapidshare.com/#!download|11tl6|5136807|hxc28.pdf|11886|R~0|0|0

    Un saludo ;)

    ResponderEliminar
  3. Muy bueno amigo, jejeje siempre quise aplicar este metodo pero tenia dudas y creo haberlas sacado despues de ver tu material tan explicito. :D
    Muy bueno Amigo, tu blog como mi favorito .


    PD. Puedes publicar algo de esto, pero que sea mas entendible, ( ESPAÑOL) jejejeje no le entendi bien a esto y puede ser una gran entrada tambien.
    Mira: http://www.youtube.com/watch?feature=player_embedded&v=R6I0GeEh22c

    Salu2!!!!

    ResponderEliminar
    Respuestas
    1. Muchas gracias por leerme!

      Bien bien! voy a ver de que se trata!

      Me tienen que traer una antena Yagui direccional de 18dbi... ya contaré si encuentro alguna vecinita nueva.

      http://www.enelpc.com/2011/08/destrangis-en-la-wifi-de-la-alemana.html

      Saludos! ;)

      Eliminar
    2. Asi es, solo que este es con backtrack 5 y es crackear la contraseña WPA2 sin usar un diccionario para atinarle a la password.

      Eliminar
  4. Bro muy buen aporte no hay mucha documentación de esto me salvaste la vida suerte

    ResponderEliminar
  5. Hola bro muy bueno lo que enseñas, una pregunta ¿ es normal que aveces moviendo codigo y creando los saltos, se rompa el exe y no funcione despues ?

    ResponderEliminar
  6. Hola muchas gracias! Es importante revisar los permisos de las secciones antes de realizar las modificaciones, si el análisis del debugger está en lo cierto y es código ejecutable el fragmento que quieres modificar no deberías de tener problemas. Saludos

    ResponderEliminar
    Respuestas
    1. Bro a que te refieres con el analisis del debuger ? a que tenga activado el analisi de codigo en el ollydbg ? saludos !

      Eliminar