我发现我们的机器上有病毒。它表现出的症状是
- 它运行多个名为 camplz 的进程。如果我终止该进程,它会重新启动
- 可执行文件位于 /usr/bin 目录下。如果我删除可执行文件,它会重新创建。
- 它在 /tmp 下创建名为 config.f 和 ??af???a???mdkkkk 的文件。
如果我删除这些文件,它们就会被重新创建,它会建立与中国 IP 地址的 IP 连接,并开始以 MB 为单位发送字节,从而增加我的带宽利用率。
lsof -o shows camplz 26983 root 2u IPv4 2380650457 0t0 TCP <mydomain.com>:18703->100.42.227.29:18888 (ESTABLISHED)
mydomain.com 是一个占位符。
虽然我已经找到了源头,但我不知道如何删除它并清理我的机器。我尽量不想更换机器。目前,我编写了一个简单的脚本来终止进程并删除创建的文件。这很有帮助。然而,这不是一个永久的解决方案。我用了一些病毒扫描软件。但它们没有发现。有人能提出一个解决方案吗?
#!/bin/bash
while true; do ps -ef | grep camplz | grep -v grep | awk '{print $2}' | xargs kill; rm /usr/bin/camplz ; rm /tmp/config.f ; rm /tmp/??af???a???mdkkkk ; done
答案1
朋友们,昨晚监控了系统,发现系统很稳定。想分享一下我解决问题的经验。
问题陈述 收到托管服务提供商的电子邮件,告知带宽使用量增加了数倍。
寻找来源
- 跑去
iftop -n
查看数据流。显然我的机器正在发送数据。 - 运行
lsof -i
并lsof -o
找出哪些进程正在发送数据。 从输出中获取 PID
lsof -o
跑去
ps -e -o cmd,pid,ppid | grep <pid>
查看父进程id,发现是1- 运行
grep -rnw '/' -e "camplz"
以找出所有存在该进程名称的文件 - 打开文件来查看脚本的运行情况
- 最终删除了所有感染文件并终止了其正在运行的进程
更多具体信息点请参阅评论。但我认为他们可以推迟到个人。
在此过程中编写了一些脚本。希望您觉得它们有用。
出现进程时终止该进程的脚本
#!/bin/bash
while true; do ps -ef | grep camplz | grep -v grep | awk '{print $2}' | xargs kill; rm /usr/bin/camplz ; rm /tmp/config.f ; rm /tmp/??af???a???mdkkkk ; done
监控带宽使用情况并在发生跳跃时发送电子邮件的脚本
#!/bin/bash
log="/root/net.log"
current_time=$(date "+%Y.%m.%d-%H.%M.%S")
if [ -z "$1" ]; then
echo
echo usage: $0 network-interface
echo
echo e.g. $0 eth0
echo
echo shows packets-per-second
exit
fi
IF=$1
while :;
do
R1=`cat /sys/class/net/$1/statistics/rx_bytes`
T1=`cat /sys/class/net/$1/statistics/tx_bytes`
sleep 10
R2=`cat /sys/class/net/$1/statistics/rx_bytes`
T2=`cat /sys/class/net/$1/statistics/tx_bytes`
TXPPS=`expr $T2 - $T1`
RXPPS=`expr $R2 - $R1`
echo "tx $1: $TXPPS bytes/s rx $1: $RXPPS bytes/s"
if [ "$TXPPS" -gt 100000000 ]; then
mail -s "Data is being transmitted above 100 MB. Please Check" <put your email id here. e.g. [email protected]> < /dev/null
echo "$current_time Mail send successfully" >>$log
fi
done
感谢@mikewhatever @DopeGhoti,特别感谢@Serg