OS X Mavericksへのnokogiriインストールで悩んだ話

途中経過を大分忘れているので要点だけ書く。 Web上に色々記事は有ったけど結局やり方がバラバラだったりでうまく行かなかったので 取り敢えずメモ代わりに。

インストールするnokogiriのバージョンは1.6.2.1っぽい。

どんなエラーメッセージで悩んでたか

基本的にはextconf.rbがどうだのというメッセージが出てた気がする。

新しいCommand Line Developer Toolsをインストール

最近Mountain LionからMavericksに上げて、それからも普通にgccmakeが使えてたので大丈夫かと思ってたんだけど nokogiriのインストールには新しいバージョンのCommand Line Developer Toolsが要るらしい。

Xcodeを立ち上げてみるとなんかAdditionalな何かをインストールする的なこと言われたのでそれをインストールして、以前と同じようにCommand Line Toolsのアップデートを試みるも Command Line Developer Toolsのインストール方法が変わってるので 以下を参考にCommand Line Developer Toolsをインストール。

Mavericks で Xcode から Command Line Developer Tools をインストールする - kakakakakku blog

$ xcode-select --install

GUIウィンドウが立ち上がるので指示にしたがって茶でもすすりながら待つ。

nokogiriをインストール

Web上の文献によるとbrewとかで外部ライブラリのインストールが色々必要らしいが、 最近のバージョンのnokgoiriは自動で適したバージョンのを一緒にインストールするらしい。 ただ、何のオプションも付けずにgem install nokogiriすると作業は進んでるっぽいんだけど 何も言わずに黙々と進めたりするので下のようなコマンドでgemをインストール。

$ gem install nokogiri --verbose

途中に以下のメッセージが出るが

IMPORTANT! Nokogiri builds and uses a packaged version of libxml2.

If this is a concern for you and you want to use the system library instead, abort this installation process and reinstall nokogiri as follows:

gem install nokogiri -- --use-system-libraries

If you are using Bundler, tell it to use the option:

bundle config build.nokogiri --use-system-libraries
bundle install

However, note that nokogiri does not necessarily support all versions of libxml2.

For example, libxml2-2.9.0 and higher are currently known to be broken and thus unsupported by nokogiri, due to compatibility problems and XPath optimization bugs.

If this is a concern for you and you want to use the system library instead,とのことなので今回はnokogiriに含まれるバージョンのを使うので無視。

多分これで行けるはず。

オマケ

なんでnokogiriが必要だったかというとburtlo/paradeを試したかったからなんだけど、このインストールでもnokogiri以外にもlibffiか何かのインストールで同様のエラーが出たけどCommand Line Developer Toolsをインストールした後はエラー吐かなかったのでRubyでNative Extension周りでトラブってる人は取り敢えずCommand Line Developer Toolsを見直すと良い。

Windows CEとウィスキーのお話

僕はお酒は主に蒸留酒・洋酒の類、特にウィスキーをよく飲むのですが、そんな中今日知ったことがあるので。

今はWindows Phone OSとかになってるけど昔昔MicrosoftWindows CEというモバイル機器向けOSを出していたそうな。 そのコードネームが4.0〜6.0ではシングルモルトウイスキーのブランド名になってるらしい。

Windows CE v.s. Windows Mobile and other - 高橋 忍のブログ - Site Home - MSDN Blogs

バージョン コードネーム 由来
4.0 Talisker タリスカーhttp://www.mhdkk.com/luxury/talisker.html
4.1 Jameson ジェイムソン(Jameson Irish Whiskey - Wikipedia, the free encyclopedia
4.2 McKendric マッケンドリック
5.0 Macallan マッカランザ・マッカラン サントリーウイスキー
5.01 Bowmore ボウモアボウモア ウイスキー サントリー
6.0 Yamazaki 山崎(シングルモルトウイスキー山崎 サントリー

マッカランボウモア、山崎あたりは聞いたことあります。

特に山崎は一度10年のものを飲んだことが有り、ちょうど家に新・山崎が置いてあるところです。 美味しかったです。

ちなみに今日はバランタインファイネストがあったのでそれ飲んでました。最近ロックグラスを入手したのでよくロックで飲んでます。

はてなダイアリーからはてなブログへ移行した

お久しぶりです。 上記の通りはてなダイアリーからはてなブログへ移行しました。

ついでにタイトルも前の「ほとんど欄外」からSQL Injectionチックなタイトルに変えてみました。

これを機にもう少し更新回数を増やせれば…

ついでに色々テスト

  • 箇条書きLv1
    • Lv2
  • LV1

引用

引用元: ' OR title = 'tasuten''s blog' --

puts "codeサンプル"

Twitter

2013年振り返り

去年もやったので今年も軽く。

Google Calendarの過去の予定を見つつ振り返ってみる。
文章はすごくアレいというか小並感ですが。


年初は多分普通に年明けしてたっぽい。

年明けの後の予定としては1/13にインテックス大阪であったオールジャンル同人誌即売会Comic Treasure21に参加してたっぽい。
Twilogとか見てるとなかなか楽しんでたよう。行けない冬コミの代わりという面もある。
で、その翌日成人式に参加してきた。正確には3月が誕生日なので当時19歳だったんだけど最近の成人式は学年度区切りっぽい?
そこで数年ぶりに中学時代の友人にも会った。ぱっと見見た目が変化してたやつも居たけど中身は昔通りって感じで安心した。


その後は普通に秋セメスターの試験期間突入してその後は冬休み。
3/2の誕生日で20歳に。ついに成人しました。酒が飲める。
冬休み中は例えば部活のハッカソン的なものにも参加した。そこではちょうど学業の方で使ってたということでJavaでソケット使って簡単なHTTPサーバ作った。事前に設計を割と決めてたお陰でハッカソンなのに苦戦している部員を他所に早々に寝てやりました。
ちなみにソースコードは以下のレポジトリで。
tasuten/tiny-http-server · GitHub


他には部活の送別会などもあったり。
で、ボロクソの成績で絶望しつつ年度明けて3回生へ。休みまくったし仕方ないね。じゃあ今学期もやばいね!
4月はIPA情報セキュリティスペシャリストを受けた。6月に合否判定。合格。やったぜ。


5月。大きなイベントは無し。敢えて挙げるならこの頃から学内では就職ガイダンスとか始まってたので参加しつつ。
あと、この頃からOSC京都のオフラインミーティングがあったりそれに参加したり。


6月。研究室配属のための研究室訪問の時期。持病が悪化するわ風邪引くわでほとんど行けず。だが研究室は第一希望のところに決まったのでよしとする。そんな中同人誌即売会Comic Communication17行ってその帰りに心斎橋のまんだらけと大阪日本橋寄ってる。バカだ。
月末はアカリクITインターンシップセミナー in 大阪に行く。僕にとっては初就活系イベント。インターンセミナーと言っても企業紹介とかもあって就職について考えるきっかけになった。あと、ノベルティ貰った。


7月。月初はまずさくらインターネットのイベントが京都であったので行った。(http://knowledge.sakura.ad.jp/event/533/
この頃から就職はネットワークエンジニアになりたいと考え始めてたので、実際運用ではどういう問題が起きたりするのか等聞けて非常に良かった。ちなみに会場はホテルのホールで高級感凄まじかった。あと、さくらのクラウドのクーポン貰った。
他には人生初の投票となる第23回参議院議員通常選挙での投票。記念として投票済証も貰った。決して夏コミで持って行くとサークルさんによっては何かもらえるとか言う噂に載せられたわけではないんだからね!
月末から試験期間。


8月。夏の方は以下にもまとめてるので軽めに。
2013年の夏期休暇振り返り - ほとんど欄外

試験期間中だったけどOSC京都2013に学生スタッフとして参加。当日は女子大生に囲まれてArduinoとか7セグLEDとか触ってました。あと、最後のLTでも話しました。Eject帽を被らさせつつ。
その後夏季休暇へ。


夏コミの為東京まで行く。コミケ雲+蒸し暑さで死にかけた。アキバにも行った。
他には研究室の新歓合宿的なものにも参加して琵琶湖で泳いでBBQ。
前述の部活のハッカソン的なものの第2回目にも参加。今度はProcessingでライフゲームをつくる。同じく早々にスヤァ。
tasuten/processing-lifegame · GitHub
9月。部活の合宿で飛騨高山行ってまたBBQ。1日目の夜飲みすぎて2日目寝潰す。帰りに大須にも行く。
またも部活関連で今年も関西情報系学生団体交流会(KC3)に参加。当日はセキュスペ取ったということでセキュリティに関するセミナー的なものをやったり。反省点としてはほとんど僕が前で話す形にしてしまったので今度やるときはもう少し参加型の、例えばセキュリティで言えばCTF的な感じにしたほうがいいかもとか考えたり。
ちなみにその時使った資料は以下に。
tasuten/kc3-2013 · GitHub
あ、3回生春の成績は奇跡のV字回復してました。GPAが2回生秋セメスターの約2倍という頭オカシイ感じに。
そして艦これを始める。


そして夏季休暇は終わり3回生秋セメスターに。研究室での研究始まる。
10月。13日。東方紅楼夢へ行く。オンリーなのにオールジャンルのComiTreやComiComiよりも規模デカくて度肝を抜かれる。東方やばい。すごい。
16日。IPv6サミットin京都聞きに行く。丁度去年辺りIPv4グローバルアドレスが枯渇してIPv6がホットな時期ということで濃密な話が聞けた。
20日。IPAの今度はネットワークスペシャリスト試験受ける。12月の合否判定でギリギリ合格。セキュスペと合わせてv(´∀`*v)ダブルピース
25日。Matzことまつもとゆきひろさんが京都コンピュータ学院で講演されるということで聞きに行く。学生向けということで技術的な話というより未来やキャリアに関する話。最後の質疑応答でMatzもClojureが気になっているという話がちらりと聞けてよかった。


11月。学祭の季節。今年は自分の大学の部展のシフト入ったり。僕は前述のハッカソンで作ったライフゲーム展示しました。案外好評でした。
うちの大学のお隣さんの京都精華大学の学祭の特に自主制作物即売会KINOFAIRに行ったり。
いわゆる同人イベントとは若干似てるけど空気感は割と違うくていい感じのイラストのポストカードやアクセサリーなどのオリジナルグッズを出してらっしゃる方が多かったり。まったりとした空気で良かったです。
8日9日は関西オープンフォーラム(KOF)へ。高木浩光先生の話やujihisaさんのClojure話、さくらインターネットの田中社長の話などが特に記憶に残っています。
17日は関西のオールジャンル同人イベントのComic Communicationが今回でお終いになってしまうと聞いて京都みやこめっせまで行く。艦これ本一杯買った。ComiComi関係者の皆様お疲れ様でした。関西のオールジャンルイベントといえばComiTreかComiComiというイメージがあったので残念ではありますが、皆様がこれまで関西の同人界を支えた功労は非常に大きかったと思います。また、今後皆様の意思を継ぐ方もきっと出てくると思います。ただの読み専で直近2回しか参加してないのに偉そうなこと言ってしまいましたが、ありがとうございました。
19日。GitHub トレーニングチームから学ぶ Git の内部構造 @京都 : ATNDを聞きに行く。内容はGitHubのエンジニアによる(GitHubではなく)gitの内部の解説。話の内容は僕の足りぬ頭ではあまり追えてないが分からないなりにも分かったことがいくつかあって非常に良かった。あと、GitHubのステッカー貰った。
月末はうちの研究室ともう一つ懇意にしている研究室との合同進捗会+飲み会。ここでジントニックを飲みジンにハマり今タンカレーが家にある。


12月。一番大きかったのはmixi Scrap Challenge #mixi_scrap に参加してきたことだと思う。これはmixi社が主催しているクラッキングイベントなんだけど、自分はセキュスペ持ってて体系的な知識はあるかもしれないけど実際の攻撃手法などの経験・技術が不足していることを痛感した。けどすごく楽しかった。
カプセルホテルに泊まって翌日ついでというかこっちメインということでアキバを1日観光。色々買った。アキバのジャンク街に初めて行ったがマニアックなものがゴロゴロ転がっててやばかった。ジャンク街ではSunのUNIX用キーボードとか買った。あと、とらのあなの規模がやばかった。ビル2本(A・B店)+向かいの建物の地下フロアまるごと(C店)とは…。ちなみに買ったものの写真はこちら。
ジャンク街→https://twitter.com/tasuten/status/412257957460451329
マンガ/同人系(18禁含む)→https://twitter.com/tasuten/status/412281190012317696
他にはICPCの国内予選を突破した学内のチームがICPCの勉強会を開くということでそれに行ったり。
そして研究室の忘年会に行ったり。で、29日(つまりこれを書いてる数時間前)に軽く部屋の掃除と艦これイベント攻略を進めつつ今に至る。



1年間をざっと振り返ってまとめると、まず成人したということがある。あんまりその実感は無いけれど。それと、各種IT系イベント+高度試験のそれぞれでのスキルアップが確実に測れたというのを感じた。あと、今年もやっぱり同人系イベントいっぱい行きました。


僕ら15新卒は今月から就活が始まったそうですが、なんも出来てないので来年は頑張ります…。あと、研究の方も…。
その合間を縫ってでも今年みたく各種IT系イベント・同人イベント行ければ…。艦これも。
我が鎮守府では最近ようやく響がВерныйに、北上大井両名が改二になりました。

という訳で皆様良いお年を。

mixi Scrap Challenge #mixi_scrap に参加してきた

表題の通り、去る2013年12月14日のmixi社主催のWeb系クラッキングイベントのmixi Scrap Challengeに参加してきました。その感想文です。文章力はまるでないのでまるで小学生の感想文です。
Scrap Challenge 2013 | 株式会社ミクシィ 学生向けエンジニアイベント

ちなみにこのレポートの草案はScrap Challengeの後秋葉原のカプセルホテルに泊まってそのまま丸一日秋葉原観光した後の帰りの新幹線の中で書いてます。結構揺れます。ゑびすびーるうまい!
まずはmixiさん、交通費半分と懇親会も含めてありがとうございます!くすねたアサヒスーパードゥライ風呂あがりに飲みましたがめっちゃ美味かったです!
(新幹線、WiFi飛んでるけどプロバイダとの契約必要なタイプのだしつらい)

なお、直後にmixiの方がまとめられたTogetterがありますのでそちらの方もどうぞー→Scrap Challenge 2013.12 - Togetterまとめ

まず、形式としては上記リンクの募集要項にもあるように、mixiっぽいけどあえて脆弱性を含ませた偽mixiにチームでアタックして出てきた問題を解いてポイントを稼ぐっていう結構ベーシックな感じです。

アタックの前にmixi社のエンジニアの方のセミナーがありました。
そこではmixiがセキュリティとどう関わってるのかなどを聴きました。例えば社内ではどんな体制を組んでいるのか、他には脆弱性報奨金制度の話題とか(mixiとセキュリティといえばですが)ぼくはまちちゃん事件の話なんかもありました。
実際に企業の中でどんな体制が取られているのかを直に聴くことなんてなかったので非常に興味深かったです。

その後お昼ごはんを挟んで実際に問題を解く感じです。
問題内容については「秘密でお願いします♥」と念を押されましたので詳しくは言えませんが、全体としては、Web関連の脆弱性といえば、って感じのチョイスではありました。徳丸本とか読んでるといいかも。

参加してみての感想ですが、僕がこれに参加した理由としては「セキュスペ持ってるけど知識だけで実際に攻撃手法を用いてやってみたことないし、そっち方面知りたい・やってみたい」というモチベーションでした。実際参加してみて、確かに自分の経験不足を痛感しました。例えば僕は参加する直前に所謂徳丸本をざっと読んでたのですが、読んだだけで知識としては知ったつもりかもしれないけど経験・技術にはなってないなと痛感しました。同時に、解けた時はすごくうれしくて、いわゆるハッキング(悪意を含むものも含まないものも)の楽しさってこういうことなのかなとも思いました。

あと、面白かったのが参加者の結構な割合が関西勢だったので知人が数名おり、かつ同じチームのメンバーが全員(Twitter上で)知ってる人という面白いことになってて「世間案外狭いなぁ」と思いました。

以上、簡単な文章になってしまいましたが、mixiさん、同チームのメンバーを含めた参加者の皆さん、ありがとうございました!すごく疲れましたがすごく楽しかったです!
特にmixiさん、今回のような貴重な場を設けていただきありがとうございます。こういうクラッキング系のものは同意なしに相手にやると不正アクセス禁止法などに引っかかり、かと言って自分で環境作るとなんとなく脆弱性が分かってしまうというジレンマがあり、本当に難しいものだと思います。ですので、今回のようにmixiさんに環境を用意して頂くというのは非常に嬉しいことです。

最後になりましたが他の方のエントリなんかは「#mixi_scrap」や「Scrap Challenge」などでTwitterなど検索すると見つかるかもです。
あと、今年度は年明けにもあるそうなのでScrap Challenge 2013 | 株式会社ミクシィ 学生向けエンジニアイベントなどをぜひ。

アキバもすげー楽しかったです!同人誌一杯買った!

rbenv環境でMetasploit Frameworkをセットアップする

最近研究でMetasploit Frameworkをインストールしたのでそのやり方をこっちにも公開しておく。
基本的には研究室の毎週の進捗報告で報告した資料をこっち向けに書き下したもの。

P.S. 2014-01-29 間違いが見つかったのでちょっと修正


なお、環境はOS X Mountain LionでrbenvはHomebrewでインストールしてる。
また、RVMの場合How to install Metasploit Framework in MacOSX - Computers And Youが良い。
ざっくり言ってしまえばこれのrbenv版がこのエントリって感じ。

Metasploit FrameworkのGitHubレポジトリ.ruby-versionファイルを見るとRubyのバージョンが指定されているのでそのバージョンのRubyを導入する。例えばそのバージョンが1.9.3-p448だとすると

$ rbenv install 1.9.3-p448

などでインストール。rbenv versionsでインストールされているか確認。

$ rbenv versions
  system
  1.9.3-p448
* 2.0.0-p247 (set by /Users/xxxxxx/.rbenv/version)

次に、brew install rbenv-gemsetなどでrbenv-gemsetをインストールした後、以下のようにMetasploit Framework用のgemset環境を作る。ここではmsfとしてる。

$ rbenv gemset create 1.9.3-p448 msf
created msf for 1.9.3-p448
$ rbenv gemset list
1.9.3-p448:
  msf


次に、Metasploit FrameworkのソースコードGitHubからダウンロードする。数百MBあるのでうちだと10分以上掛かった。

$ git clone https://github.com/rapid7/metasploit-framework.git
Cloning into 'metasploit-framework'...
remote: Finding bitmap roots...
remote: Counting objects: 223536, done.
remote: Compressing objects: 100% (64696/64696), done.
remote: Total 223536 (delta 157607), reused 218106 (delta 152308)
Receiving objects: 100% (223536/223536), 191.74 MiB | 180.00 KiB/s, done.
Resolving deltas: 100% (157607/157607), done.
Checking connectivity... done
Checking out files: 100% (6359/6359), done.
$ du -h -s metasploit-framework/
298M    metasploit-framework/

んでもって、.rbenv-gemsetsファイルをダウンロードしたディレクトリに作ってさっきのmsf環境を使うように指示してから、bundleで依存ライブラリをインストール。

$ cd path/to/metasploit-framework
$ # 先程作ったmsf環境を用いるようにする
$ # gemsetsと複数形なのに注意
$ echo msf > .rbenv-gemsets
$ # 確認
$ rbenv gemset active
msf global
$ # bundleのインストール
$ gem install bundle
$ # 略
$ # 必要なgemをまとめてインストール
$ bundle install
$ # 略
$ # なお、何らかの理由でインストール済みのgemを全削除したい場合
$ # gem list --no-versions | xargs gem uninstall
$ # とかやると良いかも

実際に起動してみる。localhostにnmapでTCPスキャン仕掛けて見てる。動いてるのでOK。

$ ./msfconsole
# cowsay++
 ____________
< metasploit >
 ------------
       \   ,__,
        \  (oo)____
           (__)    )\
              ||--|| *


       =[ metasploit v4.9.0-dev [core:4.9 api:1.0]
+ -- --=[ 1220 exploits - 665 auxiliary - 190 post
+ -- --=[ 324 payloads - 30 encoders - 8 nops

msf > nmap -sT localhost
[*] exec: nmap -sT localhost


Starting Nmap 6.40 ( http://nmap.org ) at 2013-11-17 21:30 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00055s latency).

/* このへんにNmapの結果が出る */

Nmap done: 1 IP address (1 host up) scanned in 5.75 seconds
msf > exit

つーわけです。

実践 Metasploit ―ペネトレーションテストによる脆弱性評価

実践 Metasploit ―ペネトレーションテストによる脆弱性評価

読みつつ進捗ちまちまやっております、はい。クリスマスプレゼントにこういう技術書とか買ってくださるサンタさん募集してます。

当ブログに於いて、私tasutenによって創作されたことが自明である著作物に対しては、別途明示のある場合を除き全てCC0が適用されます。