前言

开服那么久,玩那么多服务器,这回终于被攻击了,记录一下整个处理过程。

起因

今早上收到腾讯云的警告短信,说我的服务器有违规操作,我还在想不会是我的OpenVPN服务的问题吧,结果点开一看是TCP端口22。
image-1705998090680
原来是服务器变成肉鸡了。

排查

对这次攻击我是比较有头绪的,因为昨天晚上才配置了个Palworld的服务器,很有可能是配置过程中留下了问题。

配置palworld的时候,需要先装一个steamcmd的服务,官方配置指南上就有写安全警告,不要在root权限下使用,但是我忽视了。。
image-1705998359993

排查过程其实很轻松,有啥不会问GPT就行(重生之我有纳戒全栈老头)

查看系统日志

使用以下命令查看系统日志,检查是否有异常的登录尝试或其他与端口22有关的异常活动。

sudo cat /var/log/auth.log

一看日志,好家伙这是被DDOS了,而且时间还是在2天前,这腾讯云防火墙居然啥都没报告。
image-1705999055966
从提供的日志中可以看到一些与系统安全性有关的信息。以下是其中一些可能引起关注的点:

  • SSH连接关闭:

Jan 23 10:40:40 localhost sshd[2795859]: Connection closed by 104.218.72.214 port 40600 [preauth]
Jan 23 10:44:01 localhost sshd[2796758]: Connection closed by 104.218.72.214 port 40265 [preauth]
Jan 23 10:47:22 localhost sshd[2797722]: Connection closed by 104.218.72.214 port 39937 [preauth]

这些行表明有一些SSH连接被关闭,并且源IP地址分别是104.218.72.214。这可能是一种拒绝服务攻击(DoS)的迹象,或者可能是某种安全事件。

  • 无效用户登录尝试:

Jan 23 10:48:11 localhost sshd[2797910]: Invalid user inspur from 125.74.120.250 port 7126
Jan 23 10:48:54 localhost sshd[2798091]: Invalid user industowers from 152.168.201.83 port 41515

GPT:这些行显示了一些尝试使用无效用户进行SSH登录的事件。攻击者通常会尝试使用常见的用户名进行登录,这是一种常见的暴力破解尝试。

  • SSH协商失败:

Jan 23 10:47:52 localhost sshd[2797836]: Unable to negotiate with 218.92.0.55 port 36046: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1 [preauth]

这一行显示了与IP地址218.92.0.55的SSH连接尝试,但由于密钥交换方法不匹配而失败。这可能是由于远程主机配置不正确或者试图使用较旧的、不安全的协议。

查看网络连接

使用以下命令查看当前网络连接,特别关注是否有大量连接到端口22的活动。

sudo netstat -an | grep :22

又是不看不知道一看吓一跳,22端口连了快有一百台服务器

root@VM-8-5-ubuntu:/home/ubuntu# sudo netstat -an | grep :22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      1 10.0.8.5:51248          209.204.106.60:22       SYN_SENT
tcp        0      1 10.0.8.5:57532          213.171.214.11:22       FIN_WAIT1
tcp        0      1 10.0.8.5:39296          209.204.106.103:22      SYN_SENT
tcp        0      1 10.0.8.5:45688          209.204.106.5:22        SYN_SENT
tcp        0      1 10.0.8.5:35288          209.204.104.80:22       SYN_SENT
tcp        0     13 10.0.8.5:53346          213.171.50.206:22       FIN_WAIT1
tcp        0      1 10.0.8.5:44140          209.204.104.244:22      SYN_SENT
tcp        0      1 10.0.8.5:57374          209.204.105.41:22       SYN_SENT
tcp        0      1 10.0.8.5:52704          209.204.105.159:22      SYN_SENT
tcp        0      1 10.0.8.5:43612          209.204.106.91:22       SYN_SENT
tcp        0      1 10.0.8.5:51698          209.204.104.139:22      SYN_SENT
tcp        0      1 10.0.8.5:40996          209.204.105.98:22       SYN_SENT
tcp        0      1 10.0.8.5:44862          209.204.104.98:22       SYN_SENT
tcp        0      1 10.0.8.5:37128          209.204.104.111:22      SYN_SENT
tcp        0      1 10.0.8.5:38064          209.204.106.135:22      SYN_SENT
tcp        0      1 10.0.8.5:36270          209.204.105.46:22       SYN_SENT
tcp        0      1 10.0.8.5:35738          209.204.102.248:22      SYN_SENT
tcp        0      1 10.0.8.5:59816          209.204.103.38:22       SYN_SENT
tcp        0      1 10.0.8.5:41494          209.204.105.29:22       SYN_SENT
tcp        0      1 10.0.8.5:45992          209.204.104.18:22       SYN_SENT
tcp        0      1 10.0.8.5:43028          209.204.103.170:22      SYN_SENT
tcp        0      1 10.0.8.5:40396          209.204.105.14:22       SYN_SENT
tcp        0      1 10.0.8.5:52384          209.204.103.42:22       SYN_SENT
tcp        0      1 10.0.8.5:46416          209.204.105.180:22      SYN_SENT
tcp        0      1 10.0.8.5:38646          209.204.105.67:22       SYN_SENT
tcp        0      1 10.0.8.5:49132          209.204.106.94:22       SYN_SENT
tcp        0     13 10.0.8.5:40526          213.171.50.78:22        FIN_WAIT1
tcp        0      1 10.0.8.5:43984          209.204.105.4:22        SYN_SENT
tcp        0      1 10.0.8.5:48792          209.204.104.73:22       SYN_SENT
tcp        0      1 10.0.8.5:38916          209.204.103.27:22       SYN_SENT
tcp        0      1 10.0.8.5:55418          209.204.102.251:22      SYN_SENT
tcp        0      1 10.0.8.5:39020          209.204.105.247:22      SYN_SENT
tcp        0      1 10.0.8.5:46706          209.204.104.90:22       SYN_SENT
tcp        0      1 10.0.8.5:49558          209.204.103.104:22      SYN_SENT
tcp        0      1 10.0.8.5:60888          209.204.105.171:22      SYN_SENT
tcp        0      1 10.0.8.5:41842          209.204.105.162:22      SYN_SENT
tcp        0      1 10.0.8.5:60930          209.204.103.43:22       SYN_SENT
tcp        0     13 10.0.8.5:49516          213.171.50.78:22        FIN_WAIT1
tcp        0      1 10.0.8.5:51896          209.204.102.198:22      SYN_SENT
tcp        0      1 10.0.8.5:34468          209.204.102.240:22      SYN_SENT
tcp        0      1 10.0.8.5:51988          209.204.104.145:22      SYN_SENT
tcp        0     13 10.0.8.5:52012          213.171.50.78:22        FIN_WAIT1
tcp        0     13 10.0.8.5:55718          213.171.50.78:22        FIN_WAIT1
tcp        0      1 10.0.8.5:37882          209.204.102.199:22      SYN_SENT
tcp        0      1 10.0.8.5:48382          209.204.103.173:22      SYN_SENT
tcp        0      1 10.0.8.5:60818          209.204.103.9:22        SYN_SENT
tcp        0      1 10.0.8.5:58944          209.204.103.106:22      SYN_SENT
tcp        0      1 10.0.8.5:41420          209.204.103.116:22      SYN_SENT
tcp        0      1 10.0.8.5:53978          209.204.105.145:22      SYN_SENT
tcp        0      1 10.0.8.5:56768          209.204.103.80:22       SYN_SENT
tcp        0      1 10.0.8.5:43048          209.204.104.183:22      SYN_SENT
tcp        0      1 10.0.8.5:44218          209.204.105.222:22      SYN_SENT
tcp        0      1 10.0.8.5:48450          209.204.104.8:22        SYN_SENT
tcp        0      1 10.0.8.5:47088          209.204.105.214:22      SYN_SENT
tcp        0      1 10.0.8.5:46690          209.204.103.74:22       SYN_SENT
tcp        0      1 10.0.8.5:46822          209.204.103.83:22       SYN_SENT
tcp        0      1 10.0.8.5:36116          209.204.103.81:22       SYN_SENT
tcp        0      1 10.0.8.5:54032          209.204.103.113:22      SYN_SENT
tcp        0      1 10.0.8.5:33674          209.204.105.101:22      SYN_SENT
tcp        0      1 10.0.8.5:41592          209.204.104.56:22       SYN_SENT
tcp        0     13 10.0.8.5:49206          213.171.221.84:22       FIN_WAIT1
tcp        0      1 10.0.8.5:41248          209.204.106.93:22       SYN_SENT
tcp        0      1 10.0.8.5:59622          209.204.103.133:22      SYN_SENT
tcp        0      1 10.0.8.5:59934          209.204.105.157:22      SYN_SENT
tcp        0      1 10.0.8.5:42358          209.204.104.100:22      SYN_SENT
tcp        0      1 10.0.8.5:36832          209.204.18.8:22         FIN_WAIT1
tcp        0      1 10.0.8.5:36992          209.204.104.205:22      SYN_SENT
tcp        0      1 10.0.8.5:48570          209.204.103.151:22      SYN_SENT
tcp        0      1 10.0.8.5:32980          209.204.102.249:22      SYN_SENT
tcp        0      1 10.0.8.5:39560          209.204.103.207:22      SYN_SENT
tcp        0      1 10.0.8.5:35812          209.204.103.165:22      SYN_SENT
tcp        0      1 10.0.8.5:40846          209.204.103.85:22       SYN_SENT
tcp        0      1 10.0.8.5:37552          209.204.106.143:22      SYN_SENT
tcp        0      1 10.0.8.5:43090          209.204.102.253:22      SYN_SENT
tcp        0      1 10.0.8.5:57490          209.204.103.181:22      SYN_SENT
tcp        0      1 10.0.8.5:58368          209.204.106.50:22       SYN_SENT
tcp        0      1 10.0.8.5:48820          209.204.104.216:22      SYN_SENT
tcp        0      1 10.0.8.5:53432          209.204.104.102:22      SYN_SENT
tcp        0      1 10.0.8.5:40464          209.204.104.24:22       SYN_SENT
tcp        0      1 10.0.8.5:46264          209.204.103.75:22       SYN_SENT
tcp        0      1 10.0.8.5:34816          209.204.104.225:22      SYN_SENT
tcp        0      1 10.0.8.5:51820          209.204.104.171:22      SYN_SENT
tcp        0      1 10.0.8.5:53100          209.204.104.164:22      SYN_SENT
tcp        0      1 10.0.8.5:43218          209.204.104.174:22      SYN_SENT
tcp        0      1 10.0.8.5:34818          209.204.104.31:22       SYN_SENT
tcp        0      1 10.0.8.5:59018          209.204.103.222:22      SYN_SENT
tcp        0      1 10.0.8.5:38212          209.204.103.5:22        SYN_SENT
tcp        0     13 10.0.8.5:57552          213.171.50.78:22        FIN_WAIT1

事情到这已经很确信,我的服务器遭到攻击了,而且已经被当初肉鸡用了。

在用户日志里,看到了名为steam的用户,这个用户是我在昨天开服的时候新建的,创建密码的时候没带脑子,直接把账号名和密码设为一个了。(找到罪魁祸首了)

清理木马

关闭账号权限

首先知道了很有可能是steam这个账号的问题,那么最先做的就是把这个账号冻结。

sudo pkill -u steam

但是出现了

userdel: user steam is currently used by process 2435989

因为我很确信,昨天在创建了这个账号后,就没有用这个账号启任何服务,但这里却告诉我这个进程在占用。这让我更加确信,罪魁祸首就是这个账号。

强行杀死进程

木马开了那么多的ssh连接服务,对服务器的开销肯定不会低,因此用top指令看一下当前硬件开销。

sudo top

果然,榜首是steam用户开的服务

 PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
2854351 steam      20   0 1651572 286812   1224 S  46.7   7.1   0:52.96 aliases
2529792 ubuntu    20   0 7010832 518860  23996 S  31.0  12.9 275:00.86 PalServer-Linux
2823480 root      20   0 1425908  37148  11996 S   1.0   0.9   2503:31 YDService
 948563 root      20   0  635952  12464   4196 S   0.7   0.3 272:11.62 barad_agent
 948562 root      20   0   46576   6816   3060 S   0.3   0.2  31:47.38 barad_agent

快速枪毙掉这个进程

sudo kill -9 2854351 

但是我发现他居然还写了定时自启,杀掉没两秒钟服务又启动了。

杀死服务立刻注销账户

在杀死服务的同时,我也删除了steam用户

sudo userdel -r steam

但是惊奇的发现,肉鸡程序还是自启了,而且这次顶着一个根本没有的账户6001

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
2854351 6001      20   0 1651572 286812   1224 S  46.7   7.1   0:52.96 aliases
2529792 ubuntu    20   0 7010832 518860  23996 S  31.0  12.9 275:00.86 PalServer-Linux
2823480 root      20   0 1425908  37148  11996 S   1.0   0.9   2503:31 YDService
root@VM-8-5-ubuntu:/home/ubuntu# id 6001
id: ‘6001’: no such user

首先我想到的是先把木马文件删了

root@VM-8-5-ubuntu:/home/ubuntu# ps -p 2860341 -o user,cmd
USER     CMD
6001     /var/tmp/.update-logs/aliases

这里看到了进程的文件,于是直接把它删了

sudo rm -rf /var/tmp/.update-logs/aliases

但是它还在自启,真让人崩溃🤮
此时GPT又指出:
看起来用户 6001 不存在,这可能是一个问题。在这种情况下,我们可以使用用户名而不是用户ID来终止相关进程。请使用以下命令:

sudo pkill -u 6001

删除了6001后,用top查看进程,发现没有再自启了。为了以防万一,我把整个服务器重启了一遍。

防火墙

还记得开头那个一堆22的DDOS吗?那个不光是我的服务器攻击别人,我的服务器也同时被攻击,为了省事,我索性到腾讯云那里给22号端口开了个白名单。

战后残骸

来欣赏下被当肉鸡后的TCP包
image-1706003795345
image-1706003867590
CPU占用
image-1706003929934
幽默DDos防护
image-1706004007653

年轻人的第一次DDOS,居然是这么蠢的一次低级失误,还有就技术力太低,到现在都没搞明白那个木马是通过什么方式自启的。

Q.E.D.


寄蜉蝣于天地,渺沧海之一粟