domingo, 14 de junio de 2015

4n4lDetector v1.1

¡Joder qué tiempo de mierda hace ahí afuera! Ha llegado ese momento incómodo en el que todo el mundo, se vuelve en tu contra. Si te metes en la cama y te arropas, pasas calor. Si asomas un pie por el extremo de la sábana, corres el riesgo de perder el meñique por congelación. Si se te ocurre salir en pantalón largo, hasta los gayumbos se fusionan con los cachetes de tu pompis, y esto junto a la transpiración de tus pelotas se convierten en enemigo público número uno. ¡Porqué te la empieza a sudar todo! Y si por el contrario decides pasarte a los pantalones cortos... date por jodido porque algo malo tiene que pasarte, tú hazme caso…  ¡Qué esto es un sin vivir!

La verdad es que no me apetece escribir el post pffffffff jajajaa… preferiría estar tirado al solecito en mi terraza chupando del polo flash, pero como alternativas después de un fin de semana tan movidito solo me quedaba publicar algo o entrar en putalocura, y no sé qué estará ocurriendo, pero últimamente no la actualizan con buen contenido, pues eso… que estoy perdiendo el interés.

Así que me he dicho… voy a regalarles a los chavales y especialmente a las chavalas, la nueva versión de mi software 4n4lDetector. Bromas a un lado, le he dedicado bastantes horas para que sea aún más potente que la anterior versión, y si os digo que estoy muy contento con los resultados que esta herramienta me está dando, no os engaño. Además no tengo que venderos nada, porque todo conmigo siempre es gratis.

¿Qué cosas nuevas trae esta versión de 4n4lDetector?

Si recuerdan mi anterior entrada en la que desarrollé un Crypter para hacer malware indetectable. Este utilizaba un stub llamado enelpc.exe, que tras utilizarlo con 4n4lCrypter, el archivo resultante Crypt.exe transportaría finalmente el malware cifrado. Este sería el resultado al arrastrar ambos ejecutables a la herramienta.

He incluido como ven una rutina de detección de Droppers, que funcionará sobre aplicaciones de tipo Binder, Joiner y Crypters que se basan en stubs.

Siguiendo con los Crypters, una de las publicaciones de indetectables.net realizada por el usuario MaggicianCOr, se trataba de otro modificado por él mismo. Decidí descárgalo y usarlo para echarle un vistazo al binario cifrado, sirviendo de buen ejemplo para mostrar el resto de información que nos brinda 4n4lDetector.

Esta nueva versión estudia la posible abundancia de caracteres extraños, normalmente generados de forma aleatoria por el malware, para incluir un añadido de polimorfismo a las descripciones de los binarios generados. La siguiente imagen muestra una detección de polimorfismo, seguida de la cantidad de código Dropper, y la anomalía tras el Entry Point de encontrar un salto condicional JPO, el cual delata la modificación del ejecutable compilado en Visual Basic 6.

Si recuerdan la entrada en la que cifrábamos un malware a mano, se incluyeron unos algoritmos de rotación, sumas, restas e instrucciones XOR tras el Entry Point del troyano Poison Ivy. Algo que también llamará la atención de 4n4lDetector ya que estudia los primeros 25 Bytes del punto de partida de todas las aplicaciones.

Algo que no podía faltar en el módulo de ejecución, sería la posibilidad de cargar librerías. Con lo que esta nueva versión cuenta con un nuevo ejecutable añadido de apenas 2,7 KB, para poder estudiar sus Memory Dumps.

Los algoritmos encargados de la búsqueda de nombres ejecutables también han sido mejorados, con lo que ahora tendremos en este apartado una información más amplia y mejor obtenida.

Algún usuario me pidió que se guardasen en un LOG las extracciones, así que preparé una función por consola para la herramienta, en la que si se le pasa como parámetro sin comillas de ningún tipo, el nombre del ejecutable a analizar, esta genera un TXT en la raíz de 4n4lDetector con el nombre de la aplicación analizada.

Algo que creo recordar nunca había nombrado en el blog, son los métodos Call API By Name o Call API By Hash. Estos métodos son utilizados para invocar a las API sin declararlas como tal. Mediante algoritmos se calcula el hash como nombre con el que hacer referencia a un API o se suelen llamar a las funciones cargando directamente las librerías con LoadLibrary y copiando de su memoria las instrucciones. El malware puede utilizar estas técnicas para esconder del análisis estático, cuales son las funciones que realmente utilizará, con lo que me pareció una buena idea incorporar la detección de estos métodos. La siguiente imagen muestra un simple Downloader, camuflando el API UrlDownloadToFile.

Qué raro se me hace desarrollar métodos de evasión antivirus y malware como hobby y a su vez combatirlos también como hobby jajaja


Saludos 4n4les! ;)

2 comentarios:

  1. Como te lo Curras Germán!! un beso, (soy Bea)

    ResponderEliminar
    Respuestas
    1. Muchas gracias!! Eres Bea alumna mía? jeje
      Saludos! :)

      Eliminar