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
=========================================================================








2 comentarios:

  1. Richa, no entiendo una cosilla. Cuando pasas el codigo php a base64 se genera un hash, si cambias un valor de ese hash, el resultado de ese hash no deberia ser otra cosa muy distinta? Luego pense bueno hago un script que automaticamente cambie los valores del hash para dejarlo original, pero luego pense, el antivirus cuando analiza algo hace como una emulacion, quiero decir, el antivirus no analiza el codigo en si, si no el resultado de la ejecucion de ese codigo no? Por lo tanto mi supuesto script seria inutil, entonces, que es lo que haces porque no lo entiendo muy bien?

    ResponderEliminar
    Respuestas
    1. * El hash sigue siendo el mismo pero con saltos de línea, al parecer al enviarlo a la función base64 los remueve.
      * Realmente no lo analiza en una virtual box analiza el código tal cual, ya que la ejecución de la webshell se carga en memoria y los antivirus no analizan en memoria.

      Eliminar