2015年5月2日土曜日

ホストCentOS 7上のゲストWindows 7の3D Accelerationを有効にする

最近メインのデスクトップPCをWindows 7からCentOS 7にし、VMware上にWindows 7を入れかえました。ところが、ホストのWindows 7上でUnityが動かないことからDirectなんたら(Direct X? Direct 3D)が使えないことに気づきました。CentOS関連の記事が少なくて、直すのが結構面倒だったのでメモ程度に書いておきます。

環境:
ホスト:CentOS 7 x64
ゲスト:Windows 7 SP1 x64
グラボ:GTX 640だったかな?あまり関係無いと思います。

症状:
VMwareからWindows 7を起動すると、「3D Accelerationが無効になりました」とか「デバイスが読み込めませんでした」とかのメッセージが表示され、3D Accelerationの機能が使えません。

対処法:
1.driconfを入れてS3TC Texture Compressionとやらを有効にする
まず、このリンク先からdriconfをダウンロードします。解凍してインストール。
tar xfvz driconf-0.9.1.tar.gz
cd driconf-0.9.1
python setup.py install
わーい、driconfが入った〜、と思うとエラーが起きます。
driconf
>〜〜〜
>UnboundLocalError: local variable 'j' referenced before assignment
>〜〜〜
どうやらpythonコードでエラーが発生している模様。
cd /usr/lib/driconf
vi driconf_simpleui.py
viエディタで、260行目あたりに以下の水色の文を追加します。
:
i = chars
j = i
while i >= chars/3:
:
保存すれば、エラーが発生しないと思います。driconfをもう一度実行します。
driconf
すると「Direct Rendering Preferences」というウィンドウが表示されます。
「Image Quality」タブの「Enable S3TC texture compression even if...」をクリックして「はい(Y)」にします。
下部の「Expert Mode」をクリックしてDefaultに保存します。
これで1つ目完了。

2.libtxc_dxtnをインストールする
以下のコマンドを実行してインストールします。
yum install libtxc_dxtn
以上。

3.ホストの設定を変える
ホストがシャットダウンしている状態で、vmxファイルを編集します。(Win7仮定)
cd /home/[username]/vmware/Windows7/
vi "Windows 7.vmx"
以下の文章がなければ追加してください。
mks.enable3d = "TRUE"
mks.gl.allowBlacklistedDrivers = "TRUE"
svga.vramSize = "67108864"

保存します。
最後に、ゲスト(CentOS)の再起動をしてください。

再起動が完了したらVMwareからホストを起動してください。エラーが発生せずに起動できたら成功です。フルスクリーンゲームとかやるひとはmouseの部分の設定も要るみたいですが、調べたらすぐに出てくるのでここには書きません。

-- 追記(2015/05/03) --
翌日起動したら
Vmware Player unrecoverable error: (svga)
Unexpected signal: 11
というエラーが発生しました。
書くのを忘れていましたが、ゲストを起動する前に、3D Accelerationのウィンドウを出しておく必要があります。
driconf &
これで「Direct Rendering Preferences」ウィンドウを一度起動させておかなければいけません。
1つのアプリケーションがグラフィックボードの機能を使った後に、他のソフトが使おうとするとVMwareが同じエラーで落ちることがあります。少なくともCentOSからの3D Accelerationはあまり良い機能を持っていませんね・・・

参考文献:
http://useranswaser.com/answer/how-to-fix-3d-acceleration-for-vmware-workstation-9/
http://ameblo.jp/yukisku/entry-11777593255.html
http://sourceforge.net/p/driconf/bugs/3/

2015年3月31日火曜日

TDU CTF 2014 Satellite in ConoHaへ行ってきました(writeup的な)

2015年03月29日に渋谷で開催された初心者向けCTFのTDU CTFに参加してきました。(CTF後に山梨で予定があったので書くのが遅くなりました。)初心者向けといいながらも上級者が来るんだろうなぁと思っていたら、やっぱり来ました(恐怖)。どこかに集まってやるCTFは今回が初めてだったので問題が解けるか不安でした。CTFには80人弱ほどの方が参加されていました。始めに運営の方々がXSSとかSQLiとかいろんな分野のプレゼンを少しされました。

では、解けた問題について書きます。スコアサーバーには自分の解けた問題や誰が解けたか、問題の点数などが書かれていないので、本当はもっと解いた問題、解けなかった問題があると思いますが、とりあえず思いついただけ。

web
・Easy SQLi Test
何かを検索するフォームがあります。適当に入力してもヒットしません。SQLi苦手なんですが、Easyと書いてあるのでテンプレで
" or 1=1;--
と入力すると全部出てきました。一番最後にフラグが書かれていました。この問題には複数のフラグがあり、flagTableに次のフラグが~みたいなのが書かれていましたが、ここで断念。

・Simple Uploader
ファイルをアップロードできるサイト。これもテンプレでphpをアップロードすると動きました。
<?php phpinfo(); ?>
を送るとphpinfoを見ることが出来、そこにフラグも書かれていました。この問題も複数のフラグがあるということで、
<?php system("cat /etc/passwd"); ?>
を送るとパスワードの中にフラグが。
<?php system("ls"); ?>
するといろいろあったので見てみるとこんな画像ファイルが。モザイクが掛かって見られないのですが、これはフラグなのかな?解けませんでした。もしかしたら誰かがアップロードした妨害用のファイルかもしれません。分かりません。
(追記:03/31/2015)他の方のwriteupを見るとこれと同じような画像ファイルがありました。そちらはモザイクが掛かっていなかったので、別の場所にこのファイルの元画像があったと思われます。

binary
・Trip Picture
ほしい方はダウンロード
何かのストラップの写真があるので、バイナリエディタで見ると最後に
Flag is TDU{LoveLiverInKyoto!}
と書かれていました。私の知識不足でLoveLiverというものが何なのかが全く理解できていません。(アニメ?)

・読めない文字1
base64っぽいのでecho ~|base64 -dでデコード。またbase64っぽいのが出てきたのでもう一回デコード。終わり。

・ASCII Art
ほしい方はダウンロード
zipが渡されるものの開けないのでバイナリエディタでみるとフラグがAAで書かれている。
TDU{HEXEDIT!}

・ string_compare
ほしい方はダウンロード
exeが渡されるので、IDA送り。TDUで検索するとprintfの前に「TDU{%s_is_very_cutie}」とあったので、%sにあたるアドレス[ebp+var114]を探すと「MinamiKotori」と書いていたので
TDU{MinamiKotori_is_very_cutie}
がフラグでした。(´・ω・`)知らんがな

forensic
・ Evidence
ほしい方はダウンロード
運営のnomukenさんが殺されたので、犯人グループの作戦名を掴んでくれ、みたいなフォレンジック問題。私はフォレンジック問題好きなので期待していたのですが、forensicカテゴリの問題は結局最後までこれ1つだけでした。(´・ω・`)
いつもはTSK使ってるのですが、TDU CTFで紹介されていたFTK Imagerというのを使ってみると、削除されたフォルダかな?にpdfが入っていたので開くとフラグがありました。
作戦名:TDU{OIL_SARDINE}


crypt
・我が同胞に告ぐ
単一漢字変換やシーザー暗号などを思わせる文字列があるのですが、すぐにvimだと判明。入力すると
vimisawesome
なのでTDU{vimisawesome}がフラグでした。
私は基本Emacsです。(たまにvimも使いますが)

network
・ 柚子胡椒 Vol.1
ほしい方はダウンロード
pcapが渡されるので見るとフラグが送られていました。
TDU{bLu3T00tHDeTH}
TDU{PiNC0De2}
の2つがあったのですが、どっちがフラグだったか忘れました。


misc
・(タイトル忘れました)
TwitterアカウントのURLがあるので、TwitterIDをフラグにするだけ。

・Mini Quiz#1
何かの文章が問題として書かれています。意味分からなかったのですが、何かの引用かと思い調べてみると「ThinkPad X300が~」とあり、ちょうど穴埋めになっていた所がX300なので
TDU{X300}
でした。

・Mini Quiz#2
[単語]->[数字]の形式が並んでおり意味不明だったので、単語部と数字部を並べて調べるとOS Xのバージョンだと判明。Leopardとやらについて聞かれていたので、小数点を抜いて
TDU{105}
でした。




ここから先は解けなかった問題たち。
・unknown file
ほしい方はダウンロード。 
ファイル内が全部0x20で埋まっており意味不明。ファイル名に意味がありそうでしたが分かりませんでした。他の方のwriteup見るとTDUで検索したら出てきたとあるので、運営サイトのネットワークの問題?始めはおかしいと思い何回もダウンロードし直したんですけど、よく分かりません。

・Developper! Developper! Developper!
ほしい方はダウンロード
zipファイルはパスワードかかっているのですが、ヒントに「無圧縮」とあったので調べるも解けませんでした。pkcrackというソフトで中のファイルと手持ちのファイルを平文攻撃することでパスワードが分かるとか。とても参考になりました。

・Omikuji
ほしい方はダウンロード
おみくじができる実行ファイル。 TEMPに何か作ってるのは分かったのですが、どうやらネットワークで通信しているようです。

・(タイトル忘れました。string encoderだったかな)
ほしい方はダウンロード
IDAで見るとメモリ上にフラグが見つかりそうな予感だったので起動しようと思ったのですが起動できませんでした。VC++2013再頒布入れたのに起動しませんでした。隣の方も起動できずに悩んでいる様子でした。次からはgccでstaticするか、VC++は知りませんが、必要なライブラリは全部埋め込んでほしいです。あと要望といえば、スコアサーバーでフラグ入力しても何も起こらないことが多々ありました。Javaだからかな。

・(タイトル忘れました。Phoneなんたらだったかな)
ほしい方はダウンロード
まったく分からず。

・かっこいいフラグたち
なんと表示されているフラグを入力するだけでptがもらえるというかっこいいフラグがありました。入力する文字によって、-5000ptから-200ptくらいまで、かっこいい点数を獲得できます。かなり上級者向けの問題だったので解けませんでした。



他にもたくさん問題はありましたし、特にweb系では見つかっていないフラグがたくさんあると思います。
結果920ptを獲得して順位は20位でした(´・ω・`)初めて参加したにしては良い方かな・・・それに上級者多かったし・・・。まぁ次は10位くらいにはなれるように頑張りたいです。

とにかく、CTFってこんな感じなんだなぁ、というのが分かりました。問題を解くだけでなく、一体どこから拾ってきたんだというくらいの膨大な量の妨害用のBGM・動画が常に流れる会場も、貴重な経験になりました。

参加者・運営の皆さんお疲れ様、ありがとうございました。

2015年3月1日日曜日

セキュリティ体験講座 - ハッカーになってみよう、やってみよう -

02月28日に、兵庫県立大学大学院で開かれたセキュリティ体験講座の中の1つ、ザッカーリ・マシスさんの「ハッカーになってみよう、やってみよう」に参加しました。

前半はハッキングとは何か、過去から今までにどのようなハッカーがいたか、その目的はなにか、どのように攻撃するか、など幅広く説明して頂きました。短い時間の中で、さまざまな攻撃方法が説明されました。特に今回は一般向けなので、分かりやすかったです。
宿題(?)も出されました。
・ ・ ・
・ ・ ・
・ ・ ・
この9つの点を直線で一筆書きで結んだとき、4本や3本の線で結ぶ書き方はあるだろうか、というものです。答えは説明されませんでしたが、何が言いたいかと、その答えもたぶん分かりました。

後半は実際にコンピュータへ侵入する演習でした。ゲストのKali LinuxからゲストのDe-Iceサーバーへ侵入します。一般向けなのでCTFなどとは違い、一応簡単な説明を受けながら行いました。とはいえ、どのようなツールを使うべきか、などから自分で探していきます。(3人で2台のパソコン)
ということで、覚えている限りで、どのように侵入したかを書いておきます。
まずnetdiscoverで攻撃先のIPアドレスを特定します。
 netdiscover -i eth0
そしたら、定番のnmapで開いているポートを調べます。あとOSの種類も調べたいので-A指定もしておきました。(IPは192.168.1.100でした)
 nmap -Pn -A -p 0-65535 192.168.1.100 
そうすると、http, sshなど複数のポートが開いており、Linuxやカーネルのバージョンまで調べることができました。
ここで、metasploitのsearch及びsearchploitを使って、使用されているサービスの脆弱性情報を調べます。
(例)
 msfconsole 
 msf>searchploit openssh 
今回は脆弱性のあるサービスはなく、ただ侵入したいだけなのでDoSで落とすことなどは考えませんでした。
使われているサービスはたくさんありましたが、特に問題のあるバージョンのものや、脆弱性は見つかりませんでした。
そこで、hydra及びmedusaを使って総当り攻撃をすることにします。
まず、ユーザー名とパスワードのリストを作らなければなりません。攻撃先のホームページ(今回は192.168.1.100)を見ると、いわゆる社員情報的にメールアドレスがたくさん書かれていました。adamsa@~~~とか十人くらいの名前があったので、これがユーザー名ではないかと思いリスト化。パスワードリストは用意してくれてたのですが、展開すら面倒だったのでKali付属のnmap.lstを使いました。ここでhydraを使用しましたが、なかなか成功する気配がありませんでした。
そこでマシスさんから2つヒント(?)が与えられました。
adamsaやpatrickpなどに対し、ユーザー名はaadamsやppatrickなども考えられるよね、ということ。それと、こちらは時間の問題もあって答えにグッと近づけるものなのですが、ユーザー名とパスワードが同じだよということ。
ということで、ユーザーリストにaadamsなどいろいろ追加し、medusaでsshに仕掛けてみます。
 medusa -U users -e ns -h 192.168.1.100 -M ssh | grep SUCCESS 
すると見事にhoge(ユーザー名忘れたのでここからhogeにします。)が当たりました。
早速sshで接続
 ssh hoge@192.168.1.100 
 hoge' password : hoge 
 [hoge@192.168.1.100]$ 
はい入れました。
早速/etc/passwdや/etc/groupを取っていったのですが、ここで問題発生。/etc/shadowが取れない、つまりルート権限ではなかったのです。私はこれ以上進むことはできませんでしたが、非常に面白かったです。前でマシスさんがadams(root権限)で入ってて、いつの間にっ、という感じでした。
あと、ここまでには書きませんでしたが、ツールを使ったら、wiresharkでどんな通信が行われているかを確かめるなど、具体的な動作も確かめることができたので良かったです。

今回はサーバーへ侵入するという設定で行い、演習に来ていた他の方々も、甘いセキュリティに侵入することがいかに簡単かということを強く実感されたそうです。私は家で自分でセットした環境でしか侵入をしたことがないので、実際にホワイトハッカーの方の経験などを教えてもらい、侵入のコツをつかめたような気がします。大変有意義な講義、演習でした。
またこのような講義、演習があれば是非参加したいです。

2015年2月18日水曜日

セキュリティ・キャンプ・フォーラム2015

02月14日の土曜日に品川で開かれたセキュリティ・キャンプ・フォーラム2015に行ってきました。
本当は、13日に兵庫県立大学院でセキュリティ体験講座を受けてから行く予定だったのですが、夜行バスの時間を間違えてしまい、体験講座の方はVODで諦めるということにしました。

さて、フォーラムは、前半はキャンプ卒業生、協賛企業、政府からのメッセージなどでした。
キャンプ卒業生で起業をした人など、面白い 話を聞くことができて参考になりました。企業の方からは、企業内でのセキュリティ部門はどのような働きをするかなど、実際の現場について説明してもらいました。政府からは、セキュリティ人材の不足や、省庁のセキュリティの実情などが話されました。午前の話は個人的には将来に関わる内容が多かったです。
午後は、CTF、XSS、VM/カーネルを受けました。CTFはネットで開催しているものを除き初めてだったので、本当に短い時間とはいえ、わくわくしました。問題はリバースエンジニアリングのもので、出題者は簡単簡単と言うものの、結局時間内に解けたのは1人だけのようでした。リバースエンジニアリングは苦手分野でありながら、問題のファイルが環境変数を使っていることなど内部の動作がそこそこ分かったので、ほんのちょっと自信が付きました。ASCIIがたくさんあるところを探したのですが、結局"Flag:"の部分しか出てきませんでした。(そんな簡単なわけあるか。)
Shibuya XSSでは、最新のXSS事情や、XSSから少し離れたweb系の面白い話、また実際に攻撃から守る仕事をした人の話など、XSSだけでなく色々なことが聞けました。Web系の脆弱性には割と興味があって以前から勉強していたので、知らないことがたくさん知れてよかったです。
VM/カーネルは私には少し難しかったようにも思えます。始めにロボット関連のセキュリティの話があり、パソコン以外のデバイスのセキュリティも勉強してみようかなという気になりました。SECCONの決勝戦でサーバーを管理している方の話は、なんとなく分かったような感じです。やっぱりSECCONともなると、運営も高度な技術を求められるようです。VMの話では、VMを検出するマルウェアや、新しいマルウェア解析のアプローチなど低レイヤーの話をされました。私ができるようなことではありませんが、非常に興味深い内容でした。

今回のフォーラムでは、セキュリティやその他もろもろの分野で有名な方の話、また実際にセキュリティに関する実話など貴重な話を聞くことができて、とてもよかったです。

あとキャンプ卒業生は協賛企業からいろいろプレゼントを貰いました。ありがとうございます。

2014年12月19日金曜日

Windowsにrailsを入れる

Ruby on Railsを使うためWindowsマシンにrailsを入れようとしたのですが、はまった点がいくつかあるのでメモ程度に記録しておきます。
railsをインストールしようとgemを使うと次のようなエラーを吐かれました。

 SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: 
 certificate verify failed 

色々と調べてみると解決策になるようなサイトを発見。こちらです。
  1. ここから証明書ファイル(AddTrustExternalCARoot-2048.pem)をダウンロード。
  2. gem which rubygems でRubyGemsのディレクトリを確認。
  3. その中のssl_certsに証明書ファイルを配置。
これによりrailsをインストールすることに成功しました。
その後スケルトンを作成しようとしたのですが、以下のように警告されました。

 DL is deprecated, please use Fiddle

アプリケーションのフォルダ構成は正しそうだったので続けてrails serverを実行しようとしたら怒られました。

 Run `bundle install` to install missing gems. 

どうやらbundleというのをインストールできていなかったようです。指示された通りにbundleをインストールしました。その後もう一度rails serverを実行すると、相変わらず警告は出るものの動作しました。
さぁ、これでやっとRuby on Railsが使えるわけです。

2014年12月14日日曜日

情報オリンピックを受けてみました

今日(2014/12/14)の13時から3時間の間に問題を解く情報オリンピックの予選を受けてみました。
こういう問題形式の競技に出るのは今回が初めてでした。
予選はネット上で行われ、6問の問題にそれぞれ5つの入力ファイルが用意されています。入力に対する出力とプログラムのコードを提出して、それが採点されるようです。
どんなものかと気になったので試しに受けてみた程度です。他の人がどのくらい解けたのか分かりませんが、結果はあまりよろしくないみたいです。問1~3と問5の入力1だけ終わりました。
どんな問題が出て、何が難しかったかを簡単にまとめます。

まず問題の簡単な説明から。
  1. 水道料金を求める問題
  2. 番号(人)を当てるゲームの合計得点を算出する問題
  3. 各地点での天気を調べる問題
  4. 町間の移動にかかる最低限の労力を求める問題
  5. 砂場の城が波で崩れなくなる(安定する)までの波の数を求める問題
  6. 財宝の山分けで、ある条件を満たした上でBさんが最も満足するパターンを求める問題
対して解けなかったわけですが、それぞれ何が難しかったかを書いておきます。
1.問題文通りに実装すれば難しいものではありません。
2.二次配列を使いました。そこらへんとループを問う問題かと思われます。
3.文字の入力を問う問題。これも特に問題は無い。
4.総当りを使うのが手っ取り早いかと思われます。友達は総当りで解いていました。
5.問題文をじっくり読んで実装する問題。入力2から計算量が異常に多くなり計算が終わりませんでした。そこをどう最適化するかを問う問題かと思われます。
6.これも総当りで解けそうでしたが時間が足りませんでした。

今回が初挑戦ということもあるのか、少ししか解けなかったのですが、こういった競技
がどのようなものかを知ることができました。

言語は自由なのですが、C言語を使いました。実はC言語あまり使ったことがないので外部ライブラリではprintfとscanfしか使ってません。
アルゴリズムよりもC言語を先に勉強した方がいいかな。
とにかく、次挑戦するときはもう少し勉強して4問完全くらいは解きたいです。

---------------------- 追記(2014/12/19) -----------------------
 数日前に結果が公開されましたので一応書いておきます。
結果は320点でランクはBでした。こういうのは初めてなのでこれくらいでいいかな、という感じです。
一緒に受けた友人は420点でAランク、全国大会に行ってくるようです。ぐぬぬ。

第29回まっちゃ139勉強会へ行ってきました

こんにちは、初の記事となります。勉強会や競技などの今までの活動を何かしら記録しておきたいと思って始めました。

さて、昨日のことになりますが、グランフロント大阪で開かれた勉強会「まっちゃ139勉強会」へ行ってきました。この勉強会は今回で29回目だそうで、今回初めて参加させてもらいました。実は少し前にセキュリティ・ミニ・キャンプ in 北海道に行ってきたとき、この勉強会の主催者である方からお誘いを受け、行きました。今回は不正アクセスについて法律面と技術面から有名な専門家の方々の公演があり、100名以上の人が来ていました。
話の内容は大きく分けて、
  • サイバーセキュリティ基本法って何
  • 不正アクセス禁止法とその他の法律についての説明
  • 過去にどんな事件があったか
  • その他の事例
といった感じです。
撮影は禁止だったようなので会場の様子を撮った写真などはありません。(スマートフォンを忘れたのも理由。)
法律の方では、ACCS事件などの実際の事例や、現状での法律の解説などが分かりやすくされており、大変タメになる話でした。技術面では具体的にどのような脆弱性がどのような場所にあるのかを聴くことができました。

弁護士や大学教授など、非常に有名な方の講義を聴くことができる貴重な経験となりました。

参加費は無いので、興味のある方は是非参加してみてください。