miércoles, 31 de julio de 2013

Hacer webshell indetectables parte II de III

Continuando con el anterior post, hoy se va a tratar la publicación de una herramienta para agilizar el método utilizado a la hora de conseguir que no se detecte la webshell y así dejar automatizado este proceso.
clip_image002[4]
Imagen 1: AVFuck ejecución sin parámetros
Antes de nada se explica en profundidad el funcionamiento interno para que puedan contar con las nociones necesarias sobre lo que hace la herramienta, para una mejor comprensión. La aplicación va a crear varios ficheros partiendo del original, donde cada fichero generado se va a diferenciar en su contenido, en función del número que se haya enviado como tercer parámetro a la aplicación. Un ejemplo a pequeña escala sería tener una web shell con una longitud de 30 caracteres en la que se ejecutase la aplicación de la siguiente forma:

AVFuck_TPlain.exe 0 end 10 ficheroConWebshellEnBase64
El resultado va a ser la creación de 3 ficheros llamados 0-10.php, 10-20.php, 20-30.php, donde el primero varia los 10 primeros caracteres con respecto del original, en el segundo se varia desde el carácter 10 hasta el 20 y el tercero desde el 20 hasta el 30. Para poder realizar las variaciones, lo único que se ha incluido ha sido una salto de línea entre cada carácter de ese rango.

Tomándose como referencia este ejemplo, se podría poner un caso real, el que se utilice la web shell c99, como se indicó en el primero post. Una vez se tenga la web shell cifrada en base64 y volcada en un fichero,  lo siguiente será lanzar la mi aplicación de la siguiente forma:

Primero será necesario colocarse en el directorio de la App

Cd “C:\xxxx\App\”

Y después ejecutarla de esta forma:

AVFuck_TPlain.exe 0 end 10000 ficheroConWebshellEnBase64

Una vez termine saldrá el mensaje ……….End!
clip_image004[4]
Imagen 2: AVFuck ejecución con parámetros
Generando los siguiente ficheros:
clip_image006[4]
Imagen 3: Ficheros resultantes
El próximo paso será analizar los ficheros y eliminar los detectados.
clip_image008[4]
Imagen 4: Análisis y detección de ficheros

Como se ve, ha detectados 22/23 con lo cual nos deja un fichero libre de firma el 0-10000.php y si se realiza la prueba de copiarlo y pegarlo en el directorio web y a continuación se procede con su apertura desde del navegador se puede ver que se ejecuta correctamente, con lo cual ya se tendría la webshell libre de firma y funcional.

clip_image010[4]
Imagen 5: c99 indetectable a AVIRA y en ejecución
Herramientas:
AVFuck_TPlain Compilado + Base64(C99) http://www.multiupload.nl/SJK01DU9BD


Conclusión:
Se le ha explicado como utilizar la herramienta para facilitar el método propuesto en el anterior post. En el próximo post continuando con la temática se propondrán otros métodos más habituales y sus herramientas.

=========================================================================
Hacer webshell indetectables parte II de III
Hacer webshell indetectables parte III de III
=========================================================================

jueves, 25 de julio de 2013

Hacer webshell indetectables parte I de III

Una web shell es una herramienta común entre los defacers una vez que se ha logrado subir algún fichero a un servidor web para de este modo sea mas cómodo curiosear en el servidor, entre las web shell hay una muy reconocida que lleva muchos años en la red es la llamada C99 que se puede encontrar en infinidad de servidores.
Sé va a enseñar como hacer indetectable para saltarse la detección del Avira Antivirus en su versión free.
Una vez descargada y analizada por el antivirus es detectada como PHP/C99Shell.B
clip_image002
Imagen 1: Web Shell sin codificar
Lo siguiente será encodear la web shell y que siga funcional y para ello es necesario realizar algunos cambios como cerrar los tags php y abrirlos quedando de la siguiente forma:
¿><?php ...c99....?><?php
Para codificarla es necesario apoyarse en alguna aplicación que lo codifique en base64, en el ejemplo se ha utilizado una aplicación gratuita disponible en http://www.base64encode.org/
clip_image004
Imagen 2: tags añadidos al final y al principio – codificada
Con el resultado codificado lo siguiente será crear un archivo php en mi caso lo he llamado C992.php y volcar allí el código en base64 quedando de la siguiente forma
clip_image006
Imagen 3: Web Shell encodeada en base64
Una vez comprobado que sigue funcional, hay que probar si el antivirus sigue detectándolo antes de seguir. Y como se puede ver sigue alertando Avira pero con una variante en este caso la firma en vez de llamarse PHP/C99Shell.B ha cambiado la B por una A
clip_image008
Imagen 4: Avira con c99 en base64
Y aquí es donde entra un método común entre los modders de malware y no es otro que el AVFuck, se trata de buscar en el caso de un fichero binario el offsets donde cae la firma que el antivirus le ha puesto al fichero supuestamente dañino, lo que en vez de offsets y un binario se hará a caracteres de un fichero de texto de tal modo que rompa la firma.
Tras hacer varias pruebas cambiando caracteres de la string en base64 que es en lo que básicamente se basa el método AVFuck se logró haciendo dos simples salto de línea antes y después de un carácter dejarla indetectable a Avira quedando de la siguiente forma.
clip_image010
Imagen 5: firma rota
Quedando de esta forma indetectable y funcional.
Conclusión:
Los antivirus siguen utilizando las mismas técnicas ineficaces con los binarios y los archivos de texto plano. En la próxima entrada se desarrollará una aplicación para facilitar el proceso del método AVFuck

=========================================================================
Hacer webshell indetectables parte I de III
=========================================================================