お子様WIN4


少し復活 投稿者:掃除人  投稿日:10月04日(土)10時45分02秒

第三章が抜けていたという手抜きが発覚したため、一時復活。

    =========================================

   タイトル:Winを256倍楽しむ本(IRC編)

  第3章  IRCをつかいこなせ!
          (IRCで嫌われるための基礎知識)

「IRCなんかとっくに知ってるよ」....そうでしょう。
「嫌われる?どうせネット嫌われ者養成講座の二番煎じだろう」違います。
「分かった、仲間になるフリして、+o してもらったら、そのチャンネルの女の子
  以外は、みんな kick するんだろう」鋭いですね。特に murichat などは、Nick
をずりずりマウスでドラッグして窓の外にポイと捨てれば kick ですから、男ども
を次々に kick するのは楽しいでしょう。      ..嫌われるだろうなぁ。
少し違います。お子様 Winはオリジナリティ、普通でない、役に立たないが基本で
すけど、やや、テクニカルな面も合わせ持つのも特徴です。そこで、テクニカルな
面も楽しみながら、イヤな奴をIRCから放り出す方法でも考えましょう。hehe


  其の一   普通でないIRCの基礎知識

まず、高名な Black_solさんから引用します。
---------------------------------------------
  ..IRCはインターネット・リレー・チャット(Internet Relay Chat)を意味する。
  それはIRCクライアント(有名なmIRCのような)を使って接続できる多数のネット
  ワークからできている。それを使い話したりチャンネルを作る事ができる。
  IRCが紹介されてから人々はH@ckを忘れていた。これは非常にだらしのない使い方
  である....
---------------------------------------------

お叱りを受けてしまいました...では、がんばってお勉強しましょう。
まず、イヤな奴を追い出すには自分がチャンネルオペレーターであれば、チクチク
いじめる事も(-v)入れないようにして蹴り出す事も(ban/kick)できますね。でも、
そういう奴に限ってオペレーターだったり、op権を誰にも渡さなかったりします。
そこで..opが無くてもそいつを追い出す方法を考えましょう。できる事なら、
チャンネルだけでなくIRCサーバーからも..


  FLOOD (洪水)

一般にフロッド(Flood)は、大量に流し込むことを指します。アスキーアートと呼ば
れるASCII文字で作った絵や、ドットで作った新聞の写真のようなものを一度は見た
ことがあるでしょう。チャンネルに大量のゴミを撒くことで、発言の邪魔をしたり、
いやがらせを行ないます。しかし、あまりしつこく行なうとターゲット以外の観客を
全員敵に回す事にもなりかねませんので、お勧めしません。それに連続書き込みと同
じで、テクニカルな面があまり無いのでここでは扱いません。

では、攻撃的なフロッドを説明します。フロッドには、たくさんの方法があります。
しかし、そのゴールはひとつです。ターゲットをIRCから叩き出す..
flood は大量のデータをターゲットのコネクションに送り付ける事を言います。そう、
通常は「大量のゴミ」です。十分であればターゲットはIRCから切断されます。
簡単な方法は、DCC CHAT で山ほどゴミを送り付ける方法がありますが、防御が簡単な
のであまり効果がありません。まあ、やるときにはクライアントをいくつか立ち上げ
て一斉にやると良いでしょう。このために自分でアスキーアートくらいは作っておき
ましょう。
同様に DCC send で相手に大量のゴミファイルを送り付ける方法もあります。次に有
名なのが、ping です。CTCP ping の要求には一生懸命応えようとしますから、相手を
pingしまくって、うまくいけば切断、そうでなくても反応が遅くなってイライラさせる
事ができます。(接続環境によっては、自分も同じくらいイライラする)
別のやりかたでは、ICMP や UDP を使う方法もあります。ECHO を山ほど送り付けて相
手のIP接続の邪魔をします。

少し変わった、Nick Flood というのがあります。これは Timer により次々とNick を
変えていきます。自分の Nick を変えることで Nickによる攻撃の防御になります。こ
れは botに組み込んで使われる事が多いようです。


  NUKE (核兵器)

これはあまりにも有名になりましたね。相手PCの接続元(IP)がわかれば、一撃で落とせ
るIRC wariarには夢の兵器でした。やり方は相手の NetBIOS (通常は port139)に OOB
を送るだけという単純な方法で、効果は絶大でした。(少なくとも、例の青い画面になり、
アホをビビらせる事ができた) WIN用としては "Winnuke" "bitchslap" などのプログラ
ムが出回っていました。これの対策はレジストリを変更してこのポートを無視するとい
ったものが出回っていました。簡単に対策できるので、今や効果が無いかもしれません。
しかし、ここで簡単に諦めてはお子様 Winではない。139 がだめなら、138, 137にトラ
イする。あるいは、2ケタのポートに襲い掛かる。などやってみても面白いかも。hehe..
巻末にこの当時の混乱ぶりを示すニュースポストを載せておきます。
NUKE の基本:
  Connect(target,port_139)   // 相手のポートに繋ぐ
  SendOOB('HELO')            // OOBを送る。'HELO'でなくても2byte以上なら良いはず
  Disconnect

最後に、次に説明するNUKEの派生として ICMP nuke というサーバー側にnukeを試みる
方法もあります。管理用プロトコルを偽造して IPをクローズさせる。
しかし、ICMP パケットに反応しないIRC サーバーもあるとのこと。



  其の二  bot の基礎知識

なぜか、bot公式ガイドというものがありますので、これを参考にします。
手抜きだと言わないようーに。

            The official guide to writing IRC bots !!!!!
             IRC bots  公式ガイド  Ver 1.2 より抜粋

------------------------------
    必要なもの
------------------------------
  o UNIX あるいは互換性のある OS
  o IRCII クライアント
  o コマンドについての少しの知識
  o 想像力

------------------------------
    bot とは何か
------------------------------
「bot」とはあるキーフレーズに反応する命令(スクリプト)のコレクションだ。
一般的な botの機能は、自分自身や友人へ自動的にop権限(auto-opping)を与えた
りop権限剥奪の防御(botが再び与える)だ。このマニュアルでこれらのことを示す。
そしてそれがそれ以上の botを作る刺激になることを願う。ここでは基本的な事柄
しか言及しないが、bot はそれ以上の事ができる。

--------------------------
   bot のメカニズム
--------------------------
bot は IRCで別の人物として存在する。本当はただのスクリプトだが。
bot はあなたと同じシステムアドレスを持つ。あなたのアカウントの
バックグラウンドで走っている。bot はあなたがIRCを去ったら自動的に
いなくなる。チャンネルを変われば一緒についてくる。logoutしたあとに
そのままIRCに置いてくる事もできる。

bot はシンプルなASCIIファイルに保存された /on command の集まりだ。
このファイルはIRCIIにいくつかの方法でロードされる。botはバックグラ
ウンドで動かしたいだろう。そこで私の使い方を説明する。この方法には
おおくの利点がある。しかし、まず最初にいくつかの botの中身を見るこ
とにする。

-----------------------------
  botファイルの共通コマンド
-----------------------------
最初に botファイルにニックネームをつける。通常 botのニックネームは"bot"
"serv"あるいは"srv"で終わる。他の人が実際の人物だと間違えないように、
ニックネームにはこのどれかを使うべきだ。Baloobot や my bot は良い例だ。
このようなニックネームを見ると、ただのプログラムだとわかる。botファイル
にニックネームを書く。

     /nick whatever

botファイルはテキストエディタを使い、ASCIIファイルとする。
次に botを正しく動かすために exec_protection は off、display off,beep off
にする。

     /set exec_protection off
     /set display off
     /set beep off

簡単?
では実際にキーフレーズとレスポンスを書いてみよう。
多くの事が botでできる。しかしここでは少しだけ説明する。

--------------------------------------
   /ON PUBLIC - キーフレーズ応答
--------------------------------------
/on public command を使うことでチャンネルの誰かがキーフレーズを使うと
 botが反応する。*のようなワイルドカードも使える。大文字と小文字は同じ
と見なされる。最初のフォームは botにキーフレーズが話かけられたときに
応答する。

     /on public "* baloobot* hello*" / ==== Hi there, $0! ====
     /on public "* hello* baloobot*" / ==== Hi there, $0! ====

これは Fredが "baloobot hello" あるいは "hello baloobot" と挨拶をすると
 "==== Hi there, Fred! ====" と答える。このタイプは誰かが botを名前で
挨拶した時のみ応答する。もうひとつのタイプは、

     /on public "* spam*" / ==== SPAM, SPAM, SPAM, SPAMMITY SPAM! ====

これは単語"spam"が聞こえた時、フレーズを出力する。しかし多くの人はこの種の
/on public は愉快に思わない。もし続ければ botはキックされるだろう。
botが挨拶された時だけ応答するようにすれば、人々を悩ませずにすむ。
いくつかのアイデアはこのドキュメントの最後の Baloobearのリストを参照。

---------------------------------------
  /ON MSG - メッセージにレスポンスする
---------------------------------------
/on msg commands は送られてきた /msg messageas に反応する。
フォーマットは /on public に似ている。

     /on msg "* help*" /exec -msg $0 cat HelpFile.txt

これは誰かが "/msg BalooBot help" とタイプするとカレントディレクトリの
HelpFile.txt が msg で送り返される。基本的に /on public でできる事は
/on meg で、できる。巻末の BalooBotのリストにいくつかの /on msg コマン
ドがある。ほとんどはオーナーのコントロールだ。

------------------------
  自動 +op 自動再 +op
------------------------
自動+op(Auto-ops)は botと一体化できる。botはあなたやあなたの友人がチャン
ネルに入ったら自動的に opにする。(botはopでなければならない)自動再+opは
誰かがあなたからopを奪っても自動的にopにする。

     /on join BalooBear /mode $C +o BalooBear; ==== BALOOBEAR!! ====
     /on mode "* * *-O BalooBear" /mode $C +o BalooBear

最初の行は botがいるチャンネルに( $C はチャンネルを表わす)BalooBearが
joinすると、自動的にオペレーターにする。次の行は誰かがBalooBearのopを
剥奪したら、すぐにオペレーター権を与える。詳しくは BalooBotのリストを
参照。また、セミコロン(;)が同じ行の複数のコマンドのセパレーターに使わ
れることに注意。

---------------------------------
セキュア(Login-ID)による自動 +op
---------------------------------
前の auto-op コマンドはニックネームが正しければ誰にでも自動的に+opした。
小さなチャンネルでは問題にならない。しかし大きいチャンネル(#hottubのよう
な、これは Baloobearのホーム)では問題になる。たちの悪い誰かがニックネーム
を語りbotにより自動的にオペレーターになる。そしてチャンネルの皆に大掛かり
なキックを行なう。これを避けるには login-id による secure auto-opping を
使う。botファイルに次の行を追加する。

     /on join * /who $0

それから自動的にオペレーターにする人を書く。

     /on who "* * * jlynch wilkes1.wilkes.edu *" /mode $C +o $1

システムアドレスの @ は取り除く。

-------------------------------------
    KICK 防御(自動再JOIN)
-------------------------------------
botに次のように付け加える。

     /on raw_irc "*KICK * * BalooBot*" /msg BalooBot rejoin
     /on msg "BalooBot rejoin" /join #channel

/on raw_irc kick /join は、できない。なぜなら、すべての raw_irc
後の動作は、kickされる前に実行される。それで rejoinさせるには、
bot自身にメッセージを送る。

もちろん、誰かが botを banすることもできる。それから kickする。
これを回避するために、botを /serv コマンドと共に 2.7サーバー以外
に置く。2.7でないサーバーは ban を無視する。これで bot を ban-proof
できる。次の章の kill 防御とともに、IRCの誰も、本当に誰もどんな方法
でもチャンネルから追い出せない。(KICKもBANも働かない。KILLも)
チャンネルを invite-only で作れば別だが。ほとんどのパブリックチャン
ネル(#hottub のような)で、invite-only はまず使われない。

--------------
  KILL 防御
--------------
簡単な一行で kill-proof(防御)ができる。
     /on disconnect * /serv servername

"servername" は自分のサーバーに置き換える。

------------------
 オーナーコマンド
------------------
これらのコマンドは /on public で使う。bot のオーナーのみに有効だ。
オーナーの名前をステートメントに入れる。

     /on public "BalooBear bbot boot*" /kick $C $3

これは"boot*"をチャンネルからキックする。すべての BalooBearはキック
するために "bbot boot nick" とタイプそなければならないことに注意。
/on piblic の"Baloobear"の部分はコマンドが BalooBear からであること
を確かめるために使われる。他の誰かが"bbot boot"を試そうとしても応答
しない。BalooBotはまた、オーナーが同じチャンネルにいない時のために
/on msg owner commands を含む。

--------------
JOIN-ON-INVITE
--------------
このコマンドは、オーナーの /invite で botをチャンネルに参加させる。
("BalooBear"に変えて自分のニックを入れる)

     /on invite "BalooBear" /join $1

----------------
 サーバーの変更
----------------
これは特別なオーナーコマンドで botを指示したサーバーに移す。

     /on public "BalooBear BBot serv*" /serv $3
     /on msg "BalooBear serv *" /serv $2

BalooBearが"bbot serv lyman.pppl.gov"  あるいは 
"/msg BalooBot serv lyman.pppl.gov"とタイプすると
BalooBear は lyman サーバーに移る。


-----------------------
オーナーと一緒に離れる
-----------------------
このコマンドは自分がIRCを離れた時に bot も離れる。もしずっと bot
を常駐させたければこのコマンドを使ってはいけない。bot を止めるには
shell からプロセスを kill する。

     /on channel_signoff "* BalooBear" /exit

-----------------
  BOTを起動する
-----------------
OK,bot もできた。そして早く試したい。
ここでは UNIXの C-shell と仮定する。

1. shell プロンプトから、  irc -b -l botfile

ircの代わりにフルパスが必要化もしれない。botfaile は自分で作った
botファイル名に置き換える。
これで botがバックグラウンドで走る。画面にガラクタが表示されるが無視する。
リターンを何度か押すとシェルプロンプトに戻る。bot がバックグラウンドで走っ
ている。これは killするまで logoutしても残っている。

2. IRC に参加(join)する。ニックネームを botが主人だと認識する。

..そして楽しむ!

3. 何らかの理由で botを killする時は(例えば改良) "ps-x" を実行し botの
   PID を調べる。それから "kill -9 pidnumber" とする。

---------------
  おわりに
---------------
botではもっと多くのことができる事を忘れてはいけない。ここでは「氷山の一角」
(tip of the iceberg)だけを説明した。あとは自分の手を汚す....
質問があったら、私は"BalooBear"でIRCにいる。直接話すかメッセージを残す。
E−メールは  jlynch@wilkes1.wilkes.edu。

------------------------------------------------------------------
                              # 何となく使い方は、わかりましたね?



その2 投稿者:掃除人  投稿日:10月04日(土)10時47分25秒

  其の三  Winで IRC War を楽しむ

それでは Winで楽しみましょう。まず、IRCクライアントとスクリプト、その他を手に
入れなくてはなりません。mIRC が良いと思いますが、日本語を使うには工夫が必要で
す。これくらいは自分で調べましょう。(筆者は JPROXYを使った) mIRC用のスクリプト、
 .iniファイルなどを用意します。大抵は mirc.ini にかわる .iniファイルと関連する
その他のファイルが用意されていますので、指示にしたがってセットアップすれば OK 
なはずです。日本語を使う時は、iniファイルのフォントに注意。

これが面倒だと言う人は、_ Death_IRC_ という Black_solさん作のパッケージを拾って
くるのが早いでしょう。これには mIRC(v4.6)、bot, script,nuke その他の攻撃兵器や防
御兵器が組み込まれています。mIRC は shareware になってしまいました。拾ってきたら、
最初にやるのは、そう、mIRC のク○ックですね。 ←クリックではないぞ :-(
前に説明したスクリプトに相当するのが、同じディレクトリにある popups.ini や
remote.ini です。どのファイルを使うかは mirc.ini で定義します。蛇足ですが、起動時
に .ini ファイルを指定する事ができます。
  irc666 -iファイル名.ini  
これで指定した .iniで起動します。mIRCは非常に高機能なので、メニューも自由に変えら
れます。状況に応じて .iniファイルで使用するスクリプトを選べます。スクリプトやアス
キーアートでは、変な記号を毛唐どもが使うため、半角カタカナ 及び意味不明の記号に化ける
事があります。この辺は自分で手直しします。言い忘れましたが、DeathIRCのメニューの一
部が化けていませんか?メニューは popups.ini で定義されていますので、この中で化けて
いる文字を探してください。(ヒント:FloodとUser stuffなど。エディタで欧文フォントに
して確認してください) それから clone の .iniファイルの中のフォントを日本語が表示で
きる物に変えた方が良いかもしれません。iniファイルで使う書式は、mIRC の HELPファイル
に簡単な説明があります。

忘れるところでしたが、このパッケージには WNUKEもついています。でも、メニューには入
っていません。作者がNUKEの濫用を嫌ったのでしょうか。でもせっかくついていますからメ
ニューに加えておきましょう。popup.iniを編集してください。ヒントは同じように外部コ
マンドを使っているのがありますね。Icmp Flood が ping を起動していませんか?  では
これと同じように追加すればできそうですね。Nukeのコマンドラインのオプションは付属の
docに書いてあります。mIRC はあまりに高機能なので、全部を説明すると本が一冊書けてし
まうし、筆者も全部知っているわけではありませんので。
そして、楽しむ....

ウィンドウ内で右クリックすると、普通の mIRCには無いメニューが現れますが、これを
読んだ皆さんは、大体何をするものか名前から想像できるでしょう。
あとは、自分の手を汚す....



え、チャンネルの見つけ方?うろうろしていれば、そのうち見つかるでしょう。
スクリプトの作者に聞いてみては?  あるいは、ヤフーで探す。
  Yahoo! IRC Clients, FAQs, Server lists,etc.
      http://www.yahoo.com/Computers_and_Internet/Internet/Chatting/IRC/
  Yahoo! list of popular IRC Channels
      http://www.yahoo.com/Computers_and_Internet/Internet/Chatting/IRC/Channels/

振り返ってみると、まともなコマンドは全然説明していませんね。でもこれはいろん
なところに説明がありますし、HELPにも詳しく書かれていますので、読んでください。
アメリカのサーバーでは bot禁止! という所も増えています。
今のうちに日本のサーバーを荒らしまく ....
いや、IRCのお勉強をさせてもらいましょう。

    =========================================

これで、あやしげなIRCツールの置いてあるサイトに行っても、なにやら雰囲気
だけは分かるようになったと思います。筆者は IRC Wariar ではないので、最新の
テクニックはあまり知りません。アメリカのクソガキども(たぶんね)に何度も撃墜
されて悔しい思いをしてから、馬鹿らしくなって遠ざかっています。これを読んで
IRC Warに興味を持ち凄いテクニックを身につけた人がいたら、

  「絶対筆者に教えろ!!」

いや、教えてください。それに、おもしろい bot(スクリプト)ができたらゼヒとも
公開してください。みんなで遊びましょう。

    =========================================
      [  お子様 Win 第三章 (終わり)  ]
    =========================================




*** Appendix ***

                Usenet NUKE 関連の投稿より抜粋
------NO.1---------------------------------------------------------
Posted by: The Messiah (tm@sinnerz.com)  05/11/97 19:59

最初にこのバグをBugtraqで知った時、ショックを受けた。
誰かのWin95/NTをクラッシュさせたかったら、プログラムがここにある。
Connect(target,port_139)
SendOOB('HELO')
Disconnect
今、IRCウォーリアー達がこの情報で気違いのように爆撃を行なっている。
私の友人は「何が起こってるって?flash. Reboot, logon..」とびっくりし
ていた。このような小さなバグで簡単に重大な結果を生じる事に驚いている。
MSはポートの安全性では良い仕事をした。

------NO.2---------------------------------------------------------
Posted by:  (NONE)  05/12/97 13:14

ircで夜遅く、あるいは朝早くぶらぶらしていた時、コンピューターがブルーの
スクリーンになっているのに気づいた。かつてこのような画面を見たことが無か
った。テスターとリスナーがあるWinnukeのページを見つけた。そこはcgiフォー
ムでwinnukeをテストでき、自分をクラッシュできる。私はWINでのスタートアッ
プを止めた。私に3回これを仕掛けてきた奴を捕まえたことがある。今日の朝5:17
にリスナーでport139を監視し、ログを取っていた。知らない誰かがbotと私しか
いないチャンネルに入ってきた。彼は2回私をpingし、fingerした。そしてリス
ナーにセットしたwavアラームが鳴った。彼は私のport139に繋いだ。!!私は彼に
ログを示した。それから「君はたった今私にwinnukeをしかけたようだ」と言った。
かれは「win..何」と言ったが彼のircのipと同じipが私の139に繋がっていた。彼
は「これはeduアカウントなので、このコンピューターは大勢で使っている」と答
えたが、確かに彼のipだった。私はすべての事を手紙にして彼のadminに送った。
確かではないが、大学は彼らのコンピューターが誰かのワークステーションを週に
4回もクラッシュさせるユーザーに親切だとは思わない。送ったidが彼の寮のidか
何かである事を期待している。
Dave

------NO.3---------------------------------------------------------
Posted by: David Eriksson (david@shellwizard.com)  05/12/97 19:23

  技術的な説明
========================
http://www.microsoft.com/msdn/sdk/platforms/doc/sdk/win32/sock/src/ovrvw3_16.htm

  基本的な知識
========================
引用:「マイクロソフト TCP/IP は out-of-band のデータの処理をサポートしていない」
http://www.microsoft.com/kb/articles/q96/6/82.htm
- David

------NO.4---------------------------------------------------------
Posted by: MyStiC (Mysticfire@mobsters.com)  05/13/97 02:47

私はIRCに居る事が多い。war toolも持っている。とにかく昨晩誰かと話してい
る時にこのバグを聞いた。彼は既に知っていた。netBIOSは137,138,139の3つがある。
最もポピュラーな139がよく使われる。プログラムの名前は、"Sprite"  "Winnuke" 
 "Bitchslap"。これらのプログラムを知りたかったら、ircページをチェックする。

------NO.5---------------------------------------------------------
Posted by: Asher Kobin (asherkob@wam.umd.edu)  05/12/97 04:47

単に out-of-bandデータ(packets)をURG(urgent)のTCPflagに与えればよい。
このパケットは既に確立されているコネクションに送られ、データストリ
ームを中断する。telnetで00Bを使えばできる。

-------------------------------------------------------------------
%おまけ%
お子様 Winの読者は、mIRCをナニする時に、どこかの掲示板に「教えてください」
などと絶対に書いてはいけませんぞ。また、お金を払って送られてくる情報など
「絶対に」買ってはいけません。本来は自分でナニすべきですが、こんな有名な
ソフトは少し調べればスグに出てきます。(何がでるかは筆者は知りません)
人の名前で登録するのはイヤなもんですよね....では、少しヒントを..
とあるジェネレーターがあります。それは名前を入れると訳のわからない数字を
表示します....
 pLEASE eNTER nAME: soujininn
            sE**A*: 14075-*0323*
 pLEASE eNTER nAME: kiken
            sE**A*: 8349-*8931*
さあ、これで好きな名前で登録してくれぃ。
-------------------------------------------------------------------------EOF-------