Code Red Worm を捕まえよう

せっかくなので,おとり server を立ち上げて Code Red を生け捕りにしてみました。捕獲に使ったのは,ごく簡単な sh script です。こんなの。


#!/bin/sh

CMD='cap'
TMPFILE=`/usr/bin/mktemp /tmp/$CMD.XXXXXXXXXX` || exit 1
cat > $TMPFILE

この script を,port 80 へのアクセスに対して inetd から呼ぶようにしました。ただしこれだと cat しっぱなしで session が切れません。なので定期的に kill する script を別に動かしておきました。

その後、CGI 版も作りました。ScriptAliase /default.ida /www/cgi-bin/getcodered とかして使えば良いでせう。こんなの。こっちの方は CodeRed II しか捕まらないようです。CodeRed の方は、送り込んで来る Content-type header の次に空行がないので、error になってしまうのだ。(^^;;;


#!/bin/sh

TMPFILE=`/usr/local/gnu/bin/date +%y%m%d-%H%M%S-$$`
/usr/local/gnu/bin/cat > /tmp/$TMPFILE

echo 'Content-type: text/plain'
echo ''
echo 'hogegege'

結果

inetd 版の script を仕掛けてから5分も経たないうちに,1匹めの Code Red Worm が捕まりました。これは Code Red II の模様。その10分後には2匹めが。…という感じで,続々とやってきます。 一方,Code Red(I の方)がやってくるまでは2時間ほど待たされました。そろそろ絶滅危惧種なのかも。それぞれの strings の結果を載せておきます。全然別物なのだ。ちょっと驚き。

なおこの捕獲スクリプトは、今も動かしてます。inetd 版をしかけたマシンでは、24時間で 92 匹ほど捕まりました。Code Red はそのうち 8 匹だけで、残りは全部 Code Red II。あと何種類か variant があるはずなんだけど、まだ捕まりません。


ご意見ご感想は「けいじわん」(WebBBS)へ
satodai@dog.intcul.tohoku.ac.jp