我认为我的 VPS 被黑了 - 有多个curl 进程实例在运行并指向某个 IP 地址的 Jpg 文件。如何阻止该进程一遍又一遍地创建?
有多个这样的进程同时运行,删除其中一个进程不会删除另一个进程。我尝试删除所有内容,但它们被重新创建。
答案1
如果某个进程正在生成进程,请杀死该进程(不仅仅是那些进程)。
如果我运行ps -ef
,我会得到在我的机器上运行的进程列表。我只包含了我感兴趣的过程如下:
$ ps -ef --forest
UID PID PPID C STIME TTY TIME CMD
...
stew 909382 1 0 08:36 ? 00:00:00 /bin/sh -c i3-sensible-terminal
stew 909383 909382 0 08:36 ? 00:00:04 \_ x-terminal-emulator
stew 909386 909383 0 08:36 pts/0 00:00:00 \_ /bin/bash
stew 910033 909386 0 08:46 pts/0 00:00:00 \_ curl https://unix.stackexchange.com/questions/712603/is-there-any-way
stew 910034 909386 0 08:46 pts/0 00:00:00 \_ ps -ef --forest
确实curl
正在运行(我自己启动的)。在这里我可以看到:
CMD
:我知道 的命令行参数curl
。这可能包括您发送数据或获取指令的位置的 URL 或 IP。您也可能是 DDOS 的一部分,在这种情况下,这就是受害者的信息。PPID
:这是启动的父进程curl
。就我而言,这是 909386。UID
是stew
。这是一个非特权用户,所以我的整个系统似乎没有受到损害,只有该用户受到损害。
如果我跟踪 PPID 链,我可以看到它是通过 bash 运行的,bash 在我的桌面环境的终端中运行。这些都不奇怪,这就是我所做的。
找出curl
PPID 是什么,并沿着该链进行跟踪,直到找出主要流程。这可能是合法程序的一部分。
如果您看到 PPID 属于sshd
,则表明此人主动登录到您的计算机。更改密码和清除授权密钥是必要的。
如果您发现这是来自 systemd 服务,您可以查看该服务实际应该执行的操作,并在必要时禁用它。
答案2
虽然我尝试过 ps、ss 和其他相关命令,但它们可以显示独立的curl 命令正在运行。没有父子进程。
黑客所做的是 - 它使用 Apache Web 服务器的 www-data 用户每分钟运行一次 cron 作业。一旦我杀死了那个 cron 作业和其余正在运行的受损的卷曲进程,就不会创建新的进程。
虽然我已经删除了该 VPS 实例,但请分享一下可以采取哪些其他措施来防止此类情况发生。