ルートキット(rootkit)とは -2004年12月15日
ハッカーがハッキングに成功したあと、再度侵入しやすいように入り口を仕込み
ます。 この入り口をバックドアとかトロイの木馬とか言いますが、実際にはプ
ログラムを仕込んだり設定を変えたりする訳ですが、このようなプログラムなど
をルートキットと言います。
突然、見たこともないプログラムがあれば気が付きもしますが、もともとシステ
ムにあるプログラムと入れ替えられてしまったりするケースも多く見つけるのも
容易ではありません。
そこで「chkrootkit」をインストールして発見の手助けをして貰いましょう。
なお、お断りして置きますがアンチウイルスと同様、このツールも完璧な物では
ありませんので入れたから100%大丈夫って訳ではありません。
|
では、インストール -2005年03月24日
(エクストラパッケージ対応必須)
|
[root@station ~]# yum -y install chkrootkit
Setting up Install Process
Setting up Repo: fedora-us-extras
repomd.xml 100% |=========================| 951 B 00:00
Setting up Repo: crash-hat
repomd.xml 100% |=========================| 951 B 00:00
Setting up Repo: base
repomd.xml 100% |=========================| 1.1 kB 00:00
Setting up Repo: updates-released
repomd.xml 100% |=========================| 951 B 00:00
Reading repository metadata in from local files
fedora-us-: ################################################## 1002/1002
crash-hat : ################################################## 77/77
base : ################################################## 2622/2622
updates-re: ################################################## 740/740
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package chkrootkit.i386 0:0.45-1 set to be installed
--> Running transaction check
Dependencies Resolved
Transaction Listing:
Install: chkrootkit.i386 0:0.45-1
Downloading Packages:
chkrootkit-0.45-1.i386.rp 100% |=========================| 248 kB 00:01
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: chkrootkit 100 % done 1/1
Installed: chkrootkit.i386 0:0.45-1
Complete!
[root@station ~]#
|
|
実行してみます。
|
[root@station ~]# cd /usr/lib/chkrootkit-0.45
[root@station ~]# ./chkrootkit
ROOTDIR is `/'
Checking `amd'... not found
Checking `basename'... not infected
Checking `biff'... not found
Checking `chfn'... not infected
Checking `chsh'... not infected
〜 省略 〜
Searching for Lion Worm default files and dirs... nothing found
Searching for RSHA's default files and dir... nothing found
Searching for RH-Sharpe's default files... nothing found
Searching for Ambient's rootkit (ark) default files and dirs... nothing found
Searching for suspicious files and dirs, it may take a while...
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/.packlist /usr/lib/perl5/vendor_per
l/5.8.3/i386-linux-thread-multi/auto/NKF/.packlist /lib/modules/2.6.10-1.741_FC3
/build/.config /lib/modules/2.6.10-1.741_FC3/build/scripts/basic/.split-include.
cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/basic/.docproc.cmd /lib/modules/
2.6.10-1.741_FC3/build/scripts/basic/.fixdep.cmd /lib/modules/2.6.10-1.741_FC3/b
uild/scripts/.conmakehash.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/.kalls
yms.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/.pnmtologo.cmd /lib/modules/
2.6.10-1.741_FC3/build/scripts/genksyms/.genksyms.cmd /lib/modules/2.6.10-1.741_
FC3/build/scripts/genksyms/.genksyms.o.cmd /lib/modules/2.6.10-1.741_FC3/build/s
cripts/genksyms/.lex.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/genksyms/
.parse.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/kconfig/.mconf.o.cmd /l
ib/modules/2.6.10-1.741_FC3/build/scripts/kconfig/.conf.cmd /lib/modules/2.6.10-
1.741_FC3/build/scripts/kconfig/.conf.o.cmd /lib/modules/2.6.10-1.741_FC3/build/
scripts/kconfig/.zconf.tab.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod
/.elfconfig.h.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod/.empty.o.cmd /
lib/modules/2.6.10-1.741_FC3/build/scripts/mod/.file2alias.o.cmd /lib/modules/2.
6.10-1.741_FC3/build/scripts/mod/.mk_elfconfig.cmd /lib/modules/2.6.10-1.741_FC3
/build/scripts/mod/.modpost.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod/
.modpost.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod/.sumversion.o.cmd
Searching for LPD Worm files and dirs... nothing found
Searching for Ramen Worm files and dirs... nothing found
Searching for Maniac files and dirs... nothing found
Searching for RK17 files and dirs... nothing found
Searching for Ducoci rootkit... nothing found
〜 省略 〜
Checking `wted'... chkwtmp: nothing deleted
Checking `scalper'... not infected
Checking `slapper'... not infected
Checking `z2'... chklastlog: nothing deleted
Checking `chkutmp'... chkutmp: nothing deleted
[root@station ~]#
|
|
大文字で「INFECTED」って文字が見当たらなければとりあえずOK♪
エラーのみ表示モードで実行してみます。
|
[root@station chkrootkit-0.45]# ./chkrootkit -q
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/.packlist /usr/lib/perl5/vendor_per
l/5.8.3/i386-linux-thread-multi/auto/NKF/.packlist /lib/modules/2.6.10-1.741_FC3
/build/.config /lib/modules/2.6.10-1.741_FC3/build/scripts/basic/.split-include.
cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/basic/.docproc.cmd /lib/modules/
2.6.10-1.741_FC3/build/scripts/basic/.fixdep.cmd /lib/modules/2.6.10-1.741_FC3/b
uild/scripts/.conmakehash.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/.kalls
yms.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/.pnmtologo.cmd /lib/modules/
2.6.10-1.741_FC3/build/scripts/genksyms/.genksyms.cmd /lib/modules/2.6.10-1.741_
FC3/build/scripts/genksyms/.genksyms.o.cmd /lib/modules/2.6.10-1.741_FC3/build/s
cripts/genksyms/.lex.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/genksyms/
.parse.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/kconfig/.mconf.o.cmd /l
ib/modules/2.6.10-1.741_FC3/build/scripts/kconfig/.conf.cmd /lib/modules/2.6.10-
1.741_FC3/build/scripts/kconfig/.conf.o.cmd /lib/modules/2.6.10-1.741_FC3/build/
scripts/kconfig/.zconf.tab.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod
/.elfconfig.h.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod/.empty.o.cmd /
lib/modules/2.6.10-1.741_FC3/build/scripts/mod/.file2alias.o.cmd /lib/modules/2.
6.10-1.741_FC3/build/scripts/mod/.mk_elfconfig.cmd /lib/modules/2.6.10-1.741_FC3
/build/scripts/mod/.modpost.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod/
.modpost.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod/.sumversion.o.cmd
[root@station chkrootkit-0.45]#
|
|
「/lib」「/usr/lib」内の隠しファイルが表示されました。 特に問題無いよう
です。
|
定期的に実行しましょう。 -2004年12月15日
シェルスクリプトを書きますが、まずルートのディレクトリに「sh」って名
前でディレクトリを作ります。 これは後で「何だったかな?」って判らな
くなる事が多々あるので私の趣味です。 皆さんはお好きに(笑)
|
[root@station chkrootkit-0.45]# mkdir /root/sh
[root@station chkrootkit-0.45]# vi /root/sh/chkrootkit.sh
#!/bin/sh
cd /usr/lib/chkrootkit-0.45
exec /usr/lib/chkrootkit-0.45/chkrootkit >> /var/log/chkrootkit.log
chmod 600 /var/log/chkrootkit.log
grep INFECTED /var/log/chkrootkit.log
|
|
実行の権限を付けて、自動実行「cron」に1時15分に実行するよう登録してあ
げます。 好きな時間で良いです(笑) 私は「0分」は避けてますが...
|
[root@station chkrootkit-0.45]# chmod 700 /root/sh/chkrootkit.sh
[root@station chkrootkit-0.45]# crontab -e
15 01 * * * /root/sh/chkrootkit.sh | nkf -j
|
|
|
レスキューFDを作りましょう。 -2004年12月15日
次に「何か動きが変だな?」と思った時に使う「レスキューFD」を作ります。
アンチウイルスのと違って発見だけで修復はしてくれませんし、ブートもしませ
んが... まず、作る作業時に欲しいコマンドをダウンロードします。
|
[root@station chkrootkit-0.45]# cd
[root@station ~]# yum -y install which
Setting up Install Process
Setting up Repo: base
repomd.xml 100% |=========================| 1.1 kB 00:00
Setting up Repo: updates-released
repomd.xml 100% |=========================| 951 B 00:00
Reading repository metadata in from local files
base : ################################################## 2622/2622
primary.xml.gz 100% |=========================| 134 kB 00:00
MD Read : ################################################## 327/327
updates-re: ################################################## 327/327
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for which to pack into transaction set.
which-2.16-4.i386.rpm 100% |=========================| 6.0 kB 00:00
---> Package which.i386 0:2.16-4 set to be installed
--> Running transaction check
Dependencies Resolved
Transaction Listing:
Install: which.i386 0:2.16-4
Downloading Packages:
which-2.16-4.i386.rpm 100% |=========================| 23 kB 00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: which 100 % done 1/1
Installed: which.i386 0:2.16-4
Complete!
[root@station ~]# yum clean packages
Cleaning up Packages
2 packages removed
[root@station ~]#
|
|
「ext2」形式のFDを作ります。 消しても良いFDをセットして
|
[root@station ~]# fdformat /dev/fd0H1440
両面, 80 トラック, 18 セクタ/トラック。合計容量 1440 kB。
フォーマットします ... 終了
照合します ... 終了
[root@station ~]# mkfs -t ext2 -m 0 /dev/fd0H1440
mke2fs 1.35 (28-Feb-2004)
max_blocks 1474560, rsv_groups = 180, rsv_gdb = 5
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
184 inodes, 1440 blocks
0 blocks (0.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=1572864
1 block group
8192 blocks per group, 8192 fragments per group
184 inodes per group
Writing inode tables: done
inode.i_blocks = 12, i_size = 67383296
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@station ~]#
|
|
FDをマウントします。
|
[root@station ~]# mount /media/floppy
[root@station ~]#
|
|
※私はFDなしでインストール作業をした為か? マウントポイントと「/etc/fstab」にFDの設定がありませんでした(笑)
必要ファイルをコピーします。
|
[root@station ~]# cp -r /usr/lib/chkrootkit-0.45 /media/floppy
[root@station ~]# mkdir /media/floppy/cmd
[root@station ~]# cp `which --skip-alias awk cut echo egrep find head id ls netstat ps strings sed uname` /media/floppy/cmd/
[root@station ~]# umount /media/floppy
|
|
※ここでアンマウントする必要は無いのですが次の作業での繋がりで...
FDから実行してみます。 今後、実行する時も同様の操作となります。
|
[root@station ~]# mount /media/floppy
[root@station ~]# cd /media/floppy/chkrootkit-0.45
[root@station chkrootkit-0.45]# ./chkrootkit -q -p /media/floppy/cmd
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/.packlist /usr/lib/perl5/vendor_per
l/5.8.3/i386-linux-thread-multi/auto/NKF/.packlist /lib/modules/2.6.10-1.741_FC3
/build/.config /lib/modules/2.6.10-1.741_FC3/build/scripts/basic/.split-include.
cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/basic/.docproc.cmd /lib/modules/
2.6.10-1.741_FC3/build/scripts/basic/.fixdep.cmd /lib/modules/2.6.10-1.741_FC3/b
uild/scripts/.conmakehash.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/.kalls
yms.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/.pnmtologo.cmd /lib/modules/
2.6.10-1.741_FC3/build/scripts/genksyms/.genksyms.cmd /lib/modules/2.6.10-1.741_
FC3/build/scripts/genksyms/.genksyms.o.cmd /lib/modules/2.6.10-1.741_FC3/build/s
cripts/genksyms/.lex.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/genksyms/
.parse.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/kconfig/.mconf.o.cmd /l
ib/modules/2.6.10-1.741_FC3/build/scripts/kconfig/.conf.cmd /lib/modules/2.6.10-
1.741_FC3/build/scripts/kconfig/.conf.o.cmd /lib/modules/2.6.10-1.741_FC3/build/
scripts/kconfig/.zconf.tab.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod
/.elfconfig.h.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod/.empty.o.cmd /
lib/modules/2.6.10-1.741_FC3/build/scripts/mod/.file2alias.o.cmd /lib/modules/2.
6.10-1.741_FC3/build/scripts/mod/.mk_elfconfig.cmd /lib/modules/2.6.10-1.741_FC3
/build/scripts/mod/.modpost.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod/
.modpost.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod/.sumversion.o.cmd
[root@station chkrootkit-0.45]# cd
[root@station ~]# umount /media/floppy
[root@station ~]#
|
|
ラベルに「レスキューchkrootkit」と書いてFDをしまって下さい(笑)
|