服务器被植入挖矿进程,肯定不能留它过年
Contents
一 背景
腊月二十八,也就是今天,在例行安全巡检的过程中,收到机器异常报警提醒,登录机器发现有服务器上的异常进程syst3md,占用系统CPU资源非常高,初步诊断为挖矿进程。啥也不说,这肯定不能忍,肯定得清理干净,不然这年还咋过呀……
二 分析处理流程
1 发现异常进程
[root@prometheus ~]# top top - 16:18:04 up 10 min, 2 users, load average: 5.11, 4.41, 2.43 Tasks: 299 total, 2 running, 297 sleeping, 0 stopped, 0 zombie %Cpu0 : 99.0 us, 1.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 99.0 us, 1.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu2 : 99.0 us, 1.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu3 : 98.7 us, 1.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st KiB Mem : 8010508 total, 1955104 free, 4140028 used, 1915376 buff/cache KiB Swap: 0 total, 0 free, 0 used. 3509664 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 6152 root 20 0 2900492 5524 4144 S 382.1 0.1 17:21.28 /usr/bin/.ICE-unix/.k/.file-2234A/syst3md 2881 1000 20 0 1007268 224608 8436 S 1.3 2.8 0:05.32 /usr/sbin/victoriametrics --promscrape.config=/etc/victoriametrics-promscrape.yml --retentionPeriod=30d --storageDataPath=/srv/victoriametric+ 2998 root 20 0 4534900 337360 198336 S 0.7 4.2 0:08.79 /usr/bin/clickhouse-server --config-file=/etc/clickhouse-server/config.xml 1580 root 20 0 1549568 31252 11436 S 0.3 0.4 0:01.55 containerd --config /var/run/docker/containerd/containerd.toml --log-level info 2327 root 20 0 117436 14368 4096 S 0.3 0.2 0:01.19 /usr/bin/python2 /usr/bin/supervisord -n -c /etc/supervisord.conf 2895 root 20 0 4984516 72332 24680 S 0.3 0.9 0:01.24 /usr/sbin/pmm-managed --victoriametrics-config=/etc/victoriametrics-promscrape.yml --victoriametrics-url=http://127.0.0.1:9090/prometheus --p+ 3278 root 20 0 722348 18496 5156 S 0.3 0.2 0:01.77 /usr/local/percona/pmm2/exporters/postgres_exporter --auto-discover-databases --collect.custom_query.hr --collect.custom_query.hr.directory=/+ 3294 root 20 0 727032 18848 6324 S 0.3 0.2 0:02.12 /usr/local/percona/pmm2/exporters/node_exporter --collector.bonding --collector.buddyinfo --collector.cpu --collector.diskstats --collector.e+ 1 root 20 0 125424 4016 2496 S 0.0 0.1 0:01.38 /usr/lib/systemd/systemd --switched-root --system --deserialize 21 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kthreadd] 3 root 20 0 0 0 0 S 0.0 0.0 0:00.02 [ksoftirqd/0]
可以看到,进程号为6152的进程,把4核CPU的虚拟机打满了。其可执行程序是:/usr/bin/.ICE-unix/.k/.file-2234A/syst3md
2 手工杀死进程
[root@prometheus ~]# kill -9 6152
马上,又有该进程在运行了。更加确定,这一定是个异常的进程。
3 查看该进程的执行文件
[root@prometheus .file-2234A]# pwd /usr/bin/.ICE-unix/.k/.file-2234A [root@prometheus .file-2234A]# ll -al total 12332 drwxr-xr-x 3 1000 1000 122 Jan 20 05:59 . drwxrwxrwx 3 root root 25 Jan 20 05:59 .. -rwxr-xr-x 1 1000 1000 922808 Aug 21 2020 1 -rwxr-xr-x 1 1000 1000 923336 Aug 21 2020 apachelogs -rwxr-xr-x 1 root root 5572 Jan 20 05:59 config.json -rwxr-xr-x 1 1000 1000 926112 Aug 21 2020 run drwxr-xr-x 2 1000 1000 56 Dec 26 2022 .settings -rwxr-xr-x 1 1000 1000 926272 Aug 21 2020 setup -rwxr-xr-x 1 1000 1000 575 Sep 8 2020 status -rwxr-xr-x 1 1000 1000 8903920 Jul 3 2023 syst3md [root@prometheus .file-2234A]#
把异常进程还伪装成和systemd服务非常近似。
[root@prometheus .file-2234A]# rm -rf syst3md rm: cannot remove 'syst3md': Permission denied [root@prometheus .file-2234A]# file syst3md syst3md: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=f9ca08913ec027001dc778aad11e983378225faf, stripped [root@prometheus .file-2234A]#
并且还无法删除该执行文件。
4 查看定时任务
[root@prometheus .file-2234A]# crontab -l * * * * * /usr/bin/.ICE-unix/.k/.file-2234A/1 > /dev/null <&1 2>&1 & disown @monthly /usr/bin/.ICE-unix/.k/.file-2234A/1 > /dev/null <&1 2>&1 & disown @reboot /usr/bin/.ICE-unix/.k/.file-2234A/apachelogs > /dev/null <&1 2>&1 & disown [root@prometheus .file-2234A]# crontab -r [root@prometheus .file-2234A]# crontab -l no crontab for root [root@prometheus .file-2234A]#
果不其然,有定时任务在重启该进程的服务。立即删除所有定时任务:crontab -r 。
5 再次杀死该异常进程
[root@prometheus .file-2234A]# kill -9 21466 [root@prometheus .file-2234A]#
发现压根儿不奏效,删除定时启动该异常进程的定时任务,且杀死异常进程之后,该异常又死灰复燃。
6 修改文件权限
[root@prometheus .file-2234A]# chattr -ia * [root@prometheus .file-2234A]# ll total 12332 -rwxr-xr-x 1 1000 1000 922808 Aug 21 2020 1 -rwxr-xr-x 1 1000 1000 923336 Aug 21 2020 apachelogs -rwxr-xr-x 1 root root 5572 Jan 20 05:59 config.json -rwxr-xr-x 1 1000 1000 926112 Aug 21 2020 run -rwxr-xr-x 1 1000 1000 926272 Aug 21 2020 setup -rwxr-xr-x 1 1000 1000 575 Sep 8 2020 status -rwxr-xr-x 1 1000 1000 8903920 Jul 3 2023 syst3md [root@prometheus .file-2234A]#
7 再杀死异常进程
依然无果,并且,定时任务又出现……
8 删除定时任务并重启
[root@prometheus .file-2234A]# crontab -l * * * * * /usr/bin/.ICE-unix/.k/.file-2234A/1 > /dev/null <&1 2>&1 & disown @monthly /usr/bin/.ICE-unix/.k/.file-2234A/1 > /dev/null <&1 2>&1 & disown @reboot /usr/bin/.ICE-unix/.k/.file-2234A/apachelogs > /dev/null <&1 2>&1 & disown [root@prometheus .file-2234A]# crontab -r && reboot
至此,重启之后,不再发现有异常进程。
三 补救措施
立即修改服务器root口令,然后修改普通用户口令,禁用不必要的用户。开启防火墙,并限制该机器的ssh登录。
四 问题复盘
先通过压缩打包该路径下的文件,并全部删除该异常文件。留存下来,日后回头深入复盘分析。