Cam Eniv    - The Dark Side of Linux -


■ Linux のダークサイド ■


● はじめに

Hacking や Cracking など、コンピューターのダークな単語には、
誰しも一度は憧れを抱いたことがあるはずです。
正直に言うと、私が Linux を始めたのにも、こういった動機が多少は含まれていました。
Linux は色々な可能性を秘めた力あるOSなので、
それ相応の知識があれば、少しばかりスリリングな使い方も出来てしまうのです。
ここでは、昔からよく知られている「攻撃手段」をいくつか紹介してみます。

ただし、ここで取り上げているのは、どれも幼稚で初歩的で時代遅れなものばかりなので、
悪用しようとしても、大抵うまくいかないか、あるいは簡単に見破られて
最悪捕まります。
なので、自分のホームネットワークなどでの仮想実験程度に止めておいてください。

ダークな世界が好きなのは、私もそうなのでとても良く分かりますが、
人に迷惑をかけるのは、あまりスマートではないですよ。



● 最強のポートスキャンプログラム Nmap

nmap 自体は apt-get でも手に入る、由緒正しい健全なプログラムなのですが、
ステルススキャンやハーフコネクトスキャン、デコイ、稼働OSの判別など、
強力なオプションがいくつか実装されています。
これらのオプションを付けることで、ログに残りにくいポートスキャンなどが打てます。

(例) 192.168.1.2 へ全ポートステルススキャンとOS判別を仕掛ける

# nmap 192.168.1.2 -p1- -sS -O

Starting nmap 3.93 ( http://www.insecure.org/nmap/ ) at 2006-02-05 16:40 JST
Interesting ports on 192.168.1.2:
(The 65533 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
MAC Address: XX:XX:XX:XX:XX:XX (xxxx)

Device type: general purpose
Running: Microsoft Windows NT/2K/XP
OS details: Microsoft Windows XP Pro SP1/SP2 or 2000 SP4


Nmap finished: 1 IP address (1 host up) scanned in 17.080 seconds

クライアントとして使っている Windows 機に対して打ちました。
出力結果から、開いているポート、Mac アドレス、OSのタイプなどが分かります。


最近では、ポートスキャンも不正アクセスや"攻撃"の一種であると見なされています。
よって、無差別で過剰なポートスキャンは、警察に目を付けられる理由になるかも知れません。




● Tcpdump で パケット盗聴

Tcpdump も apt-get で手に入る有名なプログラムです。
主にネットワークの情報の流れを調査するためのプログラムなのですが、
逆に、情報の流れを盗聴する(Snifferingと呼ばれます)ことも出来てしまいます。

単純なハブのみで繋がれたネットワークでは、
ネットワーク内でやり取りされている情報(パケット)をすべて盗み見ることが出来ます。
もし、その盗聴中のネットワーク内で誰かがメール確認でもしようものなら、
使ったメールアカウントとパスワード、そして確認したメール本文まで見ることが出来ます。

(例) パケットの中身を16進法で表示し、"pass" を含む行の上下5行分を表示する

  # tcpdump -x | grep -i -5 pass
tcpdump:_verbose_output_suppressed,_use_-v_or_-vv_for_full_protocol_decode
listening_on_eth0,_link-type_EN10MB_(Ethernet),_capture_size_96_bytes
   ・
   ・
   ・
________0x0010:__c0a8_0102_0015_04f7_d490_7f75_1fbe_dde4__...........u....
________0x0020:__5010_16d0_bef9_0000______________________P.......
16:08:35.014444_IP_192.168.1.3.ftp_>_192.168.1.2.1271:_P_73:106(33)_ack_12_win_5840
________0x0000:__4510_0049_edf6_4000_4006_c952_c0a8_0103__E..I..@.@..R....
________0x0010:__c0a8_0102_0015_04f7_d490_7f75_1fbe_dde4__...........u....
________0x0020:__5018_16d0_fa8f_0000_3333_3120_5061_7373__P.......331.
Pass
________0x0030:__776f_7264_2072_6571_7569_7265_6420_666f__
word.required.fo
________0x0040:__7220_686f_6765_2e0d_0a___________________
r.hoge...
16:08:35.014444_IP_192.168.1.2.1271_>_192.168.1.3.ftp:_P_12:23(11)_ack_106_win_17415
________0x0000:__4500_0033_1564_4000_8006_620b_c0a8_0102__E..3.d@...b.....
________0x0010:__c0a8_0103_04f7_0015_1fbe_dde4_d490_7f96__................
________0x0020:__5018_4407_ef1c_0000_5041_5353_2068_6f67__P.D.....
PASS.hog
________0x0030:__650d_0ad9_0fc5_f9________________________
e......
16:08:35.014444_IP_192.168.1.3.ftp_>_192.168.1.2.1271:_P_106:128(22)_ack_23_win_5840
________0x0000:__4510_003e_edf7_4000_4006_c95c_c0a8_0103__E..>..@.@..\....
________0x0010:__c0a8_0102_0015_04f7_d490_7f96_1fbe_ddef__................
________0x0020:__5018_16d0_1177_0000_3533_3020_4c6f_6769__P....w..530.Logi
   ・
   ・
   ・


試しに FTP サーバーにログインしてみた時のログです。
レッドマーカーがついている行から、user/pass = hoge/hoge でログインしたことが分かります。

この方法は、一部の社内LANや校内LANなど、
ルーターもスイッチングハブも使われていない貧弱なネットワーク内でしか使えません。
セキュリティが叫ばれている現代では、そう言ったずぼらな環境は、もうあまり無いと思います。

この、プロミスキャスモード(全収集モード)を利用した盗聴は、
盗聴者を検知し難いことで有名ですが、検知する手段が全く無いわけではありません。
見つかってしまうと、実社会での「盗撮・盗聴」同様、言い逃れることは難しいでしょう。




● John the Ripper でパスワード解析

Linux のユーザー/パスワード情報は、/etc/passwd 内に暗号化して格納されています。
この passwd ファイルを何らかの形で入手できた場合、
John the Ripper という解析プログラムを用いることで、パスワードの暗号化を破る事が出来ます。

(例) passwd ファイルを総当たりモードで解析する。

$ ./john -incremental ./passwd
Loaded 1 password hashes with 1 different salts (xxx)
hoge (root)
guesses: 1 time: 0:00:54:05 c/s: 1271 trying: hogD - hoge

解析結果より、root のパスワードは "hoge" であることが分かりました。
この4文字を解析するのに、iBook G3 500MHz でおよそ54分かかりました。
もっと長くて数字や記号も絡めたものは、解析により時間がかかるわけです。
また、総当たりのほかに、使われやすい文字列が列挙されている「辞書」を用いる解析も有名です。

昔は、一般ユーザーでも passwd ファイルの中身を閲覧することが出来ました。
しかし現在では、ほぼすべての Linux システムで、
一般ユーザーからパスワードファイルを隠す Shadow Password が採用されています。
そのため、こういったパスワード解析を行うには、
passwd ファイルに加えて shadow ファイルも入手する必要があります。



● ハッキングを学ぶ

最後に、Ipusiron さん著 「ハッカーの教科書」 シリーズを紹介しておきます。
私の Linux ダークサイドの原点となりました。



「ハッカーの教科書」
Ipusiron / データハウス


「ハッカーの教科書2」
Ipusiron / データハウス

「ハッカーの教科書 完全版」
Ipusiron / データハウス


著者の方が経営しているモンスターサイト、「Security Akademeia」 も併せてどうぞ。
蛇足になりますが、私は Ipusiron さんの大ファンです(笑)。




以上、過去に有名だったクラッキング方法をいくつか紹介してみました。
繰り返しになりますが、
他人に迷惑をかけないよう それだけは心がけてください。

最後に付け足すのもなんですが、本来の意味での "Hacker" とは、
「コンピュータ知識が豊富で、その知識を正当な理由のもとに発揮する人々」の事を指すのです。