首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

记录网盾服务器被黑过程的排查和思考:续集

昨天说到了查找木马文件,那么今天的任务就是删除木马文件,修复系统。

3、删除木马文件

1)修改authorized_keys

先删除authorized_keys文件里的公钥。

当我执行 rm 命令的时候,我发现入侵者在我的authorized_keys文件里加了+i锁,不允许删除,还挺聪明的小家伙:

chattr +i /etc/authorized_keys /*文件不能删除、更改、移动*/

玛德,这是人干的事?

我继续查看,服务器的chattr命令也被删除了, 注意:删除chattr对于服务器来说,是被黑的第一步。

我知道的,查不到chattr命令:

这里我们只能尝试手动安装chattr,centos安装过程如下:

yum install e2fsprogs

然后:

接着清空authorized_keys文件:

2)用rm命令删除木马文件

put to death并删除已经发现的木马文件:

这个时候会发现CPU的使用频率没之前那么多了:

垃圾文件清理完毕,禁用密码登录,改用生成的秘钥登录。

这里可以先喘口气,看会儿小电影。

4、确定攻击源头——Redis

打开Redis的时候,会发现各种奇怪的键值。(果然技术在进步,攻击也在学习啊)

这个问题也是最容易被忽略的:

哎,失策了。Redis的端口开放了且没有密码……

虽然我也不知道他怎么知道找到我的服务器的,但是这个crackit看起来怪怪的。

我查阅了一些资料:

2015年11月10日,有网络安全厂商指出国内互联网产生了大量针对Redis数据库服务器的扫描流量,其中有不少Redis服务器的数据库被清空,且

/root/.ssh/authorized_keys文件被创建或改写,入侵者可以获取受影响服务器的完全控制权限。因为受影响的Redis服务器的数据库被清空,但留存有一条键名为crackit的记录,因此这次事件被命名为Redis Crackit入侵事件。

简单的描述就是redis在用户目录写入一个ssh私钥文件,从而建立一个信任关系,这样不需要输入ssh密码就可以登入。

总结来说,我的服务器有可能不是因为暴力撞库登录,而是通过Redis。

用top命令来检查一下……忒么的,木马文件又来了……看来Redis不清理干净,这个文件会一直徘徊在我身边……

等一下,kswapd0似曾相识?

kswapd0过高是因为物理内存不足,使用swap分区与内存换页操作交换数据,致使CPU占用过高。

kswapd0是个小东西,背后的真实作用是执行木马文件:

/tmp/.x25-unix/.rsynckswapd0

所以说不根除Redis,入侵者下次还可以用Redis的漏洞搞我的网盾服务器……(说实话,心好累)

实际上的kswapd0进程是这样的:

我特意执行Redis的时候截了图:

下载的是一个pm.sh脚本,打开它:

看似是一个sh脚本,实际上是一个png文件,还有可执行的权限。

可以直接下载下来给权限,并执行。 /.png

可以看出有一个bin脚本,删除,录入到/usr/bin里。

让他跑起来,不要停。

这过程chattr会被删除,authorized_keys文件被修改

最后执行的是 /usr/bin/kswaped这个脚本,开始找好东西。

再用top查看一下CPU利用率,又回到100%的状态。真是见鬼……

抓鸭子啊抓鸭子:

记住104.27.129.57 这个美国的CDN节点,摸着西瓜找藤子(不对说反了?)导出抓到的WirteShark包看看:

源IP请看红色部分,还可以看到请求数据库的操作(端口3306)。

难不成我服务器还有DDoS攻击?为了维护我的网络安全,网盾的客服一直让我赶紧处理……

分布式拒绝服务攻击可以使很多的计算机在同一时间遭受到攻击,使攻击的目标无法正常使用,分布式拒绝服务攻击已经出现了很多次,导致很多的大型网站都出现了无法进行操作的情况,这样不仅仅会影响用户的正常使用,同时造成的经济损失也是非常巨大的。

分布式拒绝服务攻击方式在进行攻击的时候,可以对源IP地址进行伪造,这样就使得这种攻击在发生的时候隐蔽性是非常好的,同时要对攻击进行检测也是非常困难的,因此这种攻击方式也成为了非常难以防范的攻击。

5、预防针

服务器之所以被攻击,还是因为暴露的公网端口太多了,特别是Redis6789、MySQL3306这种,当然了,密码过于简单也占了很大的原因。

根据我的经验来给你打个预防针:

1)服务器

修改 /etc/ssh/sshd_config文件

不允许密码登录,只有秘钥才能登录

更改ssh默认端口,防止出现暴力撞库

root账户无法直接登陆,仅有特定IP才可以访问

如:

2)应用

Redis只能本地访问,修改默认端口,不是所有IP都可见;

MySQL仅对特定IP开放访问权限;

设置端口的防火墙规则;

当然了,你还可以使用跳板机、堡垒机访问。

3)备份

这玩意儿就和救命稻草一样的,一旦不小心操作,你可以备份恢复数据。当然了,一定要设置定期。

这期的分享就到这里,希望大家在平时的使用中注意操作规则,保护好自己的网络安全。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210225A0B74700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券