Mac OS X Yosemiteにおけるroot権限昇格の脆弱性について

こんにちは。本日は先日ネットで話題になっていたMac OS X Yosemiteにおける深刻な脆弱性について解説をしたいと思います。
みなさんMacを使われている方が多いと思いますので参考にしていただけたらと思います。

概要

これはドイツのセキュリティ企業"SektionEins"がOS X Yosemiteのdynamic linker dyldに非rootユーザーがroot権限を使用できる権限昇格の脆弱性が存在すると発表したもので、AppleYosemiteから新しいdyldを導入をしたのですが、その中の1つにある"DYLD_PRINT_TO_FILE"という環境変数が実行終了時にファイルをクローズしない不具合を利用したものです。

この脆弱性自体は多くのユーザーが認知しているとのことですが、先日ネットで1行でrootへ昇格できるものが公開されていました。

方法(実際のコード)

その1行でrootへ昇格できるというコードがこちらです。

echo python -c '"import os;os.write(3,\"ALL ALL=(ALL) NOPASSWD: ALL\")"'|DYLD_PRINT_TO_FILE=/etc/sudoers newgrp;sudo su


たったこれだけでroot権限へ昇格できてしまうとは怖いです。。。

これはEDITORの環境変数に"DYLD_PRINT_TO_FILE"指定をして、/"etc/sudoers"に"ALL ALL=(ALL) NOPASSWD:ALL"を書き加えるというもので、
sudoersファイルはsudoの動作設定が記述されており、sudoユーザーでも読み出し権限しかなく、特別に用意されたvisudoを使って編集をしなくてはいけないのですが、今回の脆弱性をつかうといともたやすく書き加えることができてしまいます。

対策

チェック方法

自分のPCにその脆弱性があるかのチェックをすることができます。
以下のようにEDITORの環境変数に"DYLD_PRINT_TO_FILE"を使用してルートディレクトリなどの書き込み権限の無い場所に任意のファイルを指定して編集してやると所有者がrootのファイルが出力されるという方法で、ここでファイルが生成をされてしまうと脆弱性があるといことになります。

$ EDITOR=/usr/bin/true DYLD_PRINT_TO_FILE=/this_system_is_vulnerable crontab -e
対策

また対策としてはSUIDGuardというカーネル拡張を使うと権限昇格の脆弱性を使えるとのことです。

インストール方法についてはこちらを参考にしてください。



現状分かっている限りでは、OS X 10.10.4 Yosemiteまでと10.10.5 Betaでは実行可能なようで、OS X 10.11 El CapitanのBeta版では修正をされているとのことです。
Appleがこの脆弱性を修正するのは早くてもOS X 10.10.5以降になるということです。

参考資料

applech2.com
www.reddit.com

ksnctf - 8 Basic is secure?

今回はksnctfの問題をとこうと思います。
まずq8.pcapというファイルが渡されます。このファイルを開くには、何らかのパケットを解析するツールが必要になります。

f:id:eyesjapan:20150711183949p:plain

私は今回はwiresharkという解析ツールを使いました。
ファイルを開いてみると、

Authorization: Basic cTg6RkxBR181dXg3eksyTktTSDhmU0dB

が見えました。
そして、"Authorization: Basic" でググるとその後はbase64エンコードしているということがわかったので、

cTg6RkxBR181dXg3eksyTktTSDhmU0dB

base64でデコードして無事フラグゲット出来ました。
今回は非常に単純なもんだいを例に出しいましたが、wiresharkはそれ以外のばでもよく使うので使えるようになっておいたほうがいいかもしれません。

ちょっとした無線LANセキュリティ!?

こんにちは。最近は、Write upをかけるようなCTFに取り組めていないので、気付いたことについて書いてきたと思います。


私の実家では某社製一般向け家庭用の無線LANルーターを使っています。先日ファームウェアの更新を買って以来(一年近く)怠っていたので、ファームウェアを更新作業をしていました。

その時に初めて無線LANのWeb管理画面にアクセスしたのですが、なんとそのログインパスワードとユーザネームがデフォルト(製品共通)の簡単なパスワードになっていたのです。

最初は無線LANに接続するときのパスワードを入力するのかと思い、ログイン失敗を何度も繰り返していました。これはおかしいと思いネットでマニュアルを調べたところ無線LANに接続するパスワードとは別に管理画面ログイン用のパスワードがあるということを知りました。これがデフォルトのままだと、無線LANへの接続を許可されているユーザがweb管理画面にログインでき、そこからパスワードをデフォルトから変更することができ、さらにリモートのアクセスを許可させたり、ルーティングを変更したり、また無線LANの接続に認証をなくすなど、やろうと思えば多くのことができてしまいます。

ハニーポットなど設置すると、この手のデフォルトユーザとデフォルトパスワードを狙った攻撃が多いという話を聞いていたのにもかかわらず、こんなことをやらかしてしまうとは。。。

最近の機器は詳しい設定なしで接続できたりと便利になっていますが、便利になるほどこういう見落としが増えるんではないかなと思います。
便利って怖い!!!
こんな簡単なことと思うかもしれませんが、案外見落としがちなのでみなさんもお気を付けてください。

iOSの脆弱性

最近は暑くなり、気温30度を超えたとか聞きます。それにセキュリティ・キャンプ全国大会2015の応募も始まっていますね。
今年に入ってから自分は様々なiPhoneアプリを書いてきたのですが、iOSWi-Fi自動接続を突いた脆弱性やAFNetworkingの脆弱性とか話題になりましたね。

続きを読む

バイナリの勉強

こんにちは、最近バイナリの勉強を始めました。
今回「Teaser CONFidence CTF 2015」に参加したのでそのwrite upを書こうと思っていました。
しかし、reverse問題の”So-easy-100”があったのですが、それを解くことができませんでした。

続きを読む