/* * Winを256倍楽しむ本(IRC編) * */ 第3章 IRCをつかいこなせ! (IRCで嫌われるための基礎知識) 「IRCなんかとっくに知ってるよ」..そうでしょう。 「嫌われる?どうせネット嫌われ者養成講座の二番煎じだろう」違います。 「分かった、仲間になるフリして、+oしてもらったら、そのチャンネルの女の子以外は、 みんなkickするんだろう」鋭いですね。特にmurichatなどは、Nickをずりずりマウスでド ラッグして窓の外にポイと捨てればkickですから、男どもを次々にkickするのは楽しいで しょう。..嫌われるだろうなぁ。 少し違います。お子様Win はオリジナリティ、普通でない、役に立たないが基本ですけど 、やや、テクニカルな面も合わせ持つのも特徴です。そこで、テクニカルな面も楽しみな がら、イヤな奴をIRCから放り出す方法でも考えましょう。hehe 其の一 普通でないIRCの基礎知識 まず、高名なBlack_sol さんから引用します。 --------------------------------------------- ..IRC はインターネット・リレー・チャット(InternetRelayChat )を意味する。それは IRC クライアント(有名なmIRCのような)を使って接続できる多数のネットワークからで きている。それを使い話したりチャンネルを作る事ができる。IRC が紹介されてから人々 はH@ckを忘れていた。これは非常にだらしのない使い方である.. --------------------------------------------- お叱りを受けてしまいました..では、がんばってお勉強しましょう。 まず、イヤな奴を追い出すには自分がチャンネルオペレーターであれば、チクチクいじめ る事も(-v)入れないようにして蹴り出す事も(ban/kick)できますね。でも、そういう 奴に限ってオペレーターだったり、op権を誰にも渡さなかったりします。そこで..opが無 くてもそいつを追い出す方法を考えましょう。できる事なら、チャンネルだけでなくIRC サーバーからも.. FLOOD (洪水) 一般にフロッド(Flood )は、大量に流し込むことを指します。アスキーアートと呼ばれ るASCII 文字で作った絵や、ドットで作った新聞の写真のようなものを一度は見たことが あるでしょう。チャンネルに大量のゴミを撒くことで、発言の邪魔をしたり、いやがらせ を行ないます。しかし、あまりしつこく行なうとターゲット以外の観客を全員敵に回す事 にもなりかねませんので、お勧めしません。それに連続書き込みと同じで、テクニカルな 面があまり無いのでここでは扱いません。 では、攻撃的なフロッドを説明します。フロッドには、たくさんの方法があります。しか し、そのゴールはひとつです。ターゲットをIRCから叩き出す.. Flood は大量のデータをターゲットのコネクションに送り付ける事を言います。そう、通 常は「大量のゴミ」です。十分であればターゲットはIRCから切断されます。 簡単な方法は、DCC-CHATで山ほどゴミを送り付ける方法がありますが、防御が簡単なので あまり効果がありません。まあ、やるときにはクライアントをいくつか立ち上げて一斉に やると良いでしょう。このために自分でアスキーアートくらいは作っておきましょう。 同様にDCC-SENDで相手に大量のゴミファイルを送り付ける方法もあります。次に有名なの が、pingです。CTCPpingの要求には一生懸命応えようとしますから、相手をpingしまくっ て、うまくいけば切断、そうでなくても反応が遅くなってイライラさせる事ができます。 (接続環境によっては、自分も同じくらいイライラする) 別のやりかたでは、ICMPやUDP を使う方法もあります。ECHOを山ほど送り付けて相手のIP 接続の邪魔をします。 少し変わった、NickFlood というのがあります。これはTimer により次々とNickを変えて いきます。自分のNickを変えることでNickによる攻撃の防御になります。これはBOT に組 み込んで使われる事が多いようです。 NUKE (核兵器) これはあまりにも有名になりましたね。相手PCの接続元(IP)がわかれば、一撃で落とせ るIRCwariar には夢の兵器でした。やり方は相手のNetBIOS (通常はport139 )にOOB を 送るだけという単純な方法で、効果は絶大でした。(少なくとも、例の青い画面になり、 アホをビビらせる事ができた)WIN 用としては"Winnuke""bitchslap"などのプログラムが 出回っていました。これの対策はレジストリを変更してこのポートを無視するといったも のが出回っていました。簡単に対策できるので、今や効果が無いかもしれません。しかし 、ここで簡単に諦めてはお子様Win ではない。139 がだめなら、138,137 にトライする。 あるいは、2ケタのポートに襲い掛かる。などやってみても面白いかも。hehe.. 巻末にこの当時の混乱ぶりを示すニュースポストを載せておきます。 NUKE の基本: Connect(target,port_139) // 相手のポートに繋ぐ SendOOB('HELO') // OOBを送る。'HELO'でなくても2byte以上なら良いはず Disconnect 最後に、次に説明するNUKEの派生としてICMPnukeというサーバー側に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 ファイルに保存された/oncommandの集まりだ。このファイルはIR CII にいくつかの方法でロードされる。BOT はバックグラウンドで動かしたいだろう。そ こで私の使い方を説明する。この方法にはおおくの利点がある。しかし、まず最初にいく つかのBOT の中身を見ることにする。 ------------------------------ BOTファイルの共通コマンド ------------------------------ 最初にBOT ファイルにニックネームをつける。通常BOT のニックネームは"BOT""serv" あ るいは"srv" で終わる。他の人が実際の人物だと間違えないように、ニックネームにはこ のどれかを使うべきだ。BalooBOTやmyBOT は良い例だ。このようなニックネームを見ると 、ただのプログラムだとわかる。BOT ファイルにニックネームを書く。 /nick whatever BOT ファイルはテキストエディタを使い、ASCII ファイルとする。次にBOT を正しく動か すためにexec_protection はoff 、displayoff,beepoffにする。 /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が"balooBOThello" あるいは"hellobalooBOT" と挨拶をすると"====Hithere,F red!====" と答える。このタイプは誰かがBOT を名前で挨拶した時のみ応答する。もうひ とつのタイプは、 /on public "* spam*" / ==== SPAM, SPAM, SPAM, SPAMMITY SPAM! ==== これは単語"spam"が聞こえた時、フレーズを出力する。しかし多くの人はこの種の/onpub lic は愉快に思わない。もし続ければ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で送り返される。基本的に/onpublicでできる事は/onmegで、できる。巻末のBalooB otのリストにいくつかの/onmsgコマンドがある。ほとんどはオーナーのコントロールだ。 ------------------------------ 自動 +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 のような、これはBalo obear のホーム)では問題になる。たちの悪い誰かがニックネームを語り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 で作れば別だが。ほとんどのパブリックチャンネル(#hottu b のような)で、invite-only はまず使われない。 ------------------------------ KILL 防御 ------------------------------ 簡単な一行で kill-proof(防御)ができる。 /on disconnect * /serv servername "servername" は自分のサーバーに置き換える。 ------------------------------ オーナーコマンド ------------------------------ これらのコマンドは /on public で使う。BOT のオーナーのみに有効だ。オーナーの名前 をステートメントに入れる。 /on public "BalooBear bBOT boot*" /kick $C $3 これは"boot*" をチャンネルからキックする。すべてのBalooBear はキックするために"b BOTbootnick"とタイプそなければならないことに注意。 /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 ではもっと多くのことができる事を忘れてはいけない。ここでは「氷山の一角」(ti poftheiceberg )だけを説明した。あとは自分の手を汚す....質問があったら、私は"Bal ooBear" でIRC にいる。直接話すかメッセージを残す。E−メールはjlynch@wilkes1.wil kes.edu 。 ------------------------------------------------------------------ # 何となく使い方は、わかりましたね? 其の三 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 とUserstuff など。エディタで欧文フォ ントにして確認してください)それからclone の.iniファイルの中のフォントを日本語が 表示できる物に変えた方が良いかもしれません。ini ファイルで使う書式は、mIRCのHELP ファイルに簡単な説明があります。 忘れるところでしたが、このパッケージにはWNUKE もついています。でも、メニューには 入っていません。作者がNUKEの濫用を嫌ったのでしょうか。でもせっかくついていますか らメニューに加えておきましょう。popup.ini を編集してください。ヒントは同じように 外部コマンドを使っているのがありますね。IcmpFlood が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ツールの置いてあるサイトに行っても、なにやら雰囲気だけは 分かるようになったと思います。筆者はIRCWariar ではないので、最新のテクニックはあ まり知りません。アメリカのクソガキども(たぶんね)に何度も撃墜されて悔しい思いを してから、馬鹿らしくなって遠ざかっています。これを読んでIRCWarに興味を持ち凄いテ クニックを身につけた人がいたら、 「絶対筆者に教えろ!!」 いや、教えてください。それに、おもしろい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 アラームが鳴った。彼は私のpo rt139 に繋いだ。!!私は彼にログを示した。それから「君はたった今私に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に居る事が多い。wartool も持っている。とにかく昨晩誰かと話している時に このバグを聞いた。彼は既に知っていた。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 に与えればよい。この パケットは既に確立されているコネクションに送られ、データストリームを中断する。te lnetで00B を使えばできる。 ------------------------------------------------------------------- %おまけ% お子様Win の読者は、mIRCをナニする時に、どこかの掲示板に「教えてください」などと 絶対に書いてはいけませんぞ。また、お金を払って送られてくる情報など「絶対に」買っ てはいけません。本来は自分でナニすべきですが、こんな有名なソフトは少し調べればス グに出てきます。(何がでるかは筆者は知りません)人の名前で登録するのはイヤなもん ですよね....では、少しヒントを..とあるジェネレーターがあります。それは名前 を入れると訳のわからない数字を表示します.... pLEASE eNTER nAME: soujininn sE**A*: 14075-*0323* pLEASE eNTER nAME: kiken sE**A*: 8349-*8931* さあ、これで好きな名前で登録してくれぃ。 ---------------------------------------------------------EOF-------