Necesita realizar una respuesta a un incidente, puede contratar una empresa como Trustwave, pero supongo que si no tiene los fondos para una inversión tan grande.
Ya que está utilizando un sistema abierto de CMS popular, va a ser un objetivo de ataque. También se basa en otros componentes de código abierto, por lo que pueden verse afectados. Por supuesto, hay una serie de otras vulnerabilidades que son posibles dado cualquier número de componentes de terceros, incorporados o de fabricación doméstica. Puede encontrar una lista de vulnerabilidades y errores recientes en Lista de bases de datos CVE de NIST de Typo3 Vulns .
Hay algunas cosas que podrían resultar en una infección masiva que parece indiscriminada. Si los permisos de los archivos y directorios no están configurados correctamente, o si la propiedad del archivo y del directorio está mal configurada, este podría ser el primer problema. También puede haber algún script o pieza de software que sea vulnerable y tenga la capacidad de ejecutar código arbitrario, por lo que puede escribir y adjuntar cualquier archivo que encuentre. Si tiene la capacidad de ejecutar arbitrariamente comandos de shell, es fácil buscar todos los archivos php e inyectar el código con unas pocas líneas de código.
Otra posibilidad podría ser una falla en otra herramienta que esté utilizando, tal vez una consola de administración basada en web para el alojamiento o una aplicación auxiliar como phpMyAdmin o algún otro código aleatorio sea vulnerable.
En cualquier caso, el primer lugar para comenzar su investigación es revisar los registros de actividad. Comenzaría con sus registros de acceso ssh para determinar si alguien inició sesión directamente cuando cree que no lo hizo. A continuación, debe mirar sus registros de acceso al servidor. Si hay una falla en alguna aplicación web, probablemente tuvieron que emitir un comando contra su página. Es posible que hayan buscado en Google una determinada cadena de origen HTML común en Google y el objetivo de todos los sitios que encontraron ampliamente. Si es así, es probable que vuelvan a ejecutar su ataque de vez en cuando para reinfectarte si no encontraste el agujero. Busque las entradas de registro que parecen tener inyección SQL o XSS. Esto podría ser un proceso laborioso, pero si crees que sabes el período de tiempo cuando te golpearon, eso debería ayudar a limitar tu búsqueda.
Otra comprobación es que ha eliminado cualquier instalación u otros archivos que ellos recomiendan que podrían permitir que un atacante pueda restablecer los valores predeterminados, etc. Además, asegúrese de usar contraseñas seguras y únicas. Después de un ataque, siempre recomendaría cambiar sus contraseñas como precaución.
Por último, a menudo hay pistas en el propio código de explotación. ¿Lo infectaron para redirigirlo a un sitio determinado, tienen "greetz" o cualquier otra cosa que pueda buscar en Google y encontrar a alguien más hablando en un foro? A menos que el ataque sea contra tu código personalizado, es probable que alguien más haya sido golpeado de manera similar también.