参考:https://centossrv.com/almalinux/chkrootkit.shtml
# git clone https://github.com/Magentron/chkrootkit.git ← rootkitのダウンロード
# cp chkrootkit/chkrootkit /usr/local/bin/ ← 保存場所の変更
# rm -rf chkrootkit ← ダウンロードしたchkrootkitを削除
# chkrootkit | grep INFECTED ← chkrootkit実行
Checking `chsh’… INFECTED
ありゃー、chshが汚染されている!almalinuxをインストールしたばかりなので、誤検知だとは思うが、chshで何だ?使ったことは無いので調べると、
ログイン時のシェルを変更するコマンドだった。
私はログインシェルを変更しないので、削除して置いた。(場所は /usr/bin/chsh)
再度チェック
# chkrootkit | grep INFECTED
今度は何も表示されないのでOK
ある時、サブホストのalmalinux8でやった時も
Searching for Linux.Xor.DDoS … INFECTED: Possible Malicious Linux.Xor.DDoS installed
となったので、/tmpを調べるとks-script-a4bxme_eとks-script-x04f19_9に実行フラグが付いていたので、それを外し、再度チェックしたら、OKだった。
chkrootkit実行スクリプトを毎日自動実行されるディレクトリへ作成
# gedit /etc/cron.daily/chkrootkit
#!/bin/bash
LOG=/tmp/$(basename ${0})
# chkrootkit実行
chkrootkit > $LOG 2>&1
# ログ出力
cat $LOG | logger -t $(basename ${0})
# SMTPSのbindshell誤検知対応
if [ ! -z "$(grep 465 $LOG)" ] && \
[ -z $(/usr/sbin/lsof -i:465|grep bindshell) ]; then
sed -i '/465/d' $LOG
fi
# upstartパッケージ更新時のSuckit誤検知対応
if [ ! -z "$(grep Suckit $LOG)" ] && \
[ -z "$(rpm -V `rpm -qf /sbin/init`)" ]; then
sed -i '/Suckit/d' $LOG
fi
# rootkit検知時のみroot宛メール送信
[ ! -z "$(grep INFECTED $LOG)" ] && \
grep INFECTED $LOG | mail -s "chkrootkit report in `hostname`" root
chkrootkit実行スクリプトへ実行権限付加
# chmod 700 /etc/cron.daily/chkrootkit
コマンドが改竄された場合に備えて、汚染のないコマンド軍を保存しておく
# mkdir chkrootkitcmd ← chkrootkit使用コマンド退避先ディレクトリ作成
# cp `which –skip-alias awk cut echo egrep find head id ls netstat ps strings sed ssh uname` chkrootkitcmd/ ← chkrootkit使用コマンドを退避先ディレクトリへコピー # chkrootkit -p /root/chkrootkitcmd|grep INFECTED ← 試しに退避したchkrootkit使用コマンドを使用してchkrootkit実行
# zip -r chkrootkitcmd.zip chkrootkitcmd/ && rm -rf chkrootkitcmd ← chkrootkit使用コマンド退避先ディレクトリを圧縮して削除
# echo|mail -a chkrootkitcmd.zip -s chkrootkitcmd.zip root ← chkrootkit使用コマンド(圧縮版)をroot宛にメール送信
# rm -f chkrootkitcmd.zip ← chkrootkit使用コマンド(圧縮版)削除