¿Cómo me protejo contra los ataques en este script php?

5

Debido a una vulnerabilidad en la forma en que se instaló PHP (VPS compartido con PHP instalado como un módulo de Apache en lugar de CGI) y, por lo tanto, cómo se configuró OSCommerce (con la seguridad de 777 en ciertos directorios), encontré una serie de scripts PHP en un servidor web de amigos que había sido cargado por hackers. El código real se ocultó utilizando varias capas de cifrado. Tenían un archivo PHP con una gran cadena asignada a una variable $ str. Luego utilizaron la siguiente línea para descifrar la cadena en un código PHP malicioso e intentaron ejecutarlo visitando la página. La declaración utilizada para descifrar la cadena codificada fue eval(gzinflate(str_rot13(base64_decode($str))));

No pueden ejecutar el código desde este directorio ahora porque hay un archivo .htaccess que impide la ejecución de los scripts de esa carpeta que se colocó desde que descubrimos que el sistema estaba comprometido, esta es una solución temporal, pero probablemente no la mejor.

Ejecuté este script en un vm de Linux que se ejecuta en mi Mac al mismo tiempo que modificaba la declaración anterior a echo(gzinflate(str_rot13(base64_decode($str)))); para que pudiera ver el código fuente. Lo puse en pastebin por el interés de la gente aquí.

Pegue la fuente de la página pirateada

Por lo que puedo deducir, este parece ser un script bastante sofisticado que intenta todo tipo de trucos para obtener acceso a su servidor, pero no estoy lo suficientemente familiarizado con PHP para identificar todas las vulnerabilidades que esto podría intentar explotar. ¿Qué controles debo realizar en mi sistema si puedo asumir que lograron ejecutar esto en algún momento en el pasado?

    
pregunta conorgriffin 06.07.2011 - 00:52
fuente

3 respuestas

10

Lo que se cargó es un script de shell popular, un método común de explotación posterior. El que tienes parece que es de la variedad C99.

En resumen, es un script que le da al atacante un panel de control para su servidor, de modo que pueda ejecutar comandos, descargar e instalar cosas maliciosas, encontrar archivos con contraseñas, infectar aún más el sistema, lanzar otros ataques y otros.

OsCommerce recientemente tuvo una vulnerabilidad de RFI muy severa que permite que se carguen exactamente estas cosas, y probablemente sea así como lo obtuvo: hay herramientas automatizadas que buscan la vulnerabilidad y la explotan.

Su sistema ya no es seguro: el atacante puede haber descargado rootkits o puede haber creado una segunda puerta trasera en su máquina, por lo que eliminar el archivo no será suficiente.

La solución ideal es realizar un borrado completo y restaurar todo lo que desee de las copias de seguridad, es decir, si confía en que sus copias de seguridad estén limpias.

Si no puedes hacer eso, debes hacer una investigación completa del servidor, pero nunca puedes estar seguro.

En cuanto a su pregunta: no tiene sentido enumerar los diferentes ataques que contiene el script, ya que básicamente proporciona una línea de comandos a su servidor y el atacante podría ejecutar cualquier comando que desee o descargar las herramientas que necesite. Solo tiene algunas funciones preconfiguradas para su conveniencia.

    
respondido por el john 06.07.2011 - 13:34
fuente
5

Vale la pena ver esta pregunta: Qué hacer después de una posible intrusión ya que hay una variedad de temas importantes Dependiendo de lo que tengas en tu servidor.

A menos que sea un profesional con experiencia, lo más seguro que puede hacer es borrar el servidor y reinstalarlo desde los discos / fuentes de instalación limpia, y luego volver a cargar los datos de las copias de seguridad después de verificar que se crearon antes la intrusión.

Esto se debe a que el atacante podría haberse extendido más allá de solo los comandos que ve en el código fuente para hacer casi cualquier cosa si lograba obtener acceso de root, y las herramientas que tiene para detectar la intrusión pueden no detectar un kit de root implementado inteligentemente .

Si tiene más tiempo / experiencia, puede ejecutarla en una Máquina Virtual en un entorno restringido (para evitar que ataque a cualquier otra cosa) y ver qué hace. Querrá un registro extenso tanto en la máquina virtual como en la red para ayudarlo a identificar las actividades. A menudo, esto es mucho más esfuerzo de lo que vale la pena, a menos que lo haga para su trabajo diario, y muchas organizaciones solo optan por el enfoque de "bomba nuclear desde la órbita" y asumen que todo puede haber sido comprometido.

    
respondido por el Rory Alsop 06.07.2011 - 12:13
fuente
1

En realidad, los tipos de código que se ejecutan en esos tipos de código de shell son más parecidos a los administradores de archivos y es poco lo que puede hacer para evitar que se ejecuten, podría intentar evitar que ciertos tipos de archivos se instalen en la imagen directorios por ejemplo.

El objetivo es proteger su sitio de permitir que se cargue código malicioso en primer lugar, en lugar de evitar la ejecución de dichos archivos "una vez que se cargan".

Las versiones desactualizadas de osCommerce y sus variantes tienen debilidades conocidas en la secuencia de inicio de sesión de administrador que permiten a los atacantes omitir la autenticación de inicio de sesión simplemente agregando login.php al final de cualquier archivo de administración: www.yoursite.com/admin/administrators.php/login.php , por ejemplo, permitirá que un atacante vea el contenido de la página administradores.php.

Esto permitirá que un atacante tenga acceso completo al administrador de archivos de osCommerce y a los editores de archivos limitados dentro de la sección de administración, y por lo tanto al código de shell que encontraste en el sitio de tus amigos.

Hay dos cambios de código que se deben realizar en el código de osCommerce para solucionar este problema: 1 / parche admin inicio de sesión

2 / parchea el código $ PHP_SELF

También es mejor agregar la autenticación básica htpasswd a su directorio de administración también.

    
respondido por el Taipo 05.02.2012 - 21:29
fuente

Lea otras preguntas en las etiquetas