长亭百川云 - 文章详情

一次服务器被黑的全过程排查和思考

运维星火燎原

47

2024-07-16

发现网站竟然打不开了。

1、排查日志

服务器竟然无法登录了!

1)VNC登录服务器

  • 应该是密码登录被禁用了。

  • 使用VNC登录。

无法通过客户端SSH远程登录时,可以通过VNC登录来登录服务器.

2)查看sshd_config文件

查看了/etc/ssh/sshd_config 文件后,发现果然是被修改了:

[root@Practice_Server ~]# cat /etc/ssh/sshd_config|grep -Ev "^#|^$"
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
SyslogFacility AUTHPRIV
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication no    #表示不允许密码登录
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials no
UsePAM yes
X11Forwarding yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem       sftp    /usr/libexec/openssh/sftp-server
PasswordAuthentication no #表示不允许密码登录

禁用了密码登录,那应该就是用被使用私钥登录了。

先改成yes,然后重启sshd

systemctl restart sshd

3)使用终端重新登录

修改完之后,再本地使用终端工具重新登录。发现可以登录了。

查看 authorized_keys 文件

vi /root/.ssh/authorized_keys

服务器加了秘钥对了:

4)查看登录日志

使用 last 和 history 命令 查看一下登录日志和操作日志
last #查看所有登录的ip
history  #查看操作的命令记录

发现并没有异常的IP,这倒是不奇怪,假如真的被登录了,登录日志被删除的可能性也是很大的。

  • 再用 lastb 命令查看一下:
lastb #用于列出登入系统失败的用户相关信息

lastb结果解释:

第一列:用户名
第二列:终端位置
第三列:登录ip或者内核
第四列:开始时间
第五列:结束时间(still login in 还未退出  down 直到正常关机 crash 直到强制关机)
第六列:持续时间

以上结果表示,服务器被暴力撞库了。

IP应该是通过代理的,第二张图对方直接使用root作为用户名不断的去撞库,看来是找对了用户名,最后真的是登录了然后修改了我的秘钥对。

查一下IP:

IP是国外的,很难查到位置,也有可能是代理IP。

2、找到木马文件

1)使用top命令看一下

普通的top命令根本无法显示木马进程,看起来像是很正常的样子,因为top命令很可能已经被入侵者修改:

2)busybox 命令

运行 busybox top可以看到隐藏的占用CPU的进程,原始的top已经被修改,不能显示病毒的进程,必须在busybox中执行

[root@Practice_Server ~]#  wget https://tao-1257166515.cos.ap-chengdu.myqcloud.com/busybox
--2020-12-14 15:12:59--  https://tao-1257166515.cos.ap-chengdu.myqcloud.com/busybox
Resolving tao-1257166515.cos.ap-chengdu.myqcloud.com (tao-1257166515.cos.ap-chengdu.myqcloud.com)... 132.232.176.6, 132.232.176.7, 139.155.60.205, ...
Connecting to tao-1257166515.cos.ap-chengdu.myqcloud.com (tao-1257166515.cos.ap-chengdu.myqcloud.com)|132.232.176.6|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1001112 (978K) [application/octet-stream]
Saving to: ‘busybox.1’
100%[======================================>] 1,001,112   1.36MB/s   in 0.7s
[root@Practice_Server ~]# cp busybox /usr/bin/
[root@Practice_Server ~]# busybox top
-bash: /usr/bin/busybox: Permission denied
[root@Practice_Server ~]# cd /usr/bin/
[root@Practice_Server bin]# chmod 777 /usr/bin/busybox
[root@Practice_Server ~]# busybox top

抓到了木马文件:

以上看到CPU占用率达到了近100%,挖矿无疑了。

最后和腾讯云的技术一起排查了大半天,终于揪出了以下几个木马文件,目录:

/tmp/.X25-unix/.rsync/c/tsm64
/tmp/.X25-unix/.rsync/c/tsm32
/tmp/.X25-unix/.rsync/a/kswapd0
/usr/bin/systemd-network
/usr/bin/kswaped

最后锁定这个挖矿进程名称是pamdicks,接下来把木马进程杀掉,然后把木马文件删除,应该就可以了。

如果不输入全称,ls、ll、lsattr 文件查看命令是根本不会显示这个木马文件的:

删除前看看这个挖矿的进程究竟是啥:

ls -lh /proc/5445/fd

top -H -p 5445

这个pamdicks进程有6个子线程:

最后追踪到是个二进制文件,触及到知识范围了,无法打开,就直接删除吧。

3、删除木马文件

1)修改authorized_keys

先把authorized_keys 文件的公钥删除。当我执行 rm 命令的时候,入侵者把我的 authorized_keys 文件加了 +i 锁,不允许删除,so sad:

chattr +i /etc/authorized_keys
    表示文件不能删除,不能更改,不能移动

把服务器的chattr命令也删除了,服务器被黑,删chattr命令是常见的操作。

果真找不到chattr命令了:

 只能手动把chattr 装回来,centos安装过程:

yum install e2fsprogs

安装成功:

[root@Practice_Server run]# which chattr
/usr/bin/chattr

清空authorized_keys 文件:

[root@Practice_Server .ssh]# chattr -i authorized_keys
[root@Practice_Server .ssh]# echo > authorized_keys
[root@Practice_Server .ssh]# cat authorized_keys

2)执行 rm 命令,删除木马文件

kill掉并删除发现的木马文件:

[root@Practice_Server .ssh]# kill -9 5445
[root@Practice_Server .ssh]# chattr -i /usr/bin/pamdicks
[root@VM-8-8-centos .ssh]# rm /usr/bin/pamdicks
rm: remove regular file ‘/usr/bin/pamdicks’? y
[root@Practice_Server .ssh]# rm /tmp/.X25-unix/.rsync/c/lib/64/tsm
rm: remove regular file ‘/tmp/.X25-unix/.rsync/c/lib/64/tsm’? y

删除之后CPU使用率就降下来了:

木马文件清理完毕,最后把服务器禁用密码登录,改用生成好的秘钥对登录。暂时告一段落。

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2