与黑客的斗智斗勇-一次服务器被攻击的实录

简介: 与黑客的斗智斗勇-一次服务器被攻击的实录

东窗事发


最近在忙着做一个大项目,几乎没有什么空闲时间用来写文章了。

这个大项目的测试环境部署在一台从腾讯云购买的服务器上。

服务器是朋友买的,绑定的是朋友的微信号。

前两天的一个凌晨,朋友突然收到一条来自腾讯云的安全告警通知。

image.png

第二天我去控制台看了下详情,密码被人暴力破解了!

image.png

第一件事情,我先把密码改掉了。

之前随便设了个密码,只有 8 位,可能太过于简单,只被试了 1400 多次就被攻破。

这里我得到一个教训,有公网 IP 的服务器一定要设置很复杂的密码。

腾讯云最多可以设置 30 位密码,于是这次我就设置了 30 位的密码。

改完之后我又开始检查服务器是否被注入木马、检查数据库是否被勒索、查看有没有近期新文件、查看有没有新开启的端口、新增加的用户等等。

经过一番检查,没发现什么问题(实际上这些记录都被黑客清掉了)。于是我重启了服务器,然后没有继续理会这件事。但心里总感觉应该没有这么简单。


斗智斗勇


第三天早上,在我部署应用时发现 CPU 占用率已经 100%了!

image.png

于是我查看了下 CPU 被占用情况。


ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

日志如下:


USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     28338  182  0.0 2437008 2732 ?        Ssl  15:05 147:05 /usr/local/bin/wordpress
root     25257 14.5  0.9 764436 36020 ?        Ssl  16:25   0:00 npm
root     23779  0.4  0.3 711348 14752 ?        Sl   14:59   0:23 /usr/bin/ophvyn
mongod    1405  0.1  1.2 989616 47732 ?        Sl   Mar30   6:28 /usr/bin/mongod -f /etc/mongod.conf
root         9  0.0  0.0      0     0 ?        R    Mar30   0:09 [rcu_sched]
root         8  0.0  0.0      0     0 ?        S    Mar30   0:00 [rcu_bh]
root       789  0.0  0.0   4388   556 ?        Ss   Mar30   0:00 /usr/sbin/acpid
root       775  0.0  0.0  26380  1740 ?        Ss   Mar30   0:00 /usr/lib/systemd/systemd-logind
root       748  0.0  0.0  55528  1100 ?        S<sl Mar30   0:05 /sbin/auditd
root         7  0.0  0.0      0     0 ?        S    Mar30   0:00 [migration/0]

一个名为 wordpress 的进程已经占用了 182 的 CPU。

但我并没有在服务器上安装过 wordpress,看来这个就是黑客植入的木马了。

初步预测,我认为这是一个挖矿程序。

接着,我开始处理这个挖矿木马。

首先杀掉这个线程。


kill -9 28338

然后删除 wordpress 文件。

CPU 占用率立马降下来了,但我觉得事情并没结束,人家既然有本事搞我的服务器,不可能就只有这么两下子。

于是我开始耐心的等待是否有其他变化。

果不其然,在几分钟后,服务器的 CPU 占用率再次飘升 100%。

当我再次查看占用 CPU 最高的进程时,又看到了那个 wordpress。我估计它是有一个守护进程或者定时任务。

我开始找守护进程。


ps -eo ppid,pid,sid,stat,tty,comm  | awk '{ if ($2 == $3 && $5 == "?") {print $0}; }'

日志如下:


0     1     1 Ss   ?        systemd
    1   454   454 Ss   ?        systemd-journal
    1   481   481 Ss   ?        systemd-udevd
    1   484   484 Ss   ?        lvmetad
    1   748   748 S<sl ?        auditd
    1   772   772 Ssl  ?        polkitd
    1   775   775 Ss   ?        systemd-logind
    1   776   776 Ss   ?        dbus-daemon
    1   778   778 Ss   ?        ntpd
    1   783   783 Ss   ?        lsmd
    1   789   789 Ss   ?        acpid
    1  1054  1054 Ss   ?        dhclient
    1  1126  1126 Ssl  ?        tuned
    1  1135  1135 Ss   ?        vsftpd
    1  1249  1249 Ssl  ?        rsyslogd
    1  1255  1255 Ss   ?        atd
    1  1258  1258 Ss   ?        crond
    1  1555  1555 Ss   ?        sshd
 1555  1956  1956 Ss   ?        sshd
 1956  2009  2009 Ss   ?        bash
    1  2380  2380 Ss   ?        nginx
    1  2860  2860 Ssl  ?        node
    1 28338 28338 Ssl  ?        wordpress
 2860 30275 30275 Ssl  ?        node

果然有一个 wordpress 的守护进程,而且奇怪的是,竟然有两个 node 进程。我的服务器上明明只运行了一个 node 进程。从 PID 来看,后面这个 30275 的 node 进程是在 wordpress 之后启动的。

看来这个 node 和 wordpress 必然存在某种关系。

于是我把这三个进程都杀掉了,同时删除了 wordpress 文件。

在观察了半小时后,服务器好像恢复正常了。

当天我睡了个好觉。


死灰复燃


今天早上,当我再次打开服务器时,发现 CPU 又被占用 100%了!

黑客的手段果然足够高明。

这次我重复昨天的步骤,然后观察服务器的变化。

过了一会,我发现 IO 有波动,然后 CPU 再次飘升 100%。

然后查看端口占用情况。


netstat -nlpt

日志如下:


Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:43575           0.0.0.0:*               LISTEN      23779/ophvyn
tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      1405/mongod
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2380/nginx: master
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1555/sshd
tcp6       0      0 :::21                   :::*                    LISTEN      1135/vsftpd

当我看到那个名为 ophvyn 、PID 为 23779 的 43575 的端口,就像是看到了黎明的曙光。

看来它的作用就是从远程服务器上下载木马。

在这里又得到一个教训,配置安全组一定要慎重,一定不要全部开放。

由于这个是测试服务器,当时为了调试方便,就开放了所有端口。

image.png

接下来要杀掉 ophvyn。

首先查看 ophvyn 的详细信息。


ps 23779

找到了它的所在位置。


PID TTY      STAT   TIME COMMAND
23779 ?        Sl     0:31 /usr/bin/ophvyn

我把相关的所有进程全部关闭,并把所有相关文件全部删除。

等了大半天,没有再出现什么幺蛾子。

世界好像清净了。


从头再来


一切都恢复了往日的平静,就好像什么都没发生过。

在第三天的下午,我决定把服务器上的数据备份下来,重新安装系统,和黑客彻底说再见。

在接到警告的第一天,我就可以备份数据,重装系统的。之所以没那么做,就是想看看黑客到底会对我的服务器做些什么。现在看也看了,折腾也折腾了,最后仍然选择重装服务器。



相关文章
|
小程序 安全 定位技术
微信小程序学习实录4(开发前准备、认证必备资料、公众号关联小程序、小程序发布、开发配置、服务器域名、业务域名、位置接口设置)
微信小程序学习实录4(开发前准备、认证必备资料、公众号关联小程序、小程序发布、开发配置、服务器域名、业务域名、位置接口设置)
1012 0
|
安全 NoSQL Linux
十字符病毒,杀不死的小强:一次服务器沦陷实录
一、现象 接到客户的电话,说自己的云服务器被提供商禁止访问了,原因是监测到网络流量爆满,服务器不停地向外发包,在确认客户没有业务量突增的情况下,初步判断可能服务器遭受了流量攻击(DDoS)。 不过按照常理来说,客户的业务系统就是一个小的Web系统,平时流量不大,影响力也一般,不至于遭受DDoS,带着这些疑问,要到了客户服务器的登录方式。
26877 0
|
关系型数据库 Apache 数据库
|
10月前
|
运维 安全 Ubuntu
阿里云渠道商:服务器操作系统怎么选?
阿里云提供丰富操作系统镜像,涵盖Windows与主流Linux发行版。选型需综合技术兼容性、运维成本、安全稳定等因素。推荐Alibaba Cloud Linux、Ubuntu等用于Web与容器场景,Windows Server支撑.NET应用。建议优先选用LTS版本并进行测试验证,通过标准化镜像管理提升部署效率与一致性。
|
10月前
|
弹性计算 运维 安全
阿里云轻量应用服务器38元1年和云服务器99元1年怎么选?二者性能区别及选择参考
在阿里云当下的活动中,38元/年的轻量应用服务器与99元/年的云服务器ECS成为众多新用户的关注焦点。但是有部分用户并不是很清楚二者之间的区别,因此就不知道应该如何选择。接下来,笔者将为您详细剖析ECS云服务器与轻量应用服务器的差异,以供您参考和选择。
891 4
阿里云轻量应用服务器38元1年和云服务器99元1年怎么选?二者性能区别及选择参考
|
10月前
|
存储 监控 安全
阿里云渠道商:云服务器价格有什么变动?
阿里云带宽与存储费用呈基础资源降价、增值服务差异化趋势。企业应结合业务特点,通过阶梯计价、智能分层、弹性带宽等策略优化成本,借助云监控与预算预警机制,实现高效、可控的云资源管理。
|
10月前
|
存储 弹性计算 监控
阿里云渠道商:如何挑选阿里云服务器配置?
本文详解通用型、计算型、内存型等实例适用场景,结合性能评估与成本优化策略,助力用户按需选择。以日均1万访问企业网站为例,2核4G+3M带宽月费约200元,性价比高。合理配置更省钱。
|
10月前
|
弹性计算 运维 安全
区别及选择指南:阿里云轻量应用服务器与ECS云服务器有什么区别?
阿里云轻量应用服务器适合个人开发者、学生搭建博客、测试环境,易用且性价比高;ECS功能更强大,适合企业级应用如大数据、高流量网站。根据需求选择:轻量入门首选,ECS专业之选。
649 2

热门文章

最新文章