Jump to content

[Solucionado] Posible virus en mi index.php


decoratureforma.com

Recommended Posts

Hola gente, veréis, lleva mi Web colgada un mes aprox. y hasta hoy todo iba de perlas, el caso es que si te metías hoy en mi Web aparece esto:

 

Parse error: syntax error, unexpected ',' in /mnt/webl/e1/55/52119655/htdocs/mundopavesfinal/index.php on line 30

 

 

He estado hablando con mi hosting para ver si ellos tienen algún registro de modificación del archivo index.php y me comentas que se modifico por ultima vez ayer a las 22:30 de la noche, yo hace un mes que no la toco asi que es imposible que haya sido yo, me han dicho que si empleo filezilla para el ftp que si lo tengo en recordar contraseña que puede que algún troyano de mi pc emplease el usuario y contraseña para modificar ese archivo ya que filezilla no las encrypta.

Cada vez que  intento meterme en el index sin descargármelo no se me abre, y si me lo descargo mi antivirus me lo borra sin avisarme de nada, me he dado cuenta que si me meto en el administrador  también me aparece algo parecido:

Parse error: syntax error, unexpected '<' in /mnt/webl/e1/55/52119655/htdocs/mundopavesfinal/administracion/index.php on line 139

 

Se me ha ocurrido generar un Index nuevo pero como no puedo ver lo que tenía en el otro no me funciona, la verdad no se que hacer para poder recuperar mi Web, tenéis alguna idea?

 

Uso prstashop1.4.7

Link to comment
Share on other sites

Hola, bueno la cosa sigue igual, no puedo entrar ni al admin ni a mi web,  creo que alguien o algo ha puesto código malicioso en mi index de prestashop y en el index de admin ya que en dichos archivos hay código extraño el cual ya esta borrado, y me sigue sin funcionar, ¿sabéis si puedo hacer nuevos esos index? ¿O si se podría arreglar actualizando la tienda de la 1.4.7 a la 1.4.10 por ejemplo? Lo que ocurre es que para pasar de una versión a otra la carpeta admin de mi web actual la tengo que sustituir por el admin de la versión nueva y al estar dañado el index no se si me va a funcionar....

Link to comment
Share on other sites

No estoy seguro de que sea algun virus.

 

Viendo los errores.

 

¿Puedes confirmarme que estas trabajando actualmente con la versión 5.X de php ?

 

Puedes verlo si creas un fichero llamado info.php con esta información:

<?php

phpinfo();



?>

subelo al raiz de tu tienda y accede a tu web:

tuweb.com/info.php

ahí podras ver la versión de php con la que estas trabajando.

Link to comment
Share on other sites

Hola nadie, veras comento lo del virus por que de la noche a la mañana me ha pasado eso, en menos de 12 horas, y cuando quiero bajarme el index a mi pc el antivirus lo borra sin avisar, he tenido que desactivar el antivirus para poder bajarmelo, y al entra abajo del todo del index hay algo de codigo añandido seguido de unos simbolos y una secuencia de nuemeros bastante extraños.

 

 

<?php
/****************************************************************************************
* LiveZilla index.php
*
* Copyright 2011 LiveZilla GmbH
* All rights reserved.
* LiveZilla is a registered trademark.
*
* Improper changes to this file may cause critical errors.
***************************************************************************************/

define("IN_LIVEZILLA",true);
if(!defined("LIVEZILLA_PATH"))
    define("LIVEZILLA_PATH","./");
header("Content-Type: text/html; charset=UTF-8");

require(LIVEZILLA_PATH . "_lib/functions.global.inc.php");
require(LIVEZILLA_PATH . "_definitions/definitions.inc.php");
require(LIVEZILLA_PATH . "_definitions/definitions.protocol.inc.php");
require(LIVEZILLA_PATH . "_definitions/definitions.dynamic.inc.php");
require(LIVEZILLA_PATH . "_lib/functions.index.inc.php");

languageSelect();
@set_error_handler("handleError");

$scheme = getScheme();
if(isset($_GET[GET_INDEX_SERVER_ACTION]) && $_GET[GET_INDEX_SERVER_ACTION] == "addserver")
{
    $html = doReplacements(getFile(TEMPLATE_HTML_ADD_SERVER));
    $html = str_replace(),$html);
    exit($html);
}
else
{
    $html = getFile(TEMPLATE_HTML_INDEX);
    $errorbox = null;
    $errors['write'] = getFolderPermissions();
    $errors['php_version'] = getPhpVersion();
    $errors['mysql'] = getMySQL();
    if(!empty($errors['write']) || !empty($errors['php_version']) || !empty($errors['mysql']))
    {
        $errorbox = getFile(TEMPLATE_HTML_INDEX_ERRORS);
        $errorbox = str_replace("<!--write_access-->",$errors['write'],$errorbox);
        if(strlen($errors['write']) > 0 && !empty($errors['php_version']))
            $errors['php_version'] = "<br><br>" . $errors['php_version'];
        if((strlen($errors['write']) > 0 || !empty($errors['php_version'])) && !empty($errors['mysql']))
            $errors['mysql'] = "<br><br>" . $errors['mysql'];
        $errorbox = str_replace("<!--mysql-->",$errors['mysql'],$errorbox);
        $errorbox = str_replace("<!--php_version-->",$errors['php_version'],$errorbox);
    }
    $html = str_replace("<!--index_errors-->",$errorbox,$html);
    $html = str_replace("<!--height-->",$CONFIG["wcl_window_height"],$html);
    $html = str_replace("<!--width-->",$CONFIG["wcl_window_width"],$html);
    $html = str_replace("<!--lz_add_server-->",$scheme . $CONFIG["gl_host"] . $_SERVER["PHP_SELF"] . "?" . GET_INDEX_SERVER_ACTION ."=addserver",$html);
    $html = str_replace("<!--lz_version-->",VERSION,$html);
    echo

 

 

 

La parte del código extraño esta borrado por que si no mi antivirus me lo borraba de un plumazo.

 

 

 

 

y este es el código del index de admin sin quitar nada, la parte extraña de abajo es la misma que borre del index de la carpeta raiz.

 

 

 

 

<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2011 PrestaShop SA
*  @version  Release: $Revision: 11903 $
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/

define('_PS_ADMIN_DIR_', getcwd());
define('PS_ADMIN_DIR', _PS_ADMIN_DIR_); // Retro-compatibility

include(PS_ADMIN_DIR.'/../config/config.inc.php');
include(PS_ADMIN_DIR.'/functions.php');
include(PS_ADMIN_DIR.'/header.inc.php');
if (empty($tab) and !sizeof($_POST))
{
    $tab = 'AdminHome';
    $_POST['tab'] = 'AdminHome';
    $_POST['token'] = Tools::getAdminTokenLite($tab);
}

    if ($id_tab = checkingTab($tab))
    {
        $isoUser = Language::getIsoById(intval($cookie->id_lang));
        $tabs = array();
        recursiveTab($id_tab);
        $tabs = array_reverse($tabs);
        $bread = '';

        foreach ($tabs AS $key => $item)
            $bread .= ' <img src="../img/admin/separator_breadcrum.png" style="margin-right:5px" alt=">" />
            '.((sizeof($tabs) - 1 > $key)
                ? '<a href="?tab='.$item['class_name'].'&token='.Tools::getAdminToken($item['class_name'].intval($item['id_tab']).intval($cookie->id_employee)).'">'
                : '').'
            '.$item['name'].((sizeof($tabs) - 1 > $key) ? '</a>' : '');
        // @TODO : a way to desactivate this feature
        echo'<script type="text/javascript">

        $(function() {
            $.ajax({
                type: \'POST\',
                url: \'ajax.php\',
                data: \'helpAccess=1&item='.$item['class_name'].'&isoUser='.$isoUser.'&country='.Country::getIsoById(Configuration::get('PS_COUNTRY_DEFAULT')).'&version='._PS_VERSION_.'\',
                async : true,
                success: function(msg) {
                    $("#help-button").html(msg);
                    $("#help-button").fadeIn("slow");
                }
            });
        });</script>';

        echo '<div class="path_bar">
        <div id="help-button" class="floatr" style="display: none; font-family: Verdana; font-size: 10px; margin-right: 4px; margin-top: 4px;">
        </div>
            <a href="?token='.Tools::getAdminToken($tab.intval(Tab::getIdFromClassName($tab)).intval($cookie->id_employee)).'">'.translate('Back Office').'</a>
            '.$bread.'
        </div>';

        if (Validate::isLoadedObject($adminObj))
        {
            if ($adminObj->checkToken())
            {
                /* Filter memorization */
                if (isset($_POST) AND !empty($_POST) AND isset($adminObj->table))
                    foreach ($_POST AS $key => $value)
                        if (is_array($adminObj->table))
                        {
                            foreach ($adminObj->table AS $table)
                                if (strncmp($key, $table.'Filter_', 7) === 0 OR strncmp($key, 'submitFilter', 12) === 0)
                                    $cookie->$key = !is_array($value) ? $value : serialize($value);
                        }
                        elseif (strncmp($key, $adminObj->table.'Filter_', 7) === 0 OR strncmp($key, 'submitFilter', 12) === 0)
                            $cookie->$key = !is_array($value) ? $value : serialize($value);

                if (isset($_GET) AND !empty($_GET) AND isset($adminObj->table))
                    foreach ($_GET AS $key => $value)
                        if (is_array($adminObj->table))
                        {
                            foreach ($adminObj->table AS $table)
                                if (strncmp($key, $table.'OrderBy', 7) === 0 OR strncmp($key, $table.'Orderway', 8) === 0)
                                    $cookie->$key = $value;
                        }
                        elseif (strncmp($key, $adminObj->table.'OrderBy', 7) === 0 OR strncmp($key, $adminObj->table.'Orderway', 12) === 0)
                            $cookie->$key = $value;

                $adminObj->displayConf();
                $adminObj->postProcess();
                $adminObj->displayErrors();
                $adminObj->display();
            }
            else
            {
                // If this is an XSS attempt, then we should only display a simple, secure page
                ob_clean();

                // ${1} in the replacement string of the regexp is required, because the token may begin with a number and mix up with it (e.g. $17)
                $url = preg_replace('/([&?]token=)[^&]*(&.*)?$/', '${1}'.$adminObj->token.'$2', $_SERVER['REQUEST_URI']);
                if (false === strpos($url, '?token=') AND false === strpos($url, '&token='))
                    $url .= '&token='.$adminObj->token;

                $message = translate('Invalid security token');
                echo '<html><head><title>'.$message.'</title></head><body style="font-family:Arial,Verdana,Helvetica,sans-serif;background-color:#EC8686">
                    <div style="background-color:#FAE2E3;border:1px solid #000000;color:#383838;font-weight:700;line-height:20px;margin:0 0 10px;padding:10px 15px;width:500px">
                        <img src="../img/admin/error2.png" style="margin:-4px 5px 0 0;vertical-align:middle">
                        '.$message.'
                    </div>';
                echo '<a href="'.htmlentities($url).'" method="get" style="float:left;background: #E3E3E3;border-color: #CCCCCC #BBBBBB #A0A0A0;border-left: 1px solid #BBBBBB;border-radius: 3px 3px 3px 3px;border-right: 1px solid #BBBBBB;border-style: solid;border-width: 1px;color: #000000;margin: 20px 10px;padding:10px;text-align:center;vertical-align:middle;">
                        '.Tools::htmlentitiesUTF8(translate('I understand the risks and I really want to display this page')).'
                    </a>
                    <a href="index.php" method="get" style="float:left;background: #E3E3E3;border-color: #CCCCCC #BBBBBB #A0A0A0;border-left: 1px solid #BBBBBB;border-radius: 3px 3px 3px 3px;border-right: 1px solid #BBBBBB;border-style: solid;border-width: 1px;color: #000000;margin: 20px 10px;padding:10px;text-align:center;vertical-align:middle;">
                        '.Tools::htmlentitiesUTF8(translate('Take me out of here!')).'
                    </a>
                </body></html>';
                die;
            }
        }
    }

include(PS_ADMIN_DIR.'/footer.inc.php');

Edited by decoratureforma.com (see edit history)
Link to comment
Share on other sites

Buenas.

 

No se si se trata de un virus o no, pero lo que si esta claro es que tu archivo index.php NO ES EL DE PRESTASHOP.

 

el de prestashop tiene simplemente esto :

 

<?php
/*
* 2007-2012 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2012 PrestaShop SA
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/
 
require(dirname(__FILE__).'/config/config.inc.php');
Dispatcher::getInstance()->dispatch();
 
 
 
 
Elimina ese index cuando antes y reemplazalo por el original de prestashop (que puedes obtener bajandote un prestashop limpio)
Edited by Gabriel Perez (see edit history)
Link to comment
Share on other sites

Bueno, empiezo a considerar que me va a tocar volver a empezar de nuevo, despues de repasar 1 poco todos los index, casi todos en la cola tienen el texo ese extraño, despues de investigar un poco resulta que el filezilla no encrypta las claves de acceso ftp mio, aún no se como se han echo con ellas para midificar todo esos archivos pero me parece una pasada que una herramienta como esa no encrypte las contraseñas, creo que instalare una web nueva y copiar las tablas que a productos y clientes se refieran, y copiarlas de nuevo en la BD nueva, ¿Sabeis que tablas son esas? ¿o se os ocurre algún otro método para no tener que empezar del todo?

 

PD: Despues de cambiar todos limpiar de código todos los index y de volver a subir unos nuevos mi web se sigue quedando en blanco.

 

www.mundopaves.com

Link to comment
Share on other sites

Bueno, he tenido que desactivar el antivirus de mi pc y he editado el texto borrando el código que hace que el antivirus lo detecte como malo, a ver si ahora lo podemos leer todos sin que afecte a la seguridad, la web ya la doy por perdida, algún consejo para hacer una nueva de alguna forma más rápida? copiando tablas a la web nueva,,,,,, no se.

Link to comment
Share on other sites

Buenas tardes compañero:

 

Supongo que andas trabajando con windows y que tendrás programas con acceso a Internet de descargas de contenido u cualquier otro tipo... cosa que en ocasiones puede crear que entren cosas que no deben...

 

El caso es que ese error lo da en ocasiones por una mala instalación inicial de archivos corruptos que sale después de 2, 3 o 4 meses o con suerte al principio.

 

En el mismo manual recomendaba actualizar a la ultima versión de Filezilla y ademas te comento que si puedes conectar por SSL a Filezilla si el hosting lo permite.

 

Mi recomendación es que trabajes con otro ordenador para acceder a tu tienda u hosting y utilices mejor un sistema Linux puestos a pedir.

 

Y tal como dice Grabiel Perez, sube ese archivo Index tal como te indica. Y prueba a restaurar a una versión anterior a la instalación del ultimo modulo, que puede que el virus si lo hay, lo introdujeras añadiendo un modulo ;)

Link to comment
Share on other sites

Hola Oliverjm, te cuento, la web lleva instalada mas o menos un año, y colgada un mes, ese error me lo dio de un día para otro, así sin avisar, ya hacia días que no modificaba mi web, y como dices, a veces instalas un módulo que te puede provocar eso, lo desístalas y listo, pero esto va un poco mas allá, ayer subí el index que tenía en mi web a este post para que los demás usuarios lo pudieran ver, y desde ese momento mi antivirus y el de otros usuarios saltaba cada vez que se metían en este post, hoy he tenido que desactivar mi antivirus para poder borrar parte del código para que los usuarios puedan acceder a este pos.

La cosa es que después de mirar toda las carpetas de mi web (tengo que decir que no puedo ni entrar a mi web ni a la zona de admin las dos me salen en blanco) en mi hosting,  casi todos los index de todas las carpetas de prestashop los tengo corruptos, todo esto de un día para otro, he probado a subir todos los index nuevos y me sigue sin funcionar, por eso creo que me va a tocar volver a hacerla nueva, y por eso preguntaba, si hago una instalación limpia, de que forma podría ir pasando aunque sea los productos solo a la  web limpia,,,,,
 

Link to comment
Share on other sites

Hola a todos, bueno ya tengo resuelto el problema, por si a alguno le ha pasado o le pasa, os cuento los pasos que he tenido que seguir para poder recuperar mi web:

1- Lo primero desinstalar el livezilla, lo he sustituido por el WinScp que si que encripta las contraseñas

2- Explorar todos los archivos de la web, todos, sobre todo el tamaño del archivo, cuando esta infectado ocupa bastante.

3- Prestar especial atención a todos los index, al theme y a los Js, son donde más daño me he encontrado

 El theme lo he sustituido por completo, tardo menos que tener que repasar archivo a archivo, y como al sustituir ciertos archivos míos infectados por limpios de ps ahora toca retocarlos todos otra vez, pero por lo menos no es hacer la web entera, quiero recalcar que ha sido un ataque a mi web, no una mala instalación de un módulo ni nada, abre sustituido mas de 250 archivos con código maliciosos en mi web mas o menos, aparte me he instalado un firewall más completo que el de mi anti virus, un anti malwarite, ya no me fío de nada, bueno gracias por las respuestas y espero que ninguno se vea en este marrón, gracias.

 

 

Pd: En mi hosting me confirmaron que había conexiones por la noche a horas que yo no estaba haciendo, de echo después de la ultima conexión por la noche al DIA siguiente no podía entrar en nada de mi web.
 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...