domingo, 31 de agosto de 2014

Evasion de Antivirus - OSSLSigncode




Antes de empezar quiero disculparme por haber estado tanto tiempo ausente, espero poder sacar tiempo como lo hacía antes para seguir con este blog...


Hoy vamos a ver cómo podemos evadir una protección Antivirus con tan sólo firmar digitalmente nuestro ejecutable.

Existen multitud de herramientas gratuitas que nos permiten firmar digitalmente archivos PE, incluso hay Entidades Certificadoras (CA) que emiten certificados gratuitos, pero como son bastantes las opciones, en esta entrada nos centraremos solo en una herramienta con la podremos crear nosotros mismos el certificado.
Dicha herramienta se llama OSSLSigncode.

Esta herramienta (OpenSSL-based signcode utility) es multiplataforma y utiliza OpenSSL y libcurl para firmar archivos EXE/CAB.


Instalación


Bien, lo primero que haremos será descargar OSSLSigncode desde la página del proyecto:



Una vez descargado el archivo lo descomprimimos:


Y finalmente para instalarlo debemos escribir los siguientes comandos:

./configure
make
make install


 Listo! ya tenemos instalada la herramienta, ahora toca jugar con ella...


Uso

Lo primero que haremos será generar una clave privada RSA que en este caso será de 512 bits (se puede indicar de 2048 bits si se desea) y con un algoritmo de cifrado Triple-DES.


Para comprobar que efectivamente se ha creado la clave como queríamos, podemos escribir los siguientes comandos.


 De momento todo perfecto. Seguimos.

Ahora convertiremos la clave en formato binario (.der)

 

Listo, ya tenemos creada nuestra clave privada. Turno para crear el certificado autofirmado.


Por último y antes de poder firmar nuestro ejecutable, debemos convertir el certificado autofirmado al formato CryptoAPI de Microsoft (.spc).


Perfecto!!! Ya tenemos todo listo para poder firmar nuestro ejecutable.

En mi caso utilizaré el troyano educativo Flu, de Flu-Project.

Dicho troyano tiene un nivel de deteccion bastante alto, ya que al haber sido publicado hace bastante tiempo se ha analizado bastantes veces por lo que es detectado por la mayor parte de los motores antivirus.

Bien, os dejo el reporte de dicho troyano educativo sin haberlo modificado, para que veáis cuantos motores de antivirus lo detectan:







32 motores de 54 detectan el ejecutable como malicioso, es decir, bastantes...

Veámos ahora el resultado subiendo la misma muestra pero habiendo firmado previamente el ejecutable con el certificado que hemos creado.

Para ello procedemos a firmarlo:


Subimos la muestra del troyano educativo firmado con nuestro certificado:




Pero qué co****es!!!  Hemos bajado el numero de detecciones a 17 de 53, pero no sólo eso, si no que si nos fijamos en el reporte, podremos ver que antivirus como Kaspersky, McAfee, Symantec, TrendMicro y una larga lista dan el ejecutable como bueno...



Pero ¿cúal es el motivo de este resultado?.

Pues bien, el motivo es que ciertos antivirus contienen algunas politicas que excluyen del analisis el archivo cuando está firmado digitalmente, para así, aumentar el rendimiento.
Así algunos pueden competir por ser el antivirus que menos recursos consume.  ;)

Esta es una de las cientas de formas con las que se puede evadir la proteccion de un antivirus, el proximo día veremos otra herramienta de firmado pero que valga para Windows.

Saludos!!!



Referencias
http://www.hackplayers.com/2012/11/evasion-de-antivirus-con-ejecutables-firmados.html
http://sourceforge.net/projects/osslsigncode
https://code.google.com/p/flu-project/


**No me hago responsable del mal uso que se de a la información presentada. Esta información es de carácter didáctico.**