==================================== The ShadowPenguin Documents No.4 - suトロイでrootになる - Written by うにゅん Oct.18, 1998 ==================================== 1. はじめに 進入したのはいいけれど、どうしてもrootになることができない場合、進入できるアカウ ントがその鯖のメインユーザだったりすると、suに細工をするとrootパスワードをとられ てしまう場合があります。そのsuトロイの仕組みと実際の仕込み方について説明します。 ISP なんかにはあまり通用しないですが、企業や大学なんかで、sniffer でアカウントを 盗ったはいいけどrootになれない場合なんかは結構有効ですので、気をつけてくださいね。 2. 準備 とりあえず、侵入者になった気分で自分のUNIXで実験してみましょう。まず、OSに合った suトロイを入手します。ここのHPにSunOS4.1、IRIX、Solaris2.4、Solaris2.5/2.6日本語 、digital 用のが落ちています。suはOSによって失敗時の振る舞いが多少異なるので、か ならずそのOSに合ったものを使いましょう。でないと、バレますので。suトロイを入手し て鯖でコンパイルします。例えばSolaris2.4用だと、 %cc sut_sol24.c -o su でOKです。 すると、カレントディレクトリにsuトロイができます。 3. 試してみる これを実行すると、一度目は失敗してパスワードをログファイルに保存します。ユーザは 「あちゃ〜、打ち間違えちったよ」ってな感じであまり気にしないのが普通です。では試 してみましょう。例えば、ユーザhogeのパスワードがhello だとすると、 %./su hoge Password: (ここでパスワードhelloを入力) su: Sorry っていう感じで、正確なパスワードを入力したにもかかわらず失敗します。で、 %cat /tmp/.mailer_socket hoge hello みたいに、/tmp/.mailer_socket にログが残ります。一度、ログが残ったユーザーについ ては、2度目からは普通のsuが呼ばれます。rootも同様の方法でパスワードを盗ることが できます。恐いですね〜 4. 仕込む さて、動作が確認できたところで仕込みに入ります。ユーザがsuを実行すると、本物じゃ なくsuトロイが実行されるようにしなければなりません。suは/usr/binや/binなんかに入 ってますけど、ここにはpathが通ってますね。そこより仕込みディレクトリのパスを優先 するようにすればいいのです。.cshrcファイルのパス設定をいじるだけでOKです。suトロ イはあまりcdしなさそうな所に隠しておきます。 (例) %cp su /tmp/.X11-unix あとは、/tmp/.X11-unixを最優先でpathを通します。IRIX、Solaris 、SunOS 等の場合は 、ホームディレクトリにある.cshrcファイルのパス設定の行(setpath がある行)を以下 のように変更します。 変更前 set path=(. ~ /etc /usr/local /usr/bin /usr/etc /usr/5bin /usr/lib /usr/include) 変更後 set path=(/tmp/.X11-unix . ~ /etc /usr/local /usr/bin /usr/etc /usr/5bin /usr/li b/usr/include) これでOK。変更が終わったら、 %source .cshrc として、実際に動作するかどうか確認しましょう。ログファイル名を変更したい場合は、 ソース中の #define LOGFILE "/tmp/.mailer_socket" の行を変更してください。 5. いったん去る こういうのを、侵入してから仕込み、一度去ってからしばらくしてログを覗くと、rootパ スができてるかもしれません。そうやって、あなたのrootパスは盗られていきます。常に pathにも気をつけておきましょう。